pbr材质系统和vray材质系统有什么不同

作者:戴巍
链接:https://www.zhihu.com/question/49032411/answer/118293944
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

现在游戏行业开始流行起来的pbr材质系统,在CG渲染领域已经发展很多年了。就是说,游戏行业的材质在慢慢追逐影视的效果,最近这两年才比较接近了。

所以,CG渲染领域用的材质可以实现几乎一切游戏pbr材质可以实现的效果,反之则不行。

具体回答问题:
pbr材质(这里说的是最流行的metalness roughness模型)使用的参数是albedo metalness roughness normal,而vray材质的主要对应参数有diffuse specular glossiness normal或者bump

albedo就是大家熟悉的diffuse,也就是物体的固有颜色。

metalness翻译过来是金属度,描述材质是金属还是电介质,这是给大家提供的一个感性解释,实际上这个参数真正控制的东西是F0,也就是菲尼尔反射中,与摄像机视线垂直的面的反射率,当metalness值为0的时候,F0的值是0.04,也就是IOR为1.5的时候对应的F0;而当metalness值位1的时候,F0的值是1;metalness是0-1的中间值的时候,F0也会在0.04和1之间进行插值,我猜是线性插值。在这个过程中F90不变,永远恒定为1。这其实就是对菲涅尔效果的粗略描述了。

在vray的材质球上,没有一个能跟metalness相对应的参数,可能有些人会以为是specular,控制反射强度的这个参数。实际上不行。因为specular会整体改变整个材质球的反射强度,而metalness只改变F0的正面反射率,侧面永远是1。

不过刚才也说了,F0和折射率,也就是IOR,有对应关系,可以通过公式进行换算。所以vray里,IOR某种程度上可以对应metalness。

roughness = 1 - glossiness 这两个单词本身就是反义词。

normal或者bump不用说了。

以上只要完全把属性一一进行对应,vray的材质可以完全还原pbr材质的效果。但是vray的材质还有很多很多别的功能,比如说透明、半透明、物理算法的3s效果,diffuse 本身的roughness属性都是pbr没有的。



另外,有些pbr材质具有specular属性。比如说UE4的pbr材质,然而这里的specular和vray里的specular有些近似,但不同。UE4材质球的specular指的其实也是F0的反射强度,默认0.5对应的就是F0的0.04,往0调会略微降低F0,往1调会略微提高F0。


还有一点非常关键,我放在最后讲。就是原则上用正确的方法去链接贴图,可以让vray材质球得到和pbr材质球非常近似的视觉效果,但是对于边缘的反射强度处理是不一样的,虽然说由于菲涅尔反射的存在,模型的边缘处反射率恒定为1,但是当物体微表面粗糙的时候,光线在边缘的地方,容易发生相互的反射、遮挡等等,会让反射率从宏观上看起来有所下降。目前我测试过几款渲染器,vray arnold 和mr对于边缘处反射模糊的处理和pbr材质球都不一样,并且实际上是错误的;唯一我发现正确处理的是redshift的材质。

如果你使用的是vray arnold 或者mr渲染器,并且没有意识到这个问题,那么可以说绝大多数你调的材质都是错的。按照pbr材质的思路走才是对的。具体怎么做的话,还要说很多。可能关心的人不多,就写到这里了。

你可能感兴趣的:(转载)