四句话解释纹理
- 纹理实际上是一个二维数组,它的元素是一些颜色值。
- 单个的颜色值被称为纹理元素(texture elements)或纹理像素(texel)。
- 每一个纹理像素在纹理中都有一个唯一的地址。这个地址可以被认为是一个列(column)和行(row)的值,它们分别由U和V来表示。
- 所有纹理像素地址的范围都在0.0到1.0之间。
由于纹理的大小有所不同,因此纹理地址将会映射为不同的纹理像素。左边的纹理1,大小为5x5,纹理地址(0.0,0.5)映射到纹理像素(0,2);右边的纹理2,大小为7x7,纹理地址(0.0,0.5)映射到纹理像素(0,3)。
纹理映射
通过给对象空间中的图元各个顶点分配纹理坐标,决定二者之间的映射关系:
寻址模式
Wrapping纹理寻址模式
在每一个整数结点(integer junction)对纹理进行重复。
假设我们要创建一个正方形图元,并将纹理坐标声明为(0.0,0.0)、(0.0,3.0)、(3.0,3.0)和(3.0,0.0)。这时,如果我们设置了纹理寻址模式,就可以使纹理在U、V方向都重复三次。
镜像纹理寻址模式
纹理在U、V方向重复,并且每一(整数)行、每一(整数)列都与相邻的行和列成镜像关系。
钳位纹理寻址模式
只使用一次纹理,将边缘像素的颜色抹去。
边界颜色纹理寻址模式
在纹理坐标超过范围的地方使用一个任意的颜色,也就是边界颜色。