2011-04-30 102 views

回答

0

您需要啓用深度測試。確保

glEnable(GL_DEPTH_TEST); 
glDepthFunc(GL_LEQUAL); //Maybe not this line but try it anyway, GL_DEPTH_TEST is the important one 

在您的初始化代碼。

+3

在OpenGL中不存在像「初始化」這樣的事情,這都是關於狀態的。確定紋理,FBO,PBO和VBO等一些東西被創建並重新使用。但是在任何真正的OpenGL應用程序中,這也是按需發生的。狀態如啓用/禁用深度測試以及深度func應該在需要特定狀態的部分之前在渲染函數中設置。 – datenwolf 2011-04-30 10:41:00

0

您應該確保已經在投影視圖或3d中設置了矩陣模式,並且始終使用3d工作。

glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
gluPerspective(p, (double) w/(double) h, arg1, arg2); 

然後確保你通過這個使深度:

glEnable(GL_DEPTH_TEST); 

接下來,渲染使用GL ...... 3F或GL ... 3D通過3D渲染,這裏......是什麼功能你需要。