我正在尝试使用 OpenGL 从 C++ 中的源引擎 .vmf
文件渲染画笔。
.vmf
将实体画笔存储为一系列平面,我想用它来计算每个画笔的点。我很确定这将与所有基于 Quake 引擎的 .map
文件完全相同。
基本上画笔的每个点都是3个平面相交的点。我在 stackoverflow 上发现了一个与我的问题类似的问题,解释是获取 3 个平面的单位法线,然后使用此页面 mathworld.wolfram.com/Plane-PlaneIntersection.html 上的等式 8。我的问题是我不知道如何实现它
下面是一个 6 边立方体形状画笔的一些代码:
"plane" "(0 0 256) (0 256 256) (256 256 256)"
"plane" "(0 256 0) (0 0 0) (256 0 0)"
"plane" "(0 0 0) (0 256 0) (0 256 256)"
"plane" "(256 256 0) (256 0 0) (256 0 256)"
"plane" "(0 256 0) (256 256 0) (256 256 256)"
"plane" "(256 0 0) (0 0 0) (0 0 256)"
我真的不知道从哪里开始,任何帮助将不胜感激,谢谢。
通常的做法是用平面填充 BSP 树。有了 BSP,就可以很容易地执行 bool 运算,例如“获取所有这些平面并发射它们所包围的(凸)体积”,平面的交点是边,边的交点是点。
我是一名优秀的程序员,十分优秀!