我想在不使用 GLUT 的情况下以独立于平台的方式使用深度缓冲区初始化 OpenGL。
如何使用 c# 包装器删除 OpenGL 场景中的隐藏表面。我没有使用 GLUT,所以我不能使用 glutInitDisplayMode。任何想法?
更多细节:
我找到了有关 Hidden-Surface 移除的这些步骤:
通过 glutInitDisplayMode 请求 z 缓冲区:
// GLUT_DEPTH to request for depth-buffer glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
启用 z-buffer 进行深度测试:
glEnable(GL_DEPTH_TEST);
当我们清除颜色缓冲区时清除 z 缓冲区:
// Clear color and depth buffers glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
据我所知, glutInitDisplayMode 是 GLUT 函数之一。我可以消除这个电话而不会产生不良影响。如果不是,那么可以解决问题的替代纯opengl调用是什么。