Arnold(C4DToA)阿诺德渲染教程(112):Arnold Standard Surface 标准表面材质白皮书(Uber Surface Shader 规范)

Arnold(C4DtoA) Mr.R 6个月前 (05-27) 2088次浏览 已收录 9个评论 扫描二维码

Arnold(C4DToA)阿诺德渲染教程(112):Arnold Standard Surface 标准表面材质白皮书(Uber Surface Shader 规范) - R站|学习使我快乐! - 1
作者:Iliyan Georgiev, Jamie Portsmouth, Zap Andersson, Adrien Herubel, Alan King, Shinji Ogaki, Frederic Servant

本文档是Uber表面着色器(Uber Surface Shader)的规范,旨在提供一种能够精确建模实际视觉效果,和动画制作中使用的绝大多数材质的表示方法。
遵循Arnold渲染器中的标准表面着色器(Standard Surface Shader)的设计,其实现过程相对简单,用户界面提供一组具有直观意义和范围参数设置。
本文档随着版本发展而更新。
我们提供了一个OSL实现方法的参考,意图指定足够的细节,以便在别的渲染器上实现,根据目的让效果匹配导一个合理的保真度级别。

一、历史背景与目标

计算鸡图形场景的资产,在不同设施之间的交换,在今天仍然是一个重要的问题,特别是在外观表现方面。不同的渲染器和3D渲染引擎,使用不同的着色系统、着色语言和固定的管道功能,这也是一个积极的可续研究课题。 然鹅,现在业界迫切需要找到一个标准化的材质模型,该模型既涵盖日常工作流程中,最常见的用例,又易于使用。

多年来,随着不同的供应商达成共识,将材料的定义与场景中的光传输模拟分离开来,出现了一些事实上的标准外观定义框架。这些通用框架包括MaterialX、Material Definition Language (MDL)和Open Language (OSL) [Gritz2010],它们允许将材料指定为原始表面反射率模型的组合。但是,仅使用这些框架是不够的,最终用户不应该期望从头开始构建用于日常任务的表面着色器。所以有必要使用一组良好的参数定义,来实现标准着色器的参数化,这些参数可以被调整,且用来表现大多数真实世界(以及假想的)材质。在这项提案中,我们的目标是填补这一空白;我们的参考实现是用OSL [Georgiev2019]编写的。

我们提出的模型是基于Arnold 5标准表面着色器的,其中融合了Anders Langlands的alSurface和Autodesk 3ds Max的物理材质的强大威力。然而alSurface着色器作为行业的实际标准已经有一段时间了,但不再是积极开发的。而3ds Max的物理材料则受到Allegorithmic的PBR着色模型、迪斯尼的原则性着色器、以及多个实时3D引擎的行业趋势的强烈启发,并在3ds Max等所有主要渲染引擎的支持下得到了生产证明。

在这个建议中,我们并没有为每个可能出现的情况提供参数,而是有意地将实践中最有用的参数归结在一起。我们还修复了原始反射模型的组合,以确保用户工作中,尽可能保持在合理的物理范围内。我们的目标是使整个行为变得简单、合乎逻辑、直观和可理解,这样模型就涵盖了大多数日常用例。对于少数它没有覆盖的,你也可以独立开发特定的着色器,或建立一个定制的着色节点。

二、分层混合模型

我们的目标是创建一个表面着色模型,能够忠实地表现各种真实世界的材质。我们研究了金属、玻璃、墙漆等基本材料表面的光散射特性,并通过简单的分析模型得到了精确的表征。还有其他材料,如成品木材、布料或皮肤,由半透明的物质层叠加而成。这种材质的行为更复杂,是这些层介质之间的光散射和通过它们传播的结果,每一个这样的散射介质通常可以用一个分析模型来表示。
此外,许多现实世界中的物体是由几种不同的材质制成的,例如金属和塑料,通过在物体表面上对每种类型的材质,进行纹理处理,可以方便地对这些物体的外观进行开发。虽然材质转换通常来的很突然,但连续混合材质的能力,对于艺术目的和抗锯齿都是有用的。

这两个基本操作是:分层(Layering)和混合(Mixing),它提供了一种语言,来建模具有复杂外观的各种材质。为了使堆叠层具有物理意义,它的底部应该有一个不透明(如金属)或透明(如玻璃或皮肤)块,并在其顶部设置一组电介质板。任何在两层之间的介质上,没有反射的光,都会被向下传输到下层,在相应的介质中可选择吸收。混合操作可以被认为是两种材料的统计混合,即使不是所有的组合都有物理意义。作为一个线性插值,该操作自动保持能量守恒。

