纹理和资源概述
1. 为什么需要纹理?
我们的演示程序正在变得越来越有趣,但是顶点颜色无法体现真实世界物体所具有的细节。纹理贴图映射(texture mapping)是一种将图像数据映射到三角形表面的技术,它可以显著提高场景的细节和真实感。例如,我们可以创建一个立方体,然后将一
个板条箱纹理映射到立方体的每个面上,使它看上去更像是一个板条箱(参见下图)。
2. 纹理如何表示?
回顾我们自从第4章之后学习和使用过的一些纹理;尤其是深度缓冲区和后台缓冲区,它们都是通过ID3D11Texture2D接口描述的2D纹理对象。在本节中,我们将回顾第4章讲过的一些有关纹理和材质的知识。
2D纹理是一种数据元素矩阵。2D纹理的用途之一是存储2D图像数据,在纹理的每个元素中保存一个像素颜色。但这不是纹理的唯一用途;例如,在一种称为法线贴图映射(normal mapping)的高级技术中,纹理存储的不是颜色,而是3D向量。因此,从通常意义上讲,纹理用来存储图像数据,但是在实际应用中纹理可以有更广泛的用途。1D纹理(ID3D11Texture1D)类似于一个1D数据元素数组,3D纹理(ID3D11Texture3D)类似一个3D数据元素数组。1D、2D、3D纹理接口都继承自ID3D11Resource接口。