OpenGL深度缓冲区最大距离

时间:2011-09-16 13:43:19

标签: opengl

由于深度缓冲像素只能有0到255之间的颜色(我是对吗?),最大绘制距离也会受到该边界的限制。

  • 这是真的吗?
  • 现代游戏如何解决这个问题?
  • 中间的价值怎么样?喜欢125.5?

2 个答案:

答案 0 :(得分:4)

  • 不,不是真的。由于它提供的范围有限,它通常甚至不可能使用8位深度缓冲器。最小值通常为16位,24位(保存模板缓冲区的前8位32位)是最常见的。它也可以使用浮点深度缓冲区和32位整数缓冲区。
  • 使用更深的深度。
  • 在像125.5这样的值的情况下它实际上会被舍入或截断为126或125.但是通常通过OpenGL你实际上会将1到-1之间的深度值(后投影和除法)传递给OpenGL 。然后将该值发送到OpenGL运行时,将其转换为实际深度值。通过这种方式,您可以更改深度缓冲区的位深度,一切都可以继续工作。

答案 1 :(得分:0)

想要展示巨大风景的游戏通常使用skybox / skysphere,即。一个平面的图像,给人以伟大的印象。

我记得Guildwars的主菜单。它看起来很大,但你仔细看,它真的是一个圆形纹理。

深度缓冲区像素用于确保不绘制比现有对象更远的对象。如果两个对象具有相同的深度,他们可以选择无论如何渲染它;无论哪种方式都很好,你不需要这么精确。