Opengl es OpenGL中的顶点坐标

Opengl es OpenGL中的顶点坐标,opengl-es,coordinates,vertex,Opengl Es,Coordinates,Vertex,为什么OpenGL中的顶点坐标在-1到1之间?是否有一种方法可以使用与屏幕相同的坐标指定顶点坐标 因此,不是: float triangleCoords[] = { // X, Y, Z -0.5f, -0.25f, 0, 0.5f, -0.25f, 0, 0.0f, 0.559016994f, 0 }; 我本来可以的 float triangleCoords[] = { // X,

为什么OpenGL中的顶点坐标在-1到1之间?是否有一种方法可以使用与屏幕相同的坐标指定顶点坐标

因此,不是:

    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),看起来很完美……”

这就是投影矩阵的用途。它们从坐标系投影到标准化坐标

如果需要,您可以自由地以像素为单位设置顶点,但是您只需将其与适当的投影矩阵配对,以告诉opengl如何将这些坐标转换到屏幕上

举个例子:

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

如果将其与正交投影矩阵(类似于glOrtho(0,宽度,0,高度,-1,1)生成的矩阵)配对,则三角形将在所述像素坐标处绘制。

这就是投影矩阵的用途。它们从坐标系投影到标准化坐标

如果需要,您可以自由地以像素为单位设置顶点,但是您只需将其与适当的投影矩阵配对,以告诉opengl如何将这些坐标转换到屏幕上

举个例子:

float triangleCoords[] = {
    // X, Y, Z
     80, 60, 0,
     240, 60, 0,
     0,  375, 0
}; 
如果将其与正交投影矩阵(类似于由glOrtho(0,宽度,0,高度,-1,1)生成的矩阵)配对,则三角形将在所述像素坐标处绘制