基于物理的渲染(Physically Based Rendering,PBR)技术,自迪士尼在SIGGRAPH 2012上提出了著名的“迪士尼原则的BRDF(Disney Principled BRDF)”之后,由于其高度的易用性以及方便的工作流,已经被电影和游戏业界广泛使用,并成为了次时代高品质渲染技术的代名词。 本文的主要内容,便是对推动了这次基于物理的渲染革命的“迪士尼原则的BRDF(Disney Principled BRDF)”,以及随后2015年提出的“迪士尼BSDF(Disney BSDF)”进行深入的探讨、总结与提炼。 全文主要内容脉络如下:
o Diffuse项的观察结论 o Specular D项的观察结论 o Specular F项的观察结论 o Specular G项的观察结论 o布料(Fabric)材质的观察结论 o彩虹色(Iridescence)的观察结论
o Disney Principled BRDF的理念 o Disney Principled BRDF的参数 o Disney Principled BRDF的着色模型 核心BRDF模型 漫反射项(Diffuse):Disney Diffuse 法线分布项(Specular D):GTR 菲涅尔项(Specular F):Schlick Fresnel 几何项(Specular G):Smith-GGX
在文章开头,依然是首先放出总结了本文核心内容脉络的两张思维导图: 图片较大,建议下载到本地后放大查看。原图下载地址:
OK,让我们直接开始正文。 一、迪士尼与基于物理的渲染的发展 正如这个系列前文已经提到的,基于物理的渲染其实早在20世纪就已经在图形学业界有了一些萌芽,2010年在SIGGRAPH上就已经有公开讨论的Course《SIGGRAPH 2010 Coursehysically-Based Shading Models in Film and Game Production》,而直到2012~2013年,才正式进入大众的视野,渐渐被电影和游戏业界广泛使用。 究其原因,一方面是因为硬件性能的限制,另一方面,则是因为早期的基于物理的渲染模型包含大量复杂而晦涩的物理参数,不利于美术人员的理解、使用和快速产出。 迪士尼则是这次PBR革命的重要推动者。在创作电影《无敌破坏王(Wreck-It Ralph)》期间,迪士尼动画工作室对基于物理的渲染进行了系统的研究,最终开发出了一种几乎可以用于电影的每个表面新的BRDF模型(头发除外),即迪士尼原则的BRDF(Disney Principled BRDF)。 图迪士尼动画电影《无敌破坏王》(2012) 随后,迪士尼动画工作室的Brent Burley于SIGGRAPH 2012上进行了著名的talk《Physically-based shading at Disney》,正式提出了迪士尼原则的BRDF(Disney Principled BRDF),由于其高度的通用性,将材质复杂的物理属性,用非常直观的少量变量表达了出来(如金属度metallic和粗糙度roughness),在电影业界和游戏业界引起了不小的轰动。从此,基于物理的渲染正式进入大众的视野。 图SIGGRAPH 2012《Physically-based shading at Disney》 在2012年受到Disney Principled BRDF的启发后,主流游戏引擎都开始从传统的渲染工作流转移到基于物理的渲染工作流。 以下是主流游戏引擎转移到基于物理的渲染的时间节点: •【SIGGRAPH 2013】UE4:《Real Shading in Unreal Engine 4》 •【SIGGRAPH 2014】Frostbite(寒霜):《Moving Frostbite to PBR》 •【GDC 2014】Unity:《Physically Based Shading in Unity》 下面,让我们正式开始分析、提炼和总结SIGGRAPH 2012上迪士尼进行的talk《Physically-based shading at Disney》,深入了解其能让基于物理的渲染技术普及于游戏和电影工业的背后原因。 二、迪士尼采用的BRDF可视化方案与工具 在BRDF可视化方面,迪士尼在分享中提出了三个方面的工具与资源,可以总结如下: •MERL 100 BRDF材质库。Matusik等人[Matusik et al.2003]捕获的一组100个各向同性BRDF材质样本库。涵盖了各种材质,包括油漆,木材,金属,织物,石材,橡胶,塑料和其他合成材质。对学术与研究免费授权。 o MERL BRDF主站:http://merl.com/brdf o Database地址:https://people.csail.mit.edu/wojciech/BRDFDatabase/ •BRDF Explorer。迪士尼为分析、比较和新开发BRDF模型而开发的可视化工具。该工具在分析测量材质,比较现有模型,以及开发新模型方面具有无可估量的价值。 o官方主页:https://www.disneyanimation.com/technology/brdf.html o GitHub地址:https://github.com/wdas/brdf •BRDF Image Slice切片。将θh与θd作为横轴和纵轴,对观察到的材质的BRDF进行建模的2D图像切片。 图“MERL 100”BRDF数据库 图BRDF Explorer 图:红色塑料(red-plastic)和镜面红色塑料(specular-red-plastic)的BRDF图像切片以及“切片空间(Slice Space)”示意图。 图MERL 100 BRDF数据库的图像切片(Image Slice) 三、迪士尼对MERL材质数据库的观察结论 在提出Disney Principled BRDF之前,Disney已经做了大量的前置工作,其中,最主要的工作便是对材质数据库的观察与进行理论分析。按照不同项的分类,可以总结为如下6个部分:
下文将对其分别进行相关总结。 3.1 Diffuse项的观察结论
图表现出漫反射颜色变化的材质。上:渲染球体上的点光源响应;下:BRDF图像切片。 图红色塑料,镜面红色塑料和Lambert漫反射的点光源响应
图Lambert,Oren-Nayar和Hanrahan-Krueger漫反射模型的BRDF切片和点光源响应。 3.2 Specular D项的观察结论
图MERL铬金属(chrome)与几个镜面分布的比较。左:镜面波峰的对数比例图);黑色曲线表示MERL铬金属(chrome),红色曲线表示GGX分布(α=0.006),绿色曲线表示Beckmann分布(m=0.013),蓝色曲线表示Blinn Phong(n=12000),其中,绿色曲线和蓝色曲线基本重合。右:chrome、GGX和Beckmann分布的点光源响应。 3.3 Specular F项的观察结论
3.4 Specular G项的观察结论
图几种镜面反射几何模型的反射率图示。所有图中都使用相同的D(GGX/TR)项和F项。左图:光滑表面(α=0.02);右图:粗糙表面(α=0.5)。其中,“No G”模型已去除G和1/cosθl cosθv项的计算。 3.5布料(Fabric)材质的观察结论
图各种布料样本的BRDF图像切片 3.6彩虹色(Iridescence)的观察结论
图3种变色涂料(color-changing-paint)的BRDF图像切片。上图:原始数据;下图:通过每像素缩放1/max(r,g,b)生成的相应色度图像。 四、迪士尼原则的BRDF(Disney Principled BRDF) 4.1 Disney Principled BRDF的理念 在2012年迪士尼原则的BRDF被提出之前,基于物理的渲染都需要大量复杂而不直观的参数,此时PBR的优势,并没有那么明显。 在2012年迪士尼提出,他们的着色模型是艺术导向(Art Directable)的,而不一定要是完全物理正确(physically correct)的,并且对微平面BRDF的各项都进行了严谨的调查,并提出了清晰明确而简单的解决方案。 迪士尼的理念是开发一种“原则性”的易用模型,而不是严格的物理模型。正因为这种艺术导向的易用性,能让美术同学用非常直观的少量参数,以及非常标准化的工作流,就能快速实现涉及大量不同材质的真实感的渲染工作。而这对于传统的着色模型来说,是不可能完成的任务。 迪士尼原则的BRDF(Disney Principled BRDF)核心理念如下:
而从本质上而言,Disney Principled BRDF模型是金属和非金属的混合型模型,最终结果是基于金属度(metallice)在金属BRDF和非金属BRDF之间进行线性插值。 图Disney BRDF模型是金属和非金属基于金属度(metallic)的线性混合模型 正因为这套新的渲染理念统一了金属和非金属的材质表述,可以仅通过少量的参数来涵盖自然界中绝大多数的材质,并可以得到非常逼真的渲染品质。 也正因如此,在PBR的金属/粗糙度工作流中,固有色(baseColor)贴图才会同时包含金属和非金属的材质数据:
4.2 Disney Principled BRDF的参数 以上述理念为基础,迪士尼动画工作室对每个参数的添加进行了把关,最终得到了一个颜色参数(baseColor)和下面描述的十个标量参数:
图Disney Principled BRDF的参数 4.3 Disney Principled BRDF的着色模型 4.3.1核心BRDF模型 核心BRDF模型方面,Disney采用了通用的microfacet Cook-Torrance BRDF着色模型: 其中:
o D为微平面分布函数,主要负责镜面反射波峰(specular peak)的形状。 o F为菲涅尔反射系数(Fresnel reflection coefficient) o G为几何衰减(geometric attenuation)/阴影项(shadowing factor)。 下文将对这些项分别进行说明。 4.3.2漫反射项(Diffuse):Disney Diffuse Disney表示,Lambert漫反射模型在边缘上通常太暗,而通过尝试添加菲涅尔因子以使其在物理上更合理,但会导致其更暗。 所以,根据对Merl 100材质库的观察,Disney开发了一种用于漫反射的新的经验模型,以在光滑表面的漫反射菲涅尔阴影和粗糙表面之间进行平滑过渡。 思路方面,Disney使用了Schlick Fresnel近似,并修改掠射逆反射(grazing retroreflection response)以达到其特定值由粗糙度值确定,而不是简单为0。 Disney Diffuse漫反射模型的公式为: 其中, 以下为上述Disney Diffuse的Shader实现代码:
4.3.3法线分布项(Specular D):GTR 在流行的模型中,GGX拥有最长的尾部。而GGX其实与Blinn(1977)推崇的Trowbridge-Reitz(TR)(1975)分布等同。然而,对于许多材质而言,即便是GGX分布,仍然没有足够长的尾部。 Trowbridge-Reitz(TR)的公式为: 其中:
来自Berry(1923)的分布函数和Trowbridge-Reitz分布具有非常相似的形式,但指数为1而不是2,从而导致了更长的尾部: 通过,Trowbridge-Reitz和Berry的形式的对比,Disney发现其具有相似的形式,只是幂次不同,于是,Disney将Trowbridge-Reitz进行了N次幂的推广,并将其取名为Generalized-Trowbridge-Reitz,GTR: 可以发现,上式中:
以下为各种γ值的GTR分布曲线与θh的关系图示: 图各种γ值的GTR分布曲线与θh的关系 另外,Disney Principled BRDF中使用了两个固定的镜面反射波瓣(specular lobe),且都使用GTR模型,可以总结如下:
o使用γ=2的GTR(即GGX分布) o代表基础底层材质(Base Material)的反射 o可为各项异性(anisotropic)或各项同性(isotropic)的金属或非金属
o使用γ=1的GTR(即Berry分布) o代表基础材质上的清漆层(ClearCoat Layer)的反射 o一般为各项同性(isotropic)的非金属材质,即清漆层(ClearCoat Layer) 以下是γ=1和γ=2时GTR分布的Shader实现代码:
以及各项异性的版本:
4.3.4菲涅尔项(Specular F):Schlick Fresnel 菲涅尔项(Specular F)方面,Disney表示Schlick Fresnel近似已经足够精确,且比完整的菲涅尔方程简单得多;而由于其他因素,Schlick Fresne近似引入的误差明显小于其他因素产生的误差。Schlick Fresnel近似公式如下: 其中:
以下为Schlick Fresnel的Shader实现代码:
一般建议实现一个自定义的Pow5工具函数替换pow(xx,5.0)的调用,以省去pow函数带来的稍昂贵的性能开销。 Pow5函数实现很简单,如下所示:
另外,Disney在SIGGRAPH 2015上对此项进行了修订,提出在介质间相对IOR接近1时,Schlick近似误差较大,这时可以直接用精确的菲涅尔方程: 4.3.5几何项(Specular G):Smith-GGX 几何项(Specular G)方面,对于主镜面波瓣(primary specular lobe),Disney参考了Walter的近似方法,使用Smith GGX导出的G项,并将粗糙度参数进行重映射以减少光泽表面的极端增益,即将α从[0,1]重映射到[0.5,1],α的值为(0.5+roughness/2)^2。从而使几何项的粗糙度变化更加平滑,更便于美术人员的使用。 以下为Smith GGX的几何项的表达式: 另外,对于对清漆层进行处理的次级波瓣(secondary lobe),Disney没有使用Smith G推导,而是直接使用固定粗糙度为0.25的GGX的G项,便可以得到合理且很好的视觉效果。 几何项的Shader实现代码如下:
同样,Disney在SIGGRAPH 2015上也对G项进行了修订,他们基于Heitz的分析[Heitz 2014],淘汰了对于主镜面波瓣的Smith G粗糙度的特殊重映射,采用了Heitz各向异性的G,后文会对这次修订做更深入的探讨。 五、迪士尼原则的分层材质(Disney Principled Layers Material) 迪士尼原则的分层材质(Disney Principled Layers Material)的核心设计原则是,所有参数需允许健壮地插值,以基于纹理Mask在不同材质之间进行线性混合,实现复杂的材质外观。 这样的好处是使所有参数是归一化的并且至少是感知线性的,材质通常以非常直观的方式插值。如下图,所有10个参数都是线性插值的。 图使用Disney Principled Shading Model在闪亮的金属金色和蓝色橡胶之间线性插值 在创作过程中,美术人员通常会从一个材质预设列表中进行选择,然后使用纹理遮罩简单地在其之间进行混合。实时证明,这套方案非常成功的,大大简化了工作流程,提高了材质的一致性,并使着色器计算非常高效。迪士尼使用的对应的分层着色器的UI如下图所示。 图显示材质图层的着色器编辑器的屏幕截图。mask表达式中的变量指的是空间变化的着色器模块,通常是mask纹理贴图。 六、Disney Principled BRDF的实现代码 Disney在2012年Disney Principled BRDF提出时,已经在GitHub上开源了BRDF Explorer,以及Disney Principled BRDF的实现源码,其GitHub链接为: wdas/brdfgithub.com 需要注意的是,这段源码使用的是特有的着色语言,但其实和一般的CG着色语言非常相似。 为了配合与本文内容结合阅读与理解,这里也将这段经典的Shader代码引用到本文中来:
七、迪士尼BSDF(Disney BSDF) PS:由于Disney BSDF天生适合离线渲染器使用,对游戏引擎和实时渲染的参考意义比较有限,加上篇幅原因,所以这里仅对Disney BSDF做一个大致的总结,后续有机会再展开进行进一步分析。 在2013年上映的动画电影《冰雪奇缘》中,迪士尼继续沿用了之前开发的Disney Principled BRDF基于物理的着色系统,但对于折射和次表面散射等效果而言,需要与BRDF分开计算,且间接光照使用点云(point clouds)进行了近似。 而从2014年的《超能陆战队(Big Hero 6)》开始,迪士尼开始采用路径追踪全局光照(path-traced global illumination)进行新电影的制作。所以,原本的BRDF模型已经无法满足需求,于是迪士尼在之前的Disney Principled BRDF的基础上进行了改进,新开发出了Disney BSDF,并于SIGGPRAPH 2015上,通过talk《Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering》正式提出。 图SIGGPRAPH 2015《Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering》 图迪士尼动画电影《超能陆战队(Big Hero 6)》 图基于Disney BSDF的渲染的示例 前文提到,Disney BRDF模型本质上是金属和非金属的混合型模型,对于Disney BSDF,Disney仍然延续了之前的设计理念,采用了混合的方式并结合已有的Disney BRDF模型进行实现。如下图,Disney新增了⼀个参数specTrans(镜面反射透明度)来控制BRDF和BSDF的混合。基于specTrans完成混合后,再使用和Disney BRDF类似的方式,基于metallic再进行一次混合。 即Disney BRDF模型的本质是金属BRDF、非金属BRDF、与Specular BSDF三者的混合型模型。 图Disney BSDF设计思路 参数方面,Disney BSDF按普通表面和薄表面各有不同:
以下是开源三维动画软件Blender实现的Disney BSDF的图示(根据实际使用情况,Blender对Disney BSDF的实现有相应的修改): 图Disney Principled BSDF Blender 除了新增的Specular BSDF模型,Disney还提出了新的次表面散射模型,以及针对薄表面的折射处理,可以总结如下:
图蒙特卡洛散射(Monte Carlo diffusion)模拟,指数拟合与偶极子数据的对比。 图以阴影边界处的蒙特卡洛散射(Monte Carlo diffusion)渲染作为参考,与指数拟合(exponential fit),以及偶极子剖面(dipole diffusion)的对比。指数拟合与蒙特卡罗散射的参考看不出区别,而偶极子模型有明显的模糊,还有青色条带,这两种现象都是美术人员经常会抱怨的。 图使用归一化扩散次表面(normalized diffusion subsurface)模型渲染出的《超能陆战队》人物。 图《超能陆战队》中基于薄表面(Thin-surface)渲染技术渲染出的Baybax 八、本文内容要点总结 正文到这里已经结束。不妨使用本文主要内容提炼出的思维导图作为全文的内容总结: 原图下载地址:QianMo/PBR-White-Paper 系列文章的GitHub Repo 另外,和这个系列文章一起发布的还有一个GitHub仓库【PBR-White-Paper】,作为这个系列文章的合集,后续整理好的PDF也会发布至此Repo中 这里是本文的GitHub版: QianMo/PBR-White-Papergithub.com Reference [1]Burley B,Studios W D A.Physically-based shading at disney[C]//ACM SIGGRAPH.2012,2012:1-7. [2]Burley B.Extending the Disney BRDF to a BSDF with integrated subsurface scattering[J].the Physically Based Shading in Theory and Practice SIGGRAPH Course,2015. [3]Matusik W,Pfister H,Brand M,et al.Efficient isotropic BRDF measurement[J].2003. [4]Heitz E.Understanding the masking-shadowing function in microfacet-based BRDFs[J].Journal of Computer Graphics Techniques,2014,3(2):32-91. [5]题图来自迪士尼电影《无敌破坏王2:大闹互联网》 前文: 基于物理的渲染(PBR)白皮书(一):PBR核心知识体系总结与概览 基于物理的渲染(PBR)白皮书(二) PBR核心理论与渲染光学原理总结 基于物理的渲染(PBR)白皮书(三):迪士尼原则的BRDF与BSDF相关总结 作者:毛星云 专栏地址:https://zhuanlan.zhihu.com/p/6097792 |
|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )
GMT+8, 2024-4-23 16:30 , Processed in 0.073418 second(s), 19 queries .
Powered by Discuz! X3.4 © 2001-2017 Discuz Team.