如何从源引擎vmf计算笔刷的点
How to calculate the points of a brush from a source engine vmf?
我正在尝试使用OpenGL从C++中的源引擎.vmf
文件渲染笔刷。
.vmf
将实心笔刷存储为一系列平面,我想使用这些平面来计算每个笔刷的点。我确信这将与所有基于Quake引擎的.map
文件完全相同。
基本上,笔刷的每个点都是3个平面相交的点。我在stackoverflow上发现了一个与我类似的问题,解释是获得3个平面的单位法线,然后在这个页面上使用等式8 mathworld.wolfram.com/Plane-PlaneIntersection.html。我的问题是我不知道如何实现
下面是一个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,可以很容易地执行布尔运算,比如"获取所有这些平面并发出由它们限定的(凸)体积",平面的交点是边,边的交点是点。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 计算缩放多边形的比例,得到给定的多边形面积
- 在C++中如何在没有pow的情况下进行基础计算
- 计算平均值,不包括上次得分
- 如何从源引擎vmf计算笔刷的点