我们的着色器模型是由10个组件组成的材质,这些组件按层次结构分层和混合,如下所示。单个组件的属性可以在整个表面上发生变化。

Arnold(C4DToA)阿诺德渲染教程(112):Arnold Standard Surface 标准表面材质白皮书(Uber Surface Shader 规范) - R站|学习使我快乐! - 2

上图是着色器模拟的理想材质模型的示意图。构件水平叠加表示统计混合,垂直叠加表示分层。用星号标记的组件是可选的,如第2.2节所述。

闭包混合表示法

给定一个着色点和一个视图方向,我们着色器的评估结果是一个双向散射分布函数(BSDF),它描述了在该点和方向上表面的光散射特性(加上一个自发光组件和一个次表面散射分布)。这个合成的BSDF表示由于在材质的整个结构中传播和散射,在最上层界面处的聚集光散射行为。

准确地模拟层状材质内部的光传播通常是困难的,而且计算量大,仍然是一个活跃的研究课题。我们的着色器采用了一种常见的实用方法,即生成的BSDF可以表示为“原子”构建块BSDFs的简单混合物(即线性组合)——上图中的每个组件都有一个BSDFs。我们试图通过调整原子BSDFs的属性和线性组合权重,来模拟分层最重要的物理效果——颜色着色、反射/透射模糊和依赖角度的层透明度。

每个原子BSDF,通常非正式地称为“波瓣(lobe)”,要么是反射函数,要么是透射分布函数,即BRDF或BTDF(自发光和次表面散射除外)。在我们的实现中,这些BSDFs由闭包表示。闭包是一个“黑盒”对象,它包含用于评估和采样底层BSDF的特定于渲染器的例程。它由渲染程序定义和使用,但着色器用一组基本数据类型的参数(如浮点数、向量和颜色)进行实例化。

我们的着色器返回一个闭包对象列表,每个闭包对象都有一个关联的(颜色)权重。闭包的实例化参数和权重,可以由用户通过一组着色器参数来控制,以模拟各种物理上可信的材料。加权闭包的和完全描述了给定表面点的光发射和散射特性。闭包列表(如表1所示)最终被传递给渲染器,用于集成围绕阴影点的光传输。

Component(组件) Closure(闭包) Description
Transparency(透明度) transparency 简单的传递(Pass-through)(可以看作是delta BTDF)
Coating(涂层) specular_brdf 电介质微表面(dielectric microfacet) BRDF (GGX)
Emission(自发光) emission 漫射自发光(diffuse emission)
Metal(金属) metal_brdf 导体微表面(conductor microfacet) BRDF (GGX)
Specular reflection(镜面反射) specular_brdf 电介质微表面(dielectric microfacet) BRDF (GGX)
Specular transmission*(镜面透射) specular_btdf 电介质微表面(dielectric microfacet) BTDF (GGX)
Sheen*(光泽) sheen_brdf 复古反射电介质微表面(retro-reflective dielectric microfacet) BRDF
Subsurface scattering*(次表面散射) subsurface 次表面散射(subsurface scattering) (例如:扩散diffusion、随机游走random-walk)
Diffuse transmission*(漫射透射) diffuse_btdf 漫射微表面(diffuse microfacet) BTDF (Oren-Nayar)
Diffuse reflection(漫射反射) diffuse_brdf 漫射微表面(diffuse microfacet) BRDF (Oren-Nayar)

上表示上图中所示的材料模型的每个组件的闭包列表。用星号标记的闭包是可选的,如第2.2节所述。

在近似(Approximately)模拟层之间光传播效应的同时,采用满足施工节能要求的公式计算了封层权值。可以说,这种最显著的影响是高光(介质)层的方向变化透明度,这是由它们的菲涅耳控制的半球方向反射率(又称方向反照率(directional albedo))造成的。我们将相应的BRDF闭包与基于其反射率的底层闭包进行权衡,并且我们的实现假设反射率(BRDF)函数可用来计算它。当反射率积分的解析表达式不能用于闭包时,可以通过蒙特卡罗估计来近似。

着色器的闭包权重计算逻辑,最容易被可视化为一棵树,其中每个叶子节点都是一个闭包,每个内部节点都是它的两个子节点的线性组合,在边缘指定权值。我们在下图中演示了这个树结构。每个闭包的最终权值是其对应的叶节点到根节点之间路径上的边权值的乘积。在下面的第3节中,我们将更详细地描述各个闭包和边缘权重。

Arnold(C4DToA)阿诺德渲染教程(112):Arnold Standard Surface 标准表面材质白皮书(Uber Surface Shader 规范) - R站|学习使我快乐! - 3

