我正在寻找一种有效的网格(三角形集合)和圆锥体(由该方向的原点,方向和角度给出)交叉的算法。更准确地说,我想找到最接近锥体原点的交点。现在我所能想到的就是将一个网格与来自锥体原点的几条光线相交并得到最近的点。 (当然,将为网格构建一些空间结构以拒绝不必要的交叉点)
我还发现以下算法简要说明: “通过用网格绘制锥形几何体并读取标记交叉点的最小深度值,在GPU上计算锥形网格交叉点”。 不幸的是,它的实现对我来说并不明显。
那么有人可以建议比我更高效的东西,或者更详细地解释如何使用OpenGL在GPU上完成它吗?
答案 0 :(得分:0)
我会这样做:
设置视图
清除缓冲区
绘制网格
|fragment.xyz-screen_middle|=tan(cone_ang/2)*fragment.z
读取z-buffer
[注释]