3D图形学学习总结(十一)—深度缓存

    原文链接:http://www.nicemxp.com/articles/28

    在前面的学习中,总是用一个箱子来进行各种测试,但是在世界中如果有很多个物体,然后将物体都加入渲染列表中后,发现渲染出来的效果跟想象中的不一样。

    这是因为渲染接口接受到渲染列表中的三角形面是无序的,没有顺序先后之分,总是把新收到的三角形渲染到屏幕上并覆盖到屏幕本来像素点的颜色。也许我们可以为插入到渲染列表中的三角形排序,但是如果两个三角形相互交叉互相遮盖,对于这样的情况排序还是无法解决,如图:

    对于图中这种情况对于排序是无用的,因为即使排了序无论先渲染哪个三角形都会覆盖掉另一个,并不能保证真实的3d效果,可以看下面效果图:

    这是很多个箱子重叠在一起,渲染出来的结果是乱乱的根本看不出先后之分,这并不是我们想要的。

    z缓存算法可以解决这个问题,算法基于像素进行z排序。

    对于一个大小为MxN的屏幕,创建一个z缓存zbuffer[M][N],其中包含每个多边形中每个像素被光栅化扫描转换后的z值。

    算法的思路&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值