为什么需要深度缓冲?

时间:2010-12-13 14:10:14

标签: iphone depth-buffer opengl-es-2.0

我不明白为什么我需要使用深度缓冲区,因为在this项目立方体绘制中没有深度缓冲区。

抱歉我的英语不好。我是俄语,并在1.5年前开始学习英语。

3 个答案:

答案 0 :(得分:5)

在进行简单渲染时,很容易确定哪些曲面会遮挡其他曲面,例如,只需对曲面进行深度排序,深度缓冲就是不必要的负担。在更逼真的渲染场景中,特别是当曲面可以相交时,任何深度排序都不会产生正确的结果。深度缓冲区允许您以任何顺序绘制曲面,并仅保留最接近屏幕的渲染。这实际上可以提高非平凡场景的性能。

答案 1 :(得分:2)

与iPhone不相关,但深度缓冲区(或z缓冲区)将允许以任何顺序绘制面并仍然正确渲染它们。

阅读一些关于它的教程(使用Google),图片将更好地说明。例如,请参阅this tutorial

Depth Buffer enabled已启用深度缓冲区

Depth Buffer disabled禁用深度缓冲区

答案 2 :(得分:0)

不幸的是,上面的项目充满了黑客 - 让我感到困惑。

如果您想要3D,请使用深度缓冲区,启用深度测试,而不要像在多维数据集示例中那样进行正面剔除。