2010-11-23 97 views
4

我有一個OpenGL場景,上面有一些數字。你能告訴我在「渲染」之後我需要做什麼來計算數字頂點位置?我知道我可能需要手動增加一些矩陣,但我不知道它們中的哪些以及如何。渲染後的OpenGL點位置(3d - > 2d)

在此先感謝您的幫助!

回答

2

你想知道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 

}