gpt4 book ai didi

c++ - 如何从源引擎vmf计算刷点?

转载 作者:太空宇宙 更新时间:2023-11-04 11:51:44 25 4
gpt4 key购买 nike

我正在尝试使用 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 运算,例如“获取所有这些平面并发射它们所包围的(凸)体积”,平面的交点是边,边的交点是点。

关于c++ - 如何从源引擎vmf计算刷点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17915449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com