我的问题是:检索顶点坐标
有没有办法在翻译或旋转后检索顶点的坐标?
例如:X = 10,Y = 10,z = 0的
一系列调用glTranslate或glRotate后我怎样才能知道的x,y和z中的实际状态?
谢谢。
我的问题是:检索顶点坐标
有没有办法在翻译或旋转后检索顶点的坐标?
例如:X = 10,Y = 10,z = 0的
一系列调用glTranslate或glRotate后我怎样才能知道的x,y和z中的实际状态?
谢谢。
这是不可能的...... opengl将您的顶点数据发送到GPU,并且只有在GPU上,您可以在转换后获取它们。
得到变换的顶点必须由矩阵对自己
for each vertex:
vertex_transformed = matrix * vertex
老的OpenGL
乘他们:
glGetFloatv(GL_MODELVIEW_MATRIX, m);
x = pos.x*m[0] + pos.y*m[4] + pos.z*m[8] + m[12];
y = pos.x*m[1] + pos.y*m[5] + pos.z*m[9] + m[13];
z = pos.x*m[2] + pos.y*m[6] + pos.z*m[10] + m[14];
一些更高级的方法是使用变换反馈和存储这些转化顶点放入缓冲区(但这个缓冲区仍将存储在GPU上)。
可能重复的[openGL:得到坐标后glrotate](http://stackoverflow.com/questions/10543554/opengl-get-coordinates-after-a-glrotate) – CharlesB