2012-03-15 169 views
0

OpenGL中的頂點座標如何從-1到1?有沒有辦法能夠使用與屏幕相同的座標來指定頂點座標?OpenGL中的頂點座標

所以不是:

float triangleCoords[] = { 
     // X, Y, Z 
     -0.5f, -0.25f, 0, 
     0.5f, -0.25f, 0, 
     0.0f, 0.559016994f, 0 
    }; 

我能有

float triangleCoords[] = { 
     // X, Y, Z 
     80, 60, 0, 
     240, 60, 0, 
     0, 375, 0 
    }; 

只是似乎有點多,我需要出去計算器只是這樣我就可以在某些頂點硬編碼座標。這不像是我會試圖把事情擺出來,並認爲「是的,這應該是正確的(0,0.559016994),這將看起來很完美......」

回答

3

這是什麼投影矩陣。他們從您的座標系投影到標準化的座標。

如果您願意,您可以自由設置頂點像素,但是您只需將它與適當的投影矩陣配對即可告知opengl如何將這些座標轉換爲屏幕。

鑑於你例如:

float triangleCoords[] = { 
    // X, Y, Z 
    80, 60, 0, 
    240, 60, 0, 
    0, 375, 0 
}; 

如果配對這與由glOrtho(0, width, 0, height, -1, 1)產生的正投影矩陣(類似於一個,那麼您的三角形將繪製在座標描述的像素。