纹理
纹理数据通常是存储在磁盘上的图像文件,我们需要将它读取出来,并载入到一个资源对象中。为纹理创建一个着色器资源视图可以将视图绑定到管线上,但需要注意设置BindFlags以指定需要绑定的管线阶段。
纹理坐标
过滤器
纹理中的元素是连续图像的一系列离散采样,纹理坐标(u,v)不能总是和纹理元素点一一对应,所以对纹理进行采样时,需要使用filter来读取一个或多个纹理元素并将它们组合在一起构成一个新的值。例如点采样(Point sampling)读入单个纹理元素而线性采样(linear sampling)则会读入两个纹理元素并在它们之间做线性插值得到第三个值。当多边形的法线向量和摄像机的观察向量夹角过大的时候,可以使用各向异性过滤来缓解图象失真问题。
寻址模式
当uv坐标超出[0,1]范围时,需要通过寻址模式来指定此时如何获取像素元素。一共有四种寻址模式,分别为:重复(wrap)、边框颜色(border color)、截取(clamp)和镜像(mirror)。warp为默认值。
纹理数组
纹理数组用于存储一个纹理阵列,对2D纹理数组,其中的每一个纹理都要有相同的文件格式和尺寸,另外也要有相同的mipmap level。在C++中2D纹理数组和2D纹理都用ID3D11Texture2D表示。在着色器中,Texture2DArray表示2d纹理数组。2