天匠映像游戏教育TENJOY GAME EDU首先声明,这篇文章是转载的,在“天匠映像技术交流群”里看到有朋友发,看着非常有用,所以拿来一起共勉的。这篇文章是署名为何三林(真名叫:何淋?猜的~)的朋友发布在博客上的连载,作者应该是一位程序,不过对于PBR流程的理解和对于美术师应该了解的一些事情非常清楚。今天发布出来希望大家能对PBR流程有更深入的理解。 一、对PBR的误解
天匠映像游戏教育TENJOY GAME EDU 在开始之前,要对究竟什么是PBR以及PBR需要什么样的贴图做一些澄清。首先,金属贴图metalnessmap并不是PBR的必须,也不是使用了高光贴图specular map就不能算作PBR。PBR基本概念是一系列复杂的处理真实物理和光照的渲染器的组合,以及在这些渲染器下工作的一系列使用了标准化的表示真实材质属性的参数的贴图。PBR本质是一个用于创建贴图和做渲染工作的整体系统,通常在不同的工具和引擎下有不同的实现(一般指渲染器模型和贴图的输入类型)。直接将非PBR的作品在PBR的渲染器下渲染是不会有正确真实的效果的。所以,渲染器只是PBR的一部分,要正确地使用PBR得到真实的效果,还必须要考虑到如何正确地校准、使用PBR下的贴图。 二、PBR做了哪些改变
天匠映像游戏教育TENJOY GAME EDU
要想透彻理解怎样创建PBR贴图或者怎样将以前模式下的贴图转换到PBR下,就必须要清楚PBR的渲染器做了怎样的改变。首先,一个重要的改变就是光照的计算方式。PBR使用了动态光源和实时阴影技术,以及提供了精准环境漫反射和镜面折射的基于图像光照(image-based-lighting)的技术。这就使得美术不用再去将光照、反射、阴影等直接绘制到贴图上,不用再去烘焙光照贴图,而将注意力转移到重现真实的材质属性。线性空间渲染使得美术不用再在高光贴图中使用漫反射的补色来获得真实的白色高光,同时PBR微表面算法中的能量守恒将使美术不用再在高光贴图中使用灰度来区分材质的粗糙(更黑)和光滑(更亮)的区域。这就意味着高光贴图通常只用包含比数值稍微复杂一点的信息(表示绝缘体的灰度等级,表示金属的色彩信息),其他的变化将交由微表面贴图来定义。
三、对传统工作流程的吐槽
天匠映像游戏教育TENJOY GAME EDU
在继续深入之前我们应该清楚MetalnessWorkflow和SpecularWorkflow的基本区别,虽然大多数引擎都会选择支持一种或两种都同时支持。两种工作流最大的区别在于怎样在贴图中呈现diffuse和refectivity。例如在specular workflow下,这两者由明确区分的两种贴图来呈现。而metalnessworkflow下,albedo map 则同时包含了diffuse和reflectivity的信息,而 metalness map 则用于区分金属和非金属。这是因为金属导电,这就意味着绝大多数光子(光)会在其表面发生反射,而其余的光子则会被吸收而不是发生漫发射,所以金属没有漫发射的概念。相反绝缘体则会反射一小部分光(大约4%),而大部分的光则是发生漫反射或在物体表面弹射从而形成均与分布的颜色。
天匠映像游戏教育TENJOY GAME EDU
Specular到Metalness的贴图转换使用photoshop作为工具。 首先创建 metalnessmask:使用图层遮罩工具,以白色填涂金属,黑色填涂非金属,一定的灰度表示“半金属”、过度、划痕或者脏痕迹。然后将图层做为metalnessmap保存。