我偶然發現了一個我無法解釋的OpenGL問題,除非我誤解了glPushMatrix()
/glPopMatrix()
的工作方式。是我對OpenGL push/pop矩陣的理解錯誤?
下面的兩段代碼不應該有完全相同的效果嗎?
glPushMatrix();
glVertex3f(0,0,0);
glTranslatef(c->e->coords[0], c->e->coords[1], c->e->coords[2]);
glPopMatrix();
VS
glVertex3f(c->e->coords[0], c->e->coords[1], c->e->coords[2]);
在我的應用程序,只有當我使用第二個做我看不到任何東西。我在代碼中完全相同的地方嘗試了兩段代碼,並沒有改變任何內容,而使用push/pop矩陣的代碼並沒有在屏幕上繪製任何東西。
是的,我想到了這一點,我嘗試了兩種方式(一種是翻譯第一種,另一種翻譯第二種)。問題在於這是在glBegin()/ glEnd()塊中。謝謝 – houbysoft