我對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