了解z轴

时间:2013-05-05 18:28:14

标签: android opengl-es opengl-es-2.0

我有两个带绳子的三角形:

static float squareCoords[] = {  
    // red triangle
    0.0f, 0.0f, 0.5f,
    0.25f, 0.5f, 0.5f,
    0.5f, 0.0f, 0.5f,

    //black triangle
    -0.1f, -0.1f, 0.1f,
    0.15f, 0.4f, 0.1f,
    0.4f, -0.1f, 0.1f,
};

绘图顺序:

private short drawOrder[] = { 
            0, 2, 1,
            3, 5, 4,
    };

然后我用glDrawElements绘制它,黑色三角形总是在红色前面。更改Z坐标没有结果。好像它吸引了第二个黑色tringle,这就是为什么它总是在前面。帮助我理解发生了什么以及问题出在哪里。

1 个答案:

答案 0 :(得分:2)

也许您没有通过glEnable(GL_DEPTH_TEST)启用深度测试?

或者,可以设置投影矩阵,使得Z坐标在转换为标准化设备坐标期间被“挤压”在一起。检查您的近处和远处飞机是什么,并可能将远处的飞机拉近或飞近。