默認情況下,對象是從前到後繪製的。我正在繪製一個2-D UI對象,並希望將其重新創建。例如,我可以先創建一個白色正方形,然後在其上創建一個稍小的黑色正方形,從而創建一個帶有白色邊框的黑色窗格。 This post對它有一些討論,並將此順序描述爲「畫家算法」,但最終他們給出的例子只是以相反的順序渲染對象以獲得所需的效果。我回到前面(第一個物體回來,後面的物體在頂部繪製)可以通過一些轉換(gOrtho?)實現。在openGL中,如何讓項目回到前面?
我還會提到我對使用GLUT等包裝庫的解決方案不感興趣。
我也發現Mac上使用Cocoa NSOpenGLView的默認行爲似乎回到前面,因爲在Windows中我無法得到這種行爲。在我使用的窗口中的設置代碼是這樣的:
glViewport (0, 0, wd, ht);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho (0.0f, wd, ht, 0.0f, -1.0f, 1.0f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
好的想法,但所有這些都需要額外的工作。正如我所提到的,在Mac上,如果我沒有弄錯,它似乎會做我想做的事情。 NSOpenGLView的默認設置允許無需特殊處理的前後訂購 – AlanKley 2008-10-09 01:34:07