我設置的格式。OpenGL的深度測試不工作
然後在初始化GL我設置了depthTesting。
void VoxelEditor::initializeGL()
{
glClearDepth(2000.0); // Enables Clearing Of The Depth Buffer
glEnable(GL_DEPTH_TEST); // Enables Depth Testing
glDepthFunc(GL_LESS); // The Type Of Depth Test To Do
glShadeModel(GL_SMOOTH); // Enables Smooth Color Shading
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); // Really Nice Perspective Calculations
}
在paintGL我清除深度緩存。
void VoxelEditor::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
draw();
}
我記得它曾經用更少的頂點來工作,所以它可能是我使用了太多的深度緩存來處理(?)。 我有32 * 32 * 32的體素,這是大部分時間的一半,所以98304四邊形。
但是深度測試仍然不起作用,並按執行順序顯示四邊形。
不能是glClearDepth()和glDepthFunc的組合。如果您嘗試刪除glClearDepth()會怎麼樣? – ixM 2012-02-17 21:30:25
不,不起作用。 – RobotRock 2012-02-17 21:36:52
我試着在0到1之間添加* glDepthRange *,但是這並沒有改變任何東西:S – RobotRock 2012-02-17 21:38:20