Chapter 6 – Texturing 贴图

6.5 材质映射

贴图的另一个用处是改变物体表面的着色等式中的各个材质属性。真实世界中的物体通常有着不同的表面材质属性。为了模拟这一类物体,像素着色器可以从贴图中读取数据并且在着色运算之前使用这些数据来改变材质参数。最常见的情况就是通过贴图来改变物体表面的颜色。这一类贴图被成为albedo color map(反射颜色映射贴图)或者diffuse color map(漫反射颜色映射贴图)。然而,任何参数都能通过贴图去改变:我们可以进行替代操作,也可以进行乘法,或者以其他方法进行改变。例如,下图中的物体使用了三种不同的贴图。

上图展现了一个金属质感的砖块状物体。其由三张贴图组成,分别是代表物体表面颜色的反射贴图,代表物体粗糙度的粗糙度贴图(白色表示较为粗糙),代表物体表面高度的高度贴图(白色表示该点的位置较高)。

我们还可以进一步扩展贴图在材质中的运用。贴图也能控制像素着色器中的分支与函数,而不是直接改变着色等式中的参数。例如,着色器中可以含有两种或者多种材质,它们的着色等式各不相同,而贴图中的数据可以表示物体表面某个区域的材质种类,因此,在像素着色器运行时就能执行不同的代码以表示不同的着色等式。例如,金属表面中有一部分是生锈的区域,我们可以通过贴图来表示生锈区域的位置,在金属表面则运行反射较高的着色等式,在生锈部分则运行反射较低的着色等式。

着色模式的输入参数,例如表面的颜色,与着色器最终输出的颜色有着线性关系。因此,包含这一类输入参数的贴图可以预先进行filter以避免锯齿。包含非线性的着色输入参数的贴图,例如粗糙度或者bump映射贴图(我们会在之后的小节学习),则需要更多的操作以避免锯齿。我们将在第九章中再具体学习这一类知识。

留下评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据