是什么呢?在很长的一段时间里, 我只知道怎样使用它们, 怎样用它们达到预期的效果, 但
我从不知道它们真正代表着什么。
上面提到过, 所有的物体都会吸收和发出光线。 一个全反射材质, 也就是反射全部光线的材
质,像表面镀了金属的玻璃, 它表面的每一个点都包含了环境的信息。 当光线在物体表面反
射后一部分光线被吸收, 反射光线变弱且被 “染色 ”。因此过渡色就是物体表面除吸收的那一
部分的带有表面颜色的反射光线。 在现实中绝大多数表面都会有一定程度的粗糙度, 我不是
说肉眼可以看到的凹凸不平,而是微观上的表面粗糙。不同的 Saders 能够快速有效地模拟
表面的粗糙方式。 高光就是反射最多, 光线聚集最强烈的那一部分表面产生的。 地过渡色区
域也会有小面积的高光, 但随着表面和光源的距离拉大高光也渐渐地变的不明显了。 这样的
高光在现实世界并不存在,这是因为现实世界不存在 3D 软件中的理想光源(点光源和面光
源)。现实世界中的光源总会有一定的形状,这样高光区会表现有一定的细节而且可以看到
光源的形态。 参考下图中的皮革, 射到高光区的光线来自窗外的阳光, 可以看到真实表面的
细节是很复杂的。 可以说高光区只是过渡色区域中反射较强的表面。 像这样的反光表面只用
一个简单的 Sader 是不可能实现的, 我们必需用真正的光源来模拟窗外的光线。 或许还要用
反射模糊来模拟过渡色区域的光线散射,用一点过滤色模拟表面吸收不同的光线产生的颜
色。这可能就是这几年来 HDRI 如此流行的缘故吧。 HDRI 不仅可以产生高质量的间接照明,
还可以用渲染出真实的反射和高光区的精彩细节。
这是一幅勺子的照片, 主光来自上方。 勺子的中心有非常强烈的高光, 有趣的是周围还有一
圈圈的刮痕。 每一圈刮痕可以看成在它边缘处反光的圆柱形凸痕。 光线在它们之间反射, 这
样反射光线在某个方向上散射开来,也就是 CGI 里所谓反射的各向异性。
在这张图片中我们看到主光在高光区的中心形成一个十字。 像打磨过的金属和毛发这类物质
常发生这种现象,而且针对这种高光已经有不同的 Shaders 算法了。我要指出的是这些算法
都必需能快速的产生各向异性的高光。 如果想渲染出正确的高光就必需用真实的物体, 或者
至少用凹凸贴图模拟刮痕 (这个 Shaders用在 CGI 毛发上一点意义都没有, 因为这种现象是
由许多许多细小的圆柱体产生的) 。我只发现在使用不透明贴图的时候这种 Shaders 才管用。