OpenGL: 通过射线求交实现物体的拾取

来源:互联网 发布:绘画书籍推荐 知乎 编辑:程序博客网 时间:2024/05/16 09:19

       如上图, 先利用gluUnProject函数将屏幕上的鼠标的二维坐标转化为照相机视域中近平面上的点B1(X1, Y1, Znear),或者远平面上对应的点B2(X2, Y2, Zfar); 一般使用近平面上的B1点。

      视点的为A(X0, Y0, Z0)。

      A和B1确定一个以A为起点的射线(更准确叫视线)L, 用L去和场景中的物体求交。有交点的物体被选中,保存到到拾取数组中。

      顺便说一句:场景中物体一般都是以场景树的形式存在,这样将会大大提高和视线求交的效率。

 

http://blog.csdn.net/ryfdizuo/article/details/4663668

0 0
原创粉丝点击