2012-03-15 171 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)产生的正投影矩阵(类似于一个,那么您的三角形将绘制在坐标描述的像素。