什么是深度纹理(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

2006 - 2024,推荐分辨率 1024*768 以上,推荐浏览器 Chrome、Edge 等现代浏览器,截止 2021 年 12 月 5 日的访问次数:1872 万 9823 站长邮箱

沪 ICP 备 18037240 号-1

沪公网安备 31011002002865 号