图2:我们的着色器返回根闭包standard_surface,它是作为树中的叶子节点显示的“原子(atomic)”闭包的加权和。每个闭包的权值是从对应的叶子到根节点的路径上的边权值的乘积。边缘权重由着色器级参数参数化,粗体显示。

2.2 兼容模式

我们的模型的目标是相对简单的生产级应用程序,若处理实时引擎,但其闭包的数量和参数可能太多。对于这样的应用程序,我们定义了一个“预览”级别的兼容,在典型的情况下可以将着色器简化到一个合理的可视化的相似性级别。简化相当于将组合权重参数传输、光泽和subsurface归零,有效地消除了specular_btdf、sheen_brdf、subsurface和diffuse_btdf闭包。在这种兼容模式下,我们还忽略了其他闭包中的某些参数,这些参数在下一节的参数表中用星号标记。

三、闭包

在本节中,我们将描述着色器使用的各个闭包(见表1)、它们的参数、权重。有些参数在闭包之间重用,因此在下面的小节中会多次出现。我们用粗体表示着色层参数,例如不透明度。

 

3.1 透明度

透明闭包没有实例化参数,使表面在着色点完全透明,即输入光线没有偏转和着色。
效果如下图所示。不透明度着色器参数控制所有其他闭包的相对权重(通过线性“Alpha”混合),因此透明度权重为1-不透明度。
透明度和封闭涂层的组合通过以下公式是顶层混合物,最终得到标准表面封闭组合:

本段内容需要支付 28金币 查看

您未登录,请 点击登录 或者立即注册

4.3 层模型 Layering model

我们的分层模式确保结构上节能,并在可能的情况下能量守恒。然而,作为一个相对简单的模型,仅仅是闭包的线性组合,并根据近似反射率reflectance(…)函数调整权值,它并不是我们所描述的层间光传输的物理精确模拟。

最近出现了许多关于分层介质中,全光传输的更精确的处理方法[Jakob2014] [Belcour2018] [Zeltner2018]。这些模型包含了通过整个层堆栈的各种反射和传输模式的影响,从而生成最终的BSDF(或一般的BSSRDF),这不是每层BSDFs的简单线性组合。

在未来,我们将研究如何过渡到更精确的模型。然而,目前似乎所有可用的模型计算起来都更加昂贵,实现起来也更加复杂。

我们尝试至少在我们的模型中包含一些最重要的影响,这些影响是由手工的层间交互产生的。例如,我们允许涂层的粗糙度影响(一些)底层的粗糙度。

4.4 表面方向 Surface orientation

在透射的情况下,光可以从正常的表面上方或表面下方入射。透射层对此很敏感,并确保光线通过介质正确折射。然而,其他层是面向w.r.t.法向的,所以当物体从外部和内部被击中时,散射行为是相同的。这也是一种非物理近似,在实践中非常有用,因为它简化了逻辑,而没有引入明显的人工痕迹视觉。

4.5 用户友好性和灵活性 User-friendliness vs. flexibility

我们的模型目前有固定的层数,其中只包括两个镜面层,而其他一些流行的模型(例如皮克斯的PxrSurface [Hery2017])允许更多的可配置层。在生产环境中,这种将模型对于自由度,在某些情况下是有用的。

然而,正如前面提到的,我们这里的一般原则是,最好提供一组具有直观意义、相对最少、对用户友好的参数,并使用一种组合方案来确保任何给定的参数集都在物理合理性的范围内。在模型不能产生所需结果的边缘情况下,可以创建自定义着色器图像。

五、结论 Conclusion

在本文档中,我们描述了一个标准的、通用的表面着色器的建议,该着色器可用于各种生产渲染环境。该模型基于Arnold渲染器中标准表面着色器的当前实现。我们详细描述了组成模型的十个闭包,以及如何将它们组合起来生成最终着色器。

我们希望这个建议,可以作为一个被广泛采用的标准表面着色器实现的有用基础。

六、鸣谢

作者要感谢Mike Farnsworth、Lee Griggs、Arvid Schneider、Milos Hasan、Michael Nickelsky、Henrik Edstrom、Karl Schmidt、Niklas Harrysson、Marcel Reinhard和Davide Pesare提供了有用的录入反馈

七、参考书目

