al着色器中的“al”是以作者Anders Langlands来命名的。他目前任职于Weta Digital的VFX sequence主管 。他写了一系列针对Arnold渲染器的着色器。Anders的动机是为Arnold植入可用于制作的Arnold 着色器,他觉得VFX的需求超出了目前Arnold所能提供的功能。其中一个他写的最重要的着色器就是alSurface着色器,也被称为uber - shader,这个着色器被大家拿来用在实体、金属、透明物、反射物,甚至次表面散射,例如皮肤材质。
以下是Maya中的alSurface uber-shader的全部接口:
他写的着色器一直在业界广为推崇,但是其中最为津津乐道的是alSurface着色器能出色地重现皮肤材质。
最近他开放了着色器的原始码,让其他人可以植入到别的渲染器中。
他甚至开了一个网页专门介绍他的al shader。
基于V-Ray论坛上,Luc Begins这位V-Ray用户的强烈要求,加上这个着色器现在已经是开放程序代码的。Vlado决定要植入alSurface 着色器的部份功能,特别是皮肤材质的部份。
这个着色器会考虑到diffuse,两阶的specular与次表面散射,目前唯一缺乏的部份是折射与透明度,可能之后会添加进去。
以下是到目前为止 V-Ray的alSurface 着色器的分解说明:
由于导入alSurface 着色器的目的是以皮肤材质为主, 因此我们来看看跟其他的皮肤材质,Arnold中的aiSkin 着色器与VRay Skin Mrtl这三者有什么差异 (事实上作法很类似)
以下是差异点:
VRay Skin Mtl: Diffuse 与 Sub-Surface color事实上是两个不同的map然后以diffuse amount混合在一起。
alSurface: Diffuse与 Sub-Surface color用的是同一张map,然后有一个SSS控制surface如何受到subsurface scattering与Lambertian diffuse的影响。
VRay Skin Mtl: 有三阶的次表面散射,每个都平等地混合在一起,使用了标准的dipole model计算SSS。
alSurface: 同样也有三阶的SSS,但是每个各有权重控制,也提供几种SSS模式。Vlado已经导入了其中两种到V-Ray版的alSurface 着色器 Diffusion法,可以比标准的dipole model保留更多细节。而Directional法允许使用单一个Scatter maps 能保留更多细节。
VRay Skin Mtl: 使用了两个lobe specular模型,具有锐利与宽广的反射,同时使用Phong作为reflective BRDF。这个模型在很多状况都很好用,但是在扫视(glancing angles)的角度时会因此减切到SSS 产生变暗的问题。这是因为Fresnel效应是根据一个函数计算观察角度与表面法线角度,而忽略了从光线照明表面的方向。
alSurface: 这个模型也用了两个lobe specular,但是除了使用如Phong或Blinn的平滑BRDF 它还此用了微表面(microfacet)。Fresnel效应则是根据一部分BRDF的计算(也就是所谓光泽度的菲涅耳效应,glossy Fresnel)并且会考虑到观察的角度,表面法线与光线的方向,使用者可以选择GGX与 Beckmann BRDF两种模型,根据微表面的特性,可以避免透过逆反射(retro-reflection)在扫视角度的变暗问题。除此之外这个模型在同样的扫视角度不包含SSS。
其他明显的差异
用在Fresnel的IOR在两个着色器都不同, 因为计算fresnel的方式有所不同。 因此,如果用户使用相同数值 alSurface 着色器的看起来会反射更强。
VRay Skin Mtl使用glossiness 因此高数值就更光亮,而alSurface 着色器使用roughness因此数值越高就越diffuse。因此,如果你要转换套用的话,贴图就必须要先反转。
VRay Skin Mtl以diffuse混合,表示数值1等于100% diffuse。alSurface 着色器则是根据SSS混合,表示数值1等于100% SSS。如果你有用到贴图,Single Scatter Map 可能也需要反转才能套用。
这个着色器目前可以在我们的Github下载:
https://github.com/ChaosGroup/vray_al_surface/releases
3ds Max 的安装
将3ds Max版本的.dlt文件复制到[maxroot] \ plugins \ vrayplugins活页夹。
3ds Max 中的用法
该材质称为VRayALMtl。
Maya 的安装方法
Windows 操作系统
将文件vray_BRDFAlSurface.dll复制到V-Ray plugins的活页夹中(f.e. C:\ program files \ autodesk \ maya2016 \ vray \ vrayplugins)
或
将vray_BRDFAlSurface.dll的路径添加到环境变量(environment variables )VRAY_FOR_MAYA2016_PLUGINS_x64和VRAY_PLUGINS_x64
Linux 操作系统
将文件libvray_BRDFAlSurface.so复制到V-Ray plugins文件夹(f.e. / usr / autodesk / maya2016 / vray / vrayplugins)的活页夹中
或
将libvray_BRDFAlSurface.so文件的路径添加到环境变量(environment variables )VRAY_FOR_MAYA2016_PLUGINS_x64和VRAY_PLUGINS_x64
Maya 中的用法
您可以从创建> V-Ray>创建V-Ray插件> BRDF材料创建新的材料。 从该列表中选择BRDFALSurface。
维基人体(wikihuman)的计划一直致力于从ICT数据组提供的数据,以了解组装皮肤着色器的最佳方法。从一开始我们就明白,根据我们拥有的数据集,V-Ray中的标准皮肤着色器不再适合。所以我们制作了新的着色器,可以更符合从ICT获得的Lightstage数据。
然而,alSurface着色器可以在技术上原本就更能使用Lightstage数据。因此,我们决定拿这个着色器跟维基人体的着色器做比较测试。
更新:维基人体计划在这个网站已经进行了深入的比较。
以下是将维基人体的数据,比较两个不同的着色器。我们将很快对Wikihuman.org网站上的着色器做更深入的分析。