我们知道,通过光照计算和设置材质属性,我们可以为每个顶点计算一个颜色值;利用vetex shader,我们可以扩展固定流水线的功能,并且可以每个顶点随意计算其颜色值。利用这两种方法建模的颜色值,能够通过光栅器插值到屏幕中对应的像素中。但是,仅仅通过这两种方法,很难为物体做一个非常精细的“面孔”,所以就引入了Texturing 技术。
纹理化技术,能把一张很复杂的图片绘制在物体的表面,它也可以允许我们为每个像素建立一张漫反射表,其索引可以通过每个对应被插值的顶点的纹理坐标计算得到。纹理的每个元素就好比对应一个像素,都是一个color。纹理坐标一般是有一维,两维,三维和四维。把查询漫反射表的结果与光栅化的结果混合起来,能产生一个漫反射颜色,一起送给frame buffer。当然,它也能支持multi texturing,每个texturing stage 的output 也就是下一个stage的input。
固定功能的像素处理通过multi texturing 各个stage来产生丰富的颜色。可编程的pixel shader,当然就非常灵活的产生颜色了。
现在主要有三种纹理资源,矩形纹理,立方体纹理以及大体积纹理(volume)。在这一章讨论了纹理资源的接口以及纹理资源的管理,并且详细的解释了纹理坐标的处理(非常精彩)。
纹理坐标是由vertex buffer提供的或者由direct3d自动产生。在提交到teuring stage之前,纹理坐标