检测由鼠标选择的3D网格的曲面

时间:2012-05-03 10:05:01

标签: c++ 3d

我有一个用于在3D中显示对象的应用程序。现在我想改进我的应用程序。如果我在我的aillage区域中双击,我想要检索它们被捕获并在此区域中存在表面,以便再细分这个区域。是否有可能收到它们?感谢。

1 个答案:

答案 0 :(得分:0)

将视口上的单击转换为世界空间中的光线。

然后使用光线查询场景以找到相交的对象(基于使用场景的octtree进行轴对齐的边界框搜索,如果有的话)。

然后,如果需要检测三角形,请针对场景查询找到的对象中的所有三角形测试光线。如有必要,可以通过为对象的网格构建一个octtree来优化此步骤。最接近射线原点的是击中点。

对于每个对象,您可以将光线转换为自己的局部坐标系。