尝试使用 OpenGL 绘制波前 obj 文件,但似乎存在深度缓冲区问题。
来源:
// Default constructor
Engine::Engine()
{
initialize();
loadModel();
start();
}
// Initialize OpenGL
void Engine::initialize()
{
// Enable depth test
glEnable(GL_DEPTH_TEST);
// Enable depth write
glDepthMask(GL_TRUE);
}
void Engine::start()
{
// Main loop
while(isOpen())
{
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Draw 3D model to screen
draw();
}
}
最佳答案
要检查的事项:
- 确保深度测试已启用
glEnable(GL_DEPTH_TEST)
- 确保启用深度写入
glDepthMask(true)
- 确保您的上下文有深度缓冲区
Assert(glGetIntegerv(GL_DEPTH_BITS) != 0))
关于opengl - 3D模型看起来像透明的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13093005/