什么是深度纹理(Depth Texture)
深度纹理是一张包含特定场景的深度缓冲中的数据的纹理。纹理中的每个像素的颜色代表对应这个像素的多边形的深度值,这个深度值来自于深度缓冲。你可以使用深度缓冲通过一个叫做shadow mapping的技术绘制一个精确的阴影,所以深度纹理又被称为阴影贴图(shadow maps)。
有两个方法可以将深度信息保存到一张纹理中。第一个方法是使用一个标准的RGBA表面(surface)格式并将四个颜色作为一个32-bit缓冲,将深度复制到这个缓冲(深度数据通常是24或32 bits)。第二个方法是对纹理使用一个浮点(floating-point)表面格式,这个格式与一个浮点深度缓冲组合在一起。深度缓冲通常是定点(fixed-point)的,当使用第二种方法时,在存储前从1减去深度值的结果更加精确,这是因为此时浮点数是encoded。
以上两种方法都需要一个自定义顶点和像素shader。How To: Create a Depth Texture 提供了一个深度纹理shader的例子。
发布时间:2009/6/29 上午7:50:27 阅读次数:8999