[Andersson2016] Zap Andersson. 2016. Physical Material (v1.01). Autodesk white paper.
[Belcour2017] Laurent Belcour and Pascal Barla. 2017. A Practical Extension to Microfacet Theory for the Modeling of Varying Iridescence. ACM Transactions on Graphics, 36, 4.
[Belcour2018] Laurent Belcour. 2018. Efficient Rendering of Layered Materials using an Atomic Decomposition with Statistical Operators. ACM Transactions on Graphics, 37, 4.
[Burley2012] Brent Burley. 2016. Physically-based Shading at Disney. In ACM SIGGRAPH 2012 Courses: Practical Physically Based Shading in Film and Game Production.
[McDermott2018] Wes McDermott. 2018. The PBR Guide. Allegorithmic. https://www.allegorithmic.com/pbr-guide.
[Estevez2017] Alejandro Conty Estevez and Christopher Kulla. 2017. Production Friendly Microfacet Sheen BRDF. Sony Pictures Imageworks technical report.
[Georgiev2019] Iliyan Georgiev, Jamie Portsmouth, Zap Andersson, Adrien Herubel, Alan King, Shinji Ogaki, Frederic Servant. 2019. A Surface Standard: OSL reference implementation. https://github.com/Autodesk/standard-surface/blob/master/reference/standard_surface.osl.
[Gritz2010] Larry Gritz, Clifford Stein, Chris Kulla, and Alejandro Conty. 2010. Open Shading Language. In ACM SIGGRAPH 2010 Talks.
[Gulbrandsen2014] Ole Gulbrandsen. 2014. Artist Friendly Metallic Fresnel. Journal of Computer Graphics Techniques, 3, 4.
[Hery2017] Christophe Hery, Ryusuke Villemin, Junyi Ling. 2017. Pixar’s Foundation for Materials. Pixar technical report.
[Jakob2014] Wenzel Jakob, Eugene d’Eon, Otto Jakob, and Steve Marschner. 2014. A Comprehensive Framework for Rendering Layered Materials. ACM Transactions on Graphics, 33, 4.
[Langlands2014] Anders Langlands. 2014. Physically Based Shader Design in Arnold. In ACM SIGGRAPH 2014 Talks.
[Kulla2017] Christopher Kulla and Alejandro Conty Estevez. 2017. Revisiting Physically Based Shading at Imageworks. In ACM SIGGRAPH 2017 Courses: Physically Based Shading in Theory and Practice.
[Zeltner2018] Tizian Zeltner and Wenzel Jakob. 2018. The Layer Laboratory: A Calculus for Additive and Subtractive Composition of Anisotropic Surface Reflectance. ACM Transactions on Graphics, 37, 4.

注释:为了方便起见,我们闭包列表允许的不仅仅是BSDF,而且还包括一个发射分布函数(EDF)和一个双向次表面散射分布函数(BSSRDF)。渲染器理解为识别这些,并适当地处理它们。

相关推荐:

【R站出品】中文字幕 《Arnold5阿诺德渲染器终极指南》The Ultimate Introduction to Arnold 5 for Cinema 4D 视频教程 强烈推荐!!!

【R站翻译】中文字幕 C4D《Aronld(C4DtoA)阿诺德真实材质渲染宝典》视频教程(含工程) 强烈推荐


QQ㊀群: 240424174;QQ㊁群: 749250816;QQ㊂群: 542382043;
㊄群: 860166303;⑥群: 738134262 ⑦群 750397184
常见问题:1、文件解压请使用Winrar5.5版本以上解压;
2、视频播放有声音无画面,请了解下PotPlayer播放器;
3、回复仍不可见隐藏内容,请使用邮箱注册登录;
R大技术站 , 版权所有,如未注明 , 均为原创,如需转载请注明来源!
喜欢 (6)
[itdiy@qq.com]
分享 (0)
发表我的评论
取消评论

表情 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
(9)个小伙伴在吐槽
  1. 66666666666666
    dajunli109s2019-10-16 01:40 回复 Windows 10 | Chrome 76.0.3809.100
  2. 学习一下!!!
    mengfei862019-09-11 13:12 回复 Windows 10 | Chrome 76.0.3809.132
  3. Arnold现在高产如母猪啊,各种版本不断更新,想想隔壁的两三年才更一次
    3llie2019-09-11 11:43 回复 Mac OS X | Chrome 76.0.3809.132
  4. 看看
    jutz2019-07-05 13:45 回复 Windows 10 | Chrome 75.0.3770.100
  5. 看看先这好东西
    海贼2019-06-15 09:46 回复 Windows 10 | Chrome 63.0.3239.132
  6. 看看
    蓬雪煮茶2019-06-05 12:32 回复 Windows 7 | Chrome 70.0.3538.25
  7. 签到成功!签到时间:2019-05-30 22:14:15,每日打卡,生活更精彩哦~
    love my灬life2019-05-30 22:14 回复 Windows 10 | Chrome 70.0.3538.25
  8. 看看先这好东西
    我永远喜欢慧慧2019-05-30 22:13 回复 Windows 7 | Chrome 45.0.2454.101
  9. 66
    feeling2019-05-30 22:11 回复 Windows 10 | Chrome 68.0.3440.106