渲染的重要缓存是深度缓存----也称作z-buffer。深度缓存不存储像素的颜色,而代之以像素的深度信息。存入缓存的深度信息有多种不同的变体,但它们基本上都反映物体到摄像机的距离。实践中通常保存的都是裁剪空间的z坐标,这就是z-buffer名称的由来。
深度缓存一般用于计算物体之间的遮挡,当光栅化三角形时,计算各像素的插值深度。在渲染像素之前,将这个深度值和深度缓存中该像素的深度值比较,如果新的深度比现有值离摄像机更远,3d局部渲染,则新的像素被丢弃;否则像素颜色被写到帧缓存,并用新的更近的值更新深度缓存。在开始进行新的渲染之前,记得要置z-buffer各值为无限远(在裁剪空间中,3d卡通渲染,这个值为1.0),这样一批像素才能通过深度测试,一般不对z-buffer设置双缓存。
补充光
补充光用来填充场景的黑暗和阴影区域。关键光在场景中是较引人注意的光源,但补充光的光线可以提供景深和逼真的感觉。
比较重要的补充光来自**漫反射,这种类型的灯光通常称为环境光。这种类型的光线之所以重要,3d汽车渲染,部分原因是它提高了整个场景的亮度。不幸的是,大多数渲染器的环境光统一地应用于整个场景。减低了场景的整体黑暗程度,渲染,它淘汰掉了一些可能的特性,不能对照亮的物体上的任何光亮和阴影进行造型,这是使场景看起来不逼真的主要原因。
模拟环境光的更好的方法是,在场景中把低强度的聚光灯或泛光灯放置在合理的位置上。这种类型的辅助光应当减少阴影区域,并向不能被关键光直接照射的下边和角落补充一些光线。
除了场景中的**散射光或者环境光之外,补充光用来照亮太暗的区域或者强调场景的一些部位。它们可以放置在关键光相对的位置,用以柔化阴影。