OpenGL:如何获得转换后特定点的坐标?

时间:2011-04-08 13:48:28

标签: opengl cg

假设我有一个点(250,125,-20)。 经过以下转型,

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(100.0, 50.0, 0.0);
glRotatef(-25.0, 0.0, 1.0, 0.0);    

如何获取该点当前坐标的值? 我需要编写一个子程序来将矩阵乘以向量吗? 有没有内置的解决方案?

1 个答案:

答案 0 :(得分:7)

您无法在转换后获取特定顶点(点)的坐标,但是对于此特定情况,您可以在应用平移/旋转后获取 ModelViewMatrix

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(100.0, 50.0, 0.0);
glRotatef(-25.0, 0.0, 1.0, 0.0);  

glGetFloatv(GL_MODELVIEW_MATRIX , *your_matrix*);
//print your matrix to check if that is the desired transformation coordinates

OpenGL中没有神奇的磁带,您必须编写自己的框架,例如:对于您世界中的每个对象,您可以在其中保存顶点以及您发现的相关数据。