我对OpenGL渲染的理解是,如果没有深度测试,对象将按顺序绘制,以便您调用的最后一个渲染函数将在已绘制的任何顶部绘制其形状。我发现,这似乎不是然而情况:OpenGL回到正面渲染
glDisable(GL_DEPTH_TEST);
glDisable(GL_ALPHA_TEST);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_QUADS);
{
glVertex2f(50, 50);
glVertex2f(100, 50);
glVertex2f(100, 100);
glVertex2f(50, 100);
}
glEnd();
glColor3f(0.0, 0.0, 1.0);
glBegin(GL_QUADS);
{
glVertex2f(30, 60);
glVertex2f(110, 60);
glVertex2f(110, 90);
glVertex2f(30, 90);
}
glEnd();
甚则蓝色方块,这是我所期待下的红色方块,这些电话给我了一个蓝色方块红色方块!
我不明白OpenGL渲染是如何工作的吗?或者我只是想念一些不会让蓝色方块渲染的选项或配置?我正在使用一个自定义(但非常简单)的着色器,会改变什么吗?
this问题的非接受答案似乎意味着顺序渲染实际上并没有发生,并且是实现特定的,但其接受的答案意味着实际上是这种情况。
什么是进行第二次呼叫的最佳方式?我并不是真的想要拥有某种全球性的价值,我在整个计划中不断增加。
也许你正在从“后面”看现场?你的MV和P矩阵是什么样的? – aib 2012-03-25 10:38:10
啊!事实证明,我有一个混合功能启用某个地方,这是放弃了绘制的值的颜色。 – Tomas 2012-03-25 12:11:31