- UID
- 352
- 帖子
- 1321
- 精华
- 14
- 积分
- 2599
- 来自
- 河南永城
|
百度一下
简介
深度缓存算法(depth—buffer method)是一种常用的判定对象表面可见性的物空间算法,它在投影面上的每一像素位置比较场景中所有面的深度。由于通常沿着观察系统的z轴来计算各对象距观察平面的深度,该算法也称为z缓存(z-buffer)算法。编辑本段算法描述
该算法需要两个缓存器,一个是用来存放颜色的颜色缓存器,另一个是用来存放深度的深度缓存器。利用深度缓存器,可以进行可见性的判断,消除隐藏对象。其具体做法是: 首先对深度缓存器和颜色缓存器进行初始化,把深度缓存器中所有单元置成一个最大可能的深度值,把颜色缓存器中各单元置成背景颜色。然后将场景中的物体不分次序地投影到象平面上去。对于每个投影点(象素),把投影物体在该点处的深度与深度缓存器中相应位置上的深度值进行比较,如果前者小于后者,那么就把当前被投影物体的颜色写到颜色缓存器中去,同时用当前投影物体的深度去更新深度缓存器中相应象素的深度,否则不做任何操作。编辑本段优缺点
深度缓存算法中物体投影到象平面上的次序是任意的,无须将场景中的表面进行排序,物体之间的遮挡关系是通过深度缓存器进行深度比较加以确定的,算法易于实现。 深度缓存算法只能显示距离视点最近的物体,而且这些物体都是不透明的,无法看到被遮挡的物体。 深度缓存算法经常执行一些最终不起作用的中间计算过程。由于对象按任意次序进行处理,因此有些表面进行了颜色计算但事后又被更近的表面所代替。为了缓减这一问题,有些图形软件提供选项让用户调整表面测试的深度范围。例如,通过深度测试排除较远的对象。使用该选项还可以排除非常靠近投影平面的对象。高档计算机图形系统一般集成了深度缓存算法的硬件实现。 |
|