如何在变换后检索顶点的当前位置?我有以下代码......
如何在应用变换后获取“modelVertices”的位置?
我真的在屏幕坐标之后,所以我可以判断一个顶点是否被鼠标点击。
glMatrixMode(GL_MODELVIEW);
// save model transform matrix
GLfloat currentModelMatrix[16];
glGetFloatv(GL_MODELVIEW_MATRIX, currentModelMatrix);
// clear the model transform matrix
glLoadIdentity();
// rotate the x and y axis of the model transform matrix
glRotatef(rotateX, 1.0f, 0.0f, 0.0f);
glRotatef(rotateY, 0.0f, 1.0f, 0.0f);
// reapply the previous transforms
glMultMatrixf(currentModelMatrix);
glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
// since each vertes is defined in 3D instead of 2D parameter one has been
// upped from 2 to 3 to respect this change.
glVertexPointer(3, GL_FLOAT, 0, modelVertices);
glEnableClientState(GL_VERTEX_ARRAY);
答案 0 :(得分:2)
GLU的功能为gluProject()
和gluUnProject()
:
http://www.opengl.org/sdk/docs/man/xhtml/gluProject.xml
如果您的平台没有GLU,您可以随时获取MESA的代码并查看其实施方式。
答案 1 :(得分:1)
您可以使用feedback buffer。