我有一個OpenGL場景,上面有一些數字。你能告訴我在「渲染」之後我需要做什麼來計算數字頂點位置?我知道我可能需要手動增加一些矩陣,但我不知道它們中的哪些以及如何。渲染後的OpenGL點位置(3d - > 2d)
在此先感謝您的幫助!
我有一個OpenGL場景,上面有一些數字。你能告訴我在「渲染」之後我需要做什麼來計算數字頂點位置?我知道我可能需要手動增加一些矩陣,但我不知道它們中的哪些以及如何。渲染後的OpenGL點位置(3d - > 2d)
在此先感謝您的幫助!
看看gluProject()
函數。
編輯:在OpenGL FAQ還發現:
9.100 How can I find the screen coordinates for a given object-space coordinate?
(相同的答案,雖然)
你想知道pixles屏幕上的最大程度?
如果是這樣,最簡單的方法是爲所有頂點調用gluProject並存儲最大和最小x和y位置。
看起來是這樣的:
GLdouble modelview[16], projection[16]
GLint viewport[4];
glGetDoublev(GL_MODELVIEW_MATRIX, *modelView);
glGetDoublev(GL_PROJECTION_MATRIX, *projection);
glGetIntegerv(GL_VIEWPORT, *viewport);
double tx, ty, tz;
for(i = 0; i < VertexCount; i++)
{
glProject(vertices[i].x, vertices[i].y, vertices[i].z,
modelview, projection, viewport,
*tx, *ty, *tz);
// now, the 2d position of the ith Vertex is stored in tx, ty, tz.
// you can now use these values to determine the 2d-extends on your screen
}