【译】glTF教程:高级材质(十四)

【译】glTF教程:高级材质(十四)

2019-02-20

一种先进的材料

上一节中的示例:简单纹理示例展示了使用纹理定义“基本颜色”的材料。但是除了基本颜色,材质还有其他属性可以通过纹理来定义。这些特性已经在材质小节中进行了总结:

  • 基色,-“金属”值,
  • 表面的“粗糙度”,
  • 发射特性,
  • 一个遮挡纹理,和
  • 法线贴图*

这些属性的效果不能用简单的纹理来正确地演示。因此,这里将使用一个官方的Khronos PBR示例模型,即WaterBottle模型来显示它们。图14a显示了该模型中涉及的纹理的概述,以及最终渲染的对象:


图14a:一个通过纹理定义表面属性的例子。

解释基于物理的呈现的实现超出了本教程的范围。官方的Khronos WebGL PBR存储库包含一个基于WebGL的PBR渲染器的参考实现,并提供了实现提示和背景信息。下面的图片主要是展示不同材质属性纹理在不同光照条件下的效果。

图14b显示了粗糙度纹理的效果:与瓶盖粗糙的表面结构相比,瓶盖的主体部分粗糙度较低,使得瓶盖显得有光泽。


图14b:粗糙度纹理的影响。

图14c突出了金属纹理的效果:瓶子反射来自周围环境地图的光线。


图14c:金属纹理的影响。

图像14d显示了纹理的发射部分:无论环境设置是暗环境,发射纹理中包含的文本都清晰可见。


图像14d:纹理的发射部分。

图像14e显示了定义法线贴图的瓶盖部分:文本似乎是压印到瓶盖上的。这使得在表面上建模更精细的几何细节成为可能,即使模型本身只有非常粗糙的几何分辨率。


图14e:法线贴图的效果。

总之,这些纹理和地图允许建模的现实世界的材料范围很广。多亏了通用的底层PBR模型——即metal -roughness模型——不同的渲染器实现可以一致地呈现对象。