WebGL - 有哪些高效的方法可以选择3d对象?

时间:2014-06-04 22:52:15

标签: opengl-es opengl-es-2.0 webgl raytracing

我对通过点击它在画布上“挑选”(即选择)对象感兴趣。

  • 我对按颜色选择不感兴趣(因为这不允许我知道哪个对象已被点击)
  • 我对使用gl.RenderMode(GL_SELECT)不感兴趣。无论如何,我的理解是这已经过时,甚至可能在WebGL中都不受支持。

更新

我有个主意。如果这个想法存在缺陷,请告诉我。 我有一个3D世界和一个相机对象 - 这意味着我有一个相机位置,外观矢量和向上矢量。

  

我的想法是:

通过3D世界“射击”矢量/射线(此向量基本上是摄像机的外观向量)。     然后我只是迭代我的所有3d对象并检查它是否与此光线/矢量相交并返回距离相机最近距离的对象。     我的碰撞检测暂时是一个简单的边界球体。     通过使用更复杂/准确的碰撞检测,我可以在以后变得更加复杂。

  

我看到的唯一差距是:

我不知道如何根据鼠标坐标创建光线/矢量。我可以在canvas元素上单击鼠标(X,Y)。但不确定如何将其转换为世界坐标中光线/矢量的起点。

对这种方法有何想法? 有关差距的任何想法都与我有关吗?

0 个答案:

没有答案