【发布时间】:2013-07-29 20:36:00
【问题描述】:
以下是同一 3D 场景的 2 张图像,从同一角度(虚拟相机)拍摄,带有和不带有 backCulling。图像并不描绘最终的网格,而是深度缓冲区的内容。
没有反向剔除
glDisable(GL_CULL_FACE);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDepthFunc(GL_LESS);
使用反向剔除
glEnable(GL_CULL_FACE);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glDepthFunc(GL_LESS);
问题
- 为什么两张图片之间会有这样的差异?当然,人们会期待差异,但我不明白为什么 没有 BackCulling 深度图如此平滑,而 使用 BackCulling 深度值似乎不那么连续.
- 在没有BackCulling的情况下,对于某个像素,深度缓冲区的值是多少?是离相机更近的那个(平滑的图像看起来像这样),还是因为很多东西都投射到同一个 2d 点/像素上,所以我应该期待别的东西?
参考 - 3D 场景 - 2D 帧
【问题讨论】:
标签: opengl depth-buffer