微型企业网络设计方案,网站站seo教程,tornado网站开发,建设网站的重点与难点在于2019独角兽企业重金招聘Python工程师标准 在opengl中关于拾取有封装好的选择模式#xff0c;名字栈#xff0c;命中记录#xff0c;实现拾取的功能#xff0c;相对容易一些。但是到了opengl es里面就比较倒霉了#xff0c;因为opengl es是opengl的简化版 在opengl中关于拾取有封装好的选择模式名字栈命中记录实现拾取的功能相对容易一些。但是到了opengl es里面就比较倒霉了因为opengl es是opengl的简化版很多功能都被去掉了。没办法要想实现拾取的功能只有自己动手。目前比较成熟而且相对较简单的拾取方案是射线相交拾取。 先介绍一下射线相交拾取的原理 1将用户在屏幕上点击的坐标(X, Y)转换为归一化坐标(Xn, Yn) 2考虑到透视投影的可视锥有一个近平面和一个远平面所以可以将刚才的归一化坐标转换为两个归一化坐标一个的z值在近平面上z值为-1另一个的z值在远平面上z值为1 3计算出透视投影的逆矩阵用这个逆矩阵分别乘以两个归一化坐标相乘之后得到的值分别除以w也就是做透视除法这样就得到了在虚拟空间中的两个点。 4用上一步计算出的虚拟空间中的两个点生成一条射线。 5用这条射线和其他的物体做相交检测。为了便于检测可以将要检测的物体当成一个球体这样射线和球体之间是否相交就比较容易检测了。 原本想自己在这篇博客中将所有的步骤都讲的详细透彻但是真正动手才发现自己水平不够。既然这样就向大家推荐一处好的资料吧《opengl es应用开发实践指南 android卷》的第九章讲的很精彩。 转载于:https://my.oschina.net/u/1273706/blog/829425