OpenGL深度缓冲区是三维(3D)图形程序员可使用的更容易误解、更复杂且最终有用的工具之一。有几种方法可以优化缓冲区,从而提高程序的帧速率,包括正确设置近、远剪裁平面。其他提示包括清除渲染和避免场景合成之间的缓冲区...
OpenGL深度缓冲区是三维(3D)图形程序员可使用的更容易误解、更复杂且最终有用的工具之一。有几种方法可以优化缓冲区,从而提高程序的帧速率,包括正确设置近、远剪裁平面。其他提示包括清除渲染和避免场景合成之间的缓冲区,因为将对象放得太近会导致深度问题。使用OpenGL®深度缓冲区可以轻松高效地执行一些二维(2D)图形技巧。使用的图形卡有时也可能是深度问题,因此使用正确的设置有助于提高速度和减少不必要的处理周期。OpenGL深度缓冲区是三维(3D)图形程序员最容易误解、最复杂且最终有用的工具之一。它是影响OpenGL深度缓冲区性能的首要问题之一,在传统上标记笛卡尔深度平面的字母后也称为Z缓冲区,是近剪裁平面和远剪裁平面的放置位置。这些平面定义了在场景中应渲染和不应渲染的边界,它们的值分别表示与观看者之间的距离,剪辑应该从哪里开始和结束。一个直观的想法是从观察者所在的位置开始渲染,将“近平面”设置为零,但这实际上是不正确的。事实上,OpenGL®不允许将“近平面”设置为零。如果“近平面”的值非常小,例如1的一小部分,则渲染器可能根本不显示任何内容或它可能无法正确排序深度缓冲区。这是因为对象越靠近查看器,OpenGL®计算对象的位置就越精确当与观察者的距离接近于零时,计算的精度呈指数级增加。这会减慢渲染时间,并可能导致奇怪的图形伪影和其他问题,除了很少需要计算精度级别之外。当渲染二维图形时,OpenGL深度缓冲区有助于简化某些操作。使用深度缓冲区稍微偏移合成中用作平铺的四边形,可以帮助平铺场景的元素平滑移动,而不会在图像中产生由同一平面上两个多边形相互重叠造成的奇怪效果。同样,准备好的元素可以隐藏在视野之外或远剪裁平面的后面,这样它们就可以很快被带到场景中,甚至可以利用变换和旋转来提供特殊的淡入或淡出效果。最后,虽然OpenGL深度缓冲区可以支持缓冲区的不同硬件大小,但最好使用16位版本。这是因为,在大多数场景中,使用32位缓冲区可以减慢渲染时间。而且,并不是所有的显卡都支持32位深度缓冲区,所以降低到最低公分母意味着更多的人将能够在编写3D程序时运行它
-
发表于 2020-08-07 23:19
- 阅读 ( 1152 )
- 分类:电脑网络