如何在变换后检索顶点的当前位置?

时间:2009-11-21 17:10:43

标签: opengl

如何在变换后检索顶点的当前位置?我有以下代码......

如何在应用变换后获取“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);

2 个答案:

答案 0 :(得分:2)

GLU的功能为gluProject()gluUnProject()

http://www.opengl.org/sdk/docs/man/xhtml/gluProject.xml

如果您的平台没有GLU,您可以随时获取MESA的代码并查看其实施方式。

答案 1 :(得分:1)

您可以使用feedback buffer