参考文章

深入探索3D拾取技术

OpenGL 3D拾取

射线和三角形的相交检测(ray triangle intersection test)

3D拾取的方法有两种

1、基于几何计算的射线-三角形相交法

2、使用OpenGL本身的拾取机制

这里主要使用第二种,理解起来相对简单一点。

借用大佬的通俗易懂的说法,这种方法的本质就是:

把每个三角形的id作为材质渲染到屏幕上,很容易就能找到鼠标对应的颜色值。这样多少三角形都能正确得到。 完全不用进行数学计算。

优点在于减少了大量不必要的计算开销——只对所有最终接受的模型进行判断。并且实际判断逻辑相对简单。

但缺点是需要一块额外的渲染表面用于渲染ID+深度数据,对于某些受限比较严格的设备可能有内存压力。

具体操作:待实现...

05-11 22:33