0

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

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 坐标没有结果。似乎它第二次绘制黑色三角形,这就是为什么它总是在前面。帮助我了解发生了什么以及问题出在哪里。

4

1 回答 1

2

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

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

于 2013-05-05T18:45:51.483 回答