작동하지 내가 가진 형식을 설정합니다.OpenGL을 깊이 테스트가
다음으로 initializeGL 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
}
나는 깊이 버퍼를 지우고 있습니다.
void VoxelEditor::paintGL()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
draw();
}
내가 덜 정점으로 작업하는 데 사용, 그래서 내가 depthbuffer가 처리하기에 너무 많은 사용하고 있음을 수 있습니다 기억 (?). 저는 32 * 32 * 32 개의 복셀을 가지고 있습니다. 복셀은 대부분의 시간의 절반에 해당하므로 98,304 쿼드입니다.
그러나 깊이 테스트는 여전히 작동하지 않으며 실행 순서대로 쿼드를 표시합니다.
glClearDepth()와 glDepthFunc의 조합이 될 수 없습니다. glClearDepth()를 제거하려고하면 어떻게 될까요? – ixM
아니, 작동하지 않습니다. – RobotRock
나는 glDepthRange *를 0에서 1까지 추가하려고 시도했으나 아무 것도 변경하지 않았다 : S – RobotRock