opengl es - Objective-c OpenGLES知道对象/模型的屏幕坐标



有没有办法获取3D世界中对象的屏幕坐标?

实现gluProject() .

编辑:Mesa/SGI有一些代码。

编辑2:或者拿一份适用于iOS的GLU。

只需实现 OpenGL 管道的转换:模型视图、投影、透视设计、视口。您可以使用glGetDoublev查询当前矩阵,并使用glGetIntegerv查询viewort。

然后你必须计算投影矩阵乘以模型视图矩阵= MVP。

现在,对于每个顶点 v 计算 MVP*v。

然后计算 v/= v.w;

所以你得到了 [-1,1]x[-1,1] 范围内的坐标,最后一件事是缩放并将其转换为 [x,x+w]x[y,y+h](这是视口的值)。

您还可以查看 glFrustum 的 OpenGL 参考信息页面,glViewport,以了解所有这些转换是如何完成的。

最新更新