Arnold for Maya基础

一、介绍Arnold

Arnold是新一代的高级渲染器,从Maya 2017开始取代了Mental Ray成为Maya内置的高级渲染器。Arnold号称“基于物理”,在使用上比之前的Mental Ray要简单很多,精度要求不高的话,渲染速度也比较快。按照官方的说法,它其实是在一定程度上牺牲了速度来换取易用性,但新手其实用什么渲染器都很慢,所以也就感觉不出什么“慢”来。

二、Arnold的渲染原理

Arnold渲染器是完全基于光线追踪的

这张图解释得非常清楚:

对于最终渲染画面的每一个像素点,都由摄影机向场景发出N条射线,来获得场景中对应物体的光照信息。然后这每条射线又根据场景模型的材质特性而散射出n条次级射线,来获取相关材质特性所带来的次级光照信息,最终这些所有的信息返回给渲染器,计算出各种render pass,并合成成最终图像结果(Beauty)。

2.1 采样(Sampling)

2.1.1 采样(Sampling)

决定需要计算多少根射线及其返回的光照信息的,就是所谓的“采样值”。大部分的采样参数都在渲染设置的Sampling一栏中进行调节:

采样的精度决定图像照明效果的精度。简单来说,采样不够就会有“噪点”,要想消除噪点,就必须提高采样值(也就是有更多的射线来进行探测采样)。当然,采样值越高,渲染时间就会越长。

在渲染设置Sampling栏的这些参数中,Camera (AA)决定每一个像素点将对应多少根主射线,Camera (AA) = 3相当于从每一个像素点会发出9条主射线(3×3)。

后面的5个参数(DiffuseSpecularTransmissionSSSVolume Indirect)分别决定漫反射、高光、透明、次表面散射及体积(雾)这五种不同的材质表现所对应每一根主射线的次级射线数量,因此,在Camera (AA) = 3时,Diffuse = 2相当于一共有36条射线来检测这个点的间接漫反射光照效果(3×3×2×2)。

要注意的是,这5个次级取样参数所对应的射线,探测的是对应的间接(Indirect)照明效果,而实际的最终照明效果其实是直接(Direct)照明效果和间接(Indirect)照明效果之和。比如一个漫反射照明效果实际上是光源对材质表面的直接光照加上环境对材质表面的间接光照共同作用的结果,修改Diffuse采样值并不会对直接光照的那部分产生任何影响。

由于最终的射线总数与这些参数的关系是“指数式”的,稍有不慎就会产生极大数量的探测光线,拖慢渲染时间却不一定能改善渲染质量。因此我们要充分了解各个参数的作用范围,准确分析图像噪点的真实来源,并合理提高这些参数值,以达到最优化的渲染结果。

注意:我们通常都不会完全依靠Camera (AA)来提升图像质量,因为它对渲染时间的影响非常大。

2.1.2 灯光的采样参数

初学者很容易忽视的一个地方是Arnold的灯光也都有自己的采样参数。在Arnold中,灯光产生柔和阴影的原理也是基于光线追踪的,灯光的Sample值越大,其用于计算阴影的射线就越多,阴影的噪点就越少。

简单来说,面积越大的光源需要越大的灯光Sample值,越模糊的阴影也需要越大的灯光Sample值

Maya自带灯光的Sample采样在其Arnold属性栏中可以设置。

初学者常常将阴影噪点误认为是漫反射噪点,或试图通过提高渲染设置中的Sample值来消除其实是灯光阴影所产生噪点,而且他们会发现,提高Camera (AA)值似乎可以改善这些噪点区域,其实这是错误的。

提高Camera (AA)确实能够改善阴影噪点,但这是因为灯光Sample依然是次级属性,Camera (AA) = 3且Sample = 4相当于3×3×4×4 = 144根,提高Camera (AA)值当然可以消除一部分阴影噪点,但比起直接提高灯光Sample来,就浪费太多了。

2.2 采样深度(Ray Depth)

Sample值控制射线的数量,Ray Depth值控制各类射线在场景物体间反弹的次数。Ray Depth也在Render Setting里设置。

漫反射(Diffuse)Ray Depth值越大,间接照明光线反弹次数越多,全局光照的细节越丰富,场景也会稍亮一些。1代表光线仅做一次反弹,对于高度依赖间接照明的环境明显是不够的,但一般超过3就基本看不到效果了,0代表无间接照明。

高光(Specular)Ray Depth值越大,反射次数越多,场景反射就越正确。1代表在反射中仅能看到漫反射(例如透过A镜子能看见A镜子反射的另一面B镜子,但看不见这面B镜子反射的图像),2代表可以看到反射中的反射,0代表不产生反射。

折射(transmission)Ray Depth值越大,光线折射穿透层数越多。例如要准确表现一个玻璃杯的折射效果,Transmission Ray Depth至少需要4(2层玻璃共4个表面),2个玻璃杯就是8,以此类推。为0不产生光线折射效果。

Total值,控制一根射线所能进行上面三种反弹&穿透的总次数,要透过玻璃杯看到背面墙壁所受到到间接光照,则需要至少1 + 4 = 5的Total值。

穿透深度(Transparency Depth)Ray Depth值针对的是半透明(无折射效果)可见层数。做此限定主要是防止过多的透明贴图拖慢场景渲染时间(比如用透明贴图做树叶纹理,光线穿过树叶照射到地面的过程中可能就会透过无数片叶子,计算无数次“透明”)。为0没有半透明/透明效果。

注意:Ray Depth只与光照穿透深度有关,与图像质量无关,提高Ray Depth数值并不能减少噪点!

三、Arnold中使用灯光

灯光是物理渲染的“必备条件”,Arnold支持部分Maya灯光,同时也自带内置灯光。

3.1 Arnold内置灯光

3.1.1 灯光通用属性

很多属性是所有类型的灯光都通用的:

  • 颜色(Color):灯光的颜色。勾选Use Color Temperature选项可以用“色温”属性来控制灯光颜色。
  • 亮度(Intensity):灯光的亮度。
  • 曝光度(Exposure):灯光的曝光度。本质上,曝光度和亮度没什么区别,0曝光度等于直接使用亮度值作为亮度,灯光最终亮度=颜色(Color)x亮度(Intensity)x2曝光度(Exposure)次方,例如1x1x2^0=1
  • 灯光采样度(Samples):这个值影响灯光的阴影噪点,增加灯光采样可以有效减少模糊阴影所产生的噪点。
  • 标准化(Normalize):勾选这个选项,灯光的大小不会影响灯光的最终亮度
  • 是否产生阴影(Cast Shadows)
    – 阴影透明度(Shadow Density)
    – 阴影颜色(Shadow Color)
  • 是否在体积雾中产生阴影(Cast Volumetirc Shadows)
    – 体积雾阴影采样度(Volume Samples)

Visibility栏中的参数决定了该灯光是否会影响各种材质表现。即:

  • 这个灯是否在相机中可见(Camera)?
  • 这个灯是否用于产生直接光照(Diffuse)?
  • 这个灯是否用于产生反射和高光(Specular)?
  • 这个灯是否用于产生刺激表面散射效果(SSS)?
  • 这个灯是否用于产生间接光照(Indirect)?
  • 这个灯是否用于产生漫反射(Diffuse)?
  • 这个灯是否用于产生漫反射(Diffuse)?
  • 这个灯是否用于产生漫反射(Diffuse)?
  • 这个灯是否用于照亮体积雾和体积光(Volume)?

特定属性

3.1.2 Area Light(面积光)

  • 灯光形状(Light Shape):面积光的形状。Area Light有三种形态:方型、圆柱型、碟型,本质上是一样的,只是在形状上有所区别。
  • 分散度(Spread):如果我们将面积光理解成在一个表面密集排布的大量聚光灯,那么Spread值就决定了这些聚光灯的圆锥张角大小,0值代表这些聚光灯没有张角,面积光发出的光线都是平行的,1代表这些聚光灯的张角都是180°,聚光灯的灯光非常“柔和”。
  • 灯光分辨率(Resolution):这个值只在我们用贴图来控制灯光颜色属性时才起效,它决定这张贴图以怎样的分辨率来影响面积光的亮度和颜色分布。通常这个值不应该超过贴图本身的分辨率大小。

不同形态的面积光的具体参数都有所不同,这里只介绍一些比较重要的

3.1.3 Skydome Light(天穹光)

Skydome Light(天穹光),一个无限大的圆球以模拟天空,可以用单一颜色或者一张全景图片(最好是高动态HDR图片)作为其光照来源。
  • 天光分辨率(Resolution):这个值只在我们用贴图来控制灯光颜色属性时才起效,它决定这张贴图以怎样的分辨率来影响面积光的亮度和颜色分布。通常这个值不应该超过贴图本身的分辨率大小。
  • 天光贴图类型(Format):匹配天光贴图的全景类型。默认是latlong,代表最常见的那种“展开地球”式全景贴图类型
  • 门户模式(Portal Mode):决定该天穹光如何被灯光门户(Light Portals)所影响。默认的interior_only代表仅将天穹光传递到室内,而室内光照不会被传递出来影响室外物体,interior_exterior代表室内光照也会被灯光门户传递出来,off则代表完全不使用灯光门户。

3.1.4 Mesh Light(物体灯)

Mesh Light(物体灯)是把一个选定的模型转换成灯光,其效果类似于直接给该模型添加自发光材质,但本质是灯光。
  • 灯光是否可见(Light Visible):转换该灯光的原物体模型是否可见

3.1.5 Photometric Light(光度学灯光)

Photometric Light(光度学灯光)是一种特殊的灯光类型,他可以通过读取.ies文件来得到特定型号照明设备的光照形状,用来模拟该型号照明设备的真实光照表现。

.ies文件只能通过灯具生产厂家来提供。当然,我们也可以下载一些常见的.ies文件,来让我们的灯光更加真实一些,比如一些各式各类的壁灯或射灯之类。

3.1.6 Light Portal(灯光门户)

Light Portal(灯光门户)是专门用来用来将天穹光传递到室内的“门户”,单独使用没有效果,但可以非常有效地改善天穹光的间接照明质量,减少噪点,属于渲染室内场景是“必用”的一种“灯”。

3.1.7 Physical Sky(物理天穹光)

Physical Sky(物理天空)本质上就是一个天穹光,只不过在天穹光的颜色通道上链接了一个aiPhysicalSky节点用以替代HDR全景天空贴图。这个aiPhysicalSky可以用程序化的方式来模拟一个简单天空和太阳。

其具体参数如下:

  • Turbidity:模拟大气的浑浊程度。值越高,天空颜色就越“灰暗”,阳光在大气中的弥散度就越大;值越低,天空颜色就越“湛蓝”,阳光就仅呈现出一个很亮的“圆形”。
  • Ground Albedo:模拟地表向天空的漫反射。值越高,地平线处的颜色就越白越亮。
  • Elevation:模拟阳光的高度角,同时控制天光的色温及亮度。0代表阳光处于地平线(黄昏效果),1代表阳光处于天空正上方(正午效果)
  • Azimuth:用于水平旋转整个天空球,以匹配我们的场景。
  • Intensity:整体天光的亮度。
  • Sky Tint:用于修改天空颜色或给天空添加一个文件贴图。
  • Sun Tint:用于修改太阳的颜色(亮度),当然也可以添加一张贴图来代替太阳。
  • Sun Size:用于调整太阳在天空中的大小。
  • Enable Sun:是否使用太阳。如果不勾选,不仅天空中看不到“太阳”,该Physical Sky也不会有直接光照效
“Enable Sun”和“Disable Sun”的区别

3.2 Maya灯光

Arnold可以使用部分Maya灯光,但需要在“Arnold”栏下对灯光属性进行调节。可以看到,其中大部分的参数都是和Arnold灯光一致的,只有少部分特定属性有所区别。

注意:Arnold不支持Maya自带的体积光环境光

四、Arnold材质

4.1 Arnold万能材质球aiStandardSurface

aiStandardSurface

4.1.1 Base

  • Weight:漫反射效果占比
  • Color:漫反射颜色
  • Diffuse Roughness:漫反射表面粗糙度。粗糙的漫反射表面亮度更低,光照更平均
  • Metalness:金属质感表现程度。增加这个值会让漫反射的颜色更“浓烈”地展现自身本色,通常金属材质都需要提高这个属性值(注:该值不受Base权重影响,且当值为最大1时“漫反射粗糙度”与“IOR”值不可用

补充IPR金属渲染:

基本概念:F0,即法线0度角其反射率最低(F1-F89区域因菲涅尔效应而规律渐变最后至F90反射率最高,且该值与IOR正相关)

第一种金属:M值为“1”时,物体没有了基本色,基本颜色Base color值代表F0-F89区域反射颜色,原反射颜色代表F90区域反射颜色

M值为“0”时,物体表面迎光面呈现基本颜色被反射颜色过滤的颜色(例如:反射颜色黑,过滤黑,等于没过滤,迎光面为物体基本色;反射颜色白,过滤白,基本色失效,迎光面表现为镜子一样),高光区与背光区正常呈现反射颜色。总结:这里可以理解为迎光面颜色被“反射”走了一部分。

第二种金属:因为现实中IOR必大于等于1,但设置选项当IOR<1时,IOR值表现为F0-F90区域间反射率为0区域,即不发生反射展示为基本色的范围,所以当IOR为0时物体全范围反射,及表现为金属

设置参数
模型是一个球体

可见圆球白色(基本色)范围的圆半径刚好等于大圆的1/2,即IOR值=0.5。同时迎光面白色(基本色)“过滤”了绿色(反射颜色)后的红色高光和背光面可见为绿色(反射颜色)

4.1.2 Specular

  • Weight:高光效果占比,或者可以理解成材质的反射强度
  • Color:反射或高光的颜色
  • Roughness:反射粗糙度。越粗糙的表面上反射的图像越模糊
  • IOR:折射率,会影响表面的“菲涅尔现象”。真实世界的材质的折射率是固定的,比如水是1.3左右,玻璃是1.5左右,钻石是2.2左右。折射率同样会影响Transmission(折射)效果(值小于1时,实际折射率为该值倒数)
  • Anisotropy:高光的各向异性程度。(这个值越高,高光和反射就越会被拉成一个长条形,类似抛光金属面的高光反应)
  • Rotation:调节产生各向异性拉丝纹理方向,从而改变所产生的高光拉长效果的旋转方向

4.1.3 Transmission

  • IOR:折射率这个属性虽然不在Transmission栏中,但却是影响光线折射的最根本的属性。
  • Roughness:反射粗糙度这个属性同样会影响折射的效果,比如我们常见的“毛玻璃”效果就是玻璃表面的粗糙造成的
  • Weight:折射效果占比,或者可以理解成材质的透明程度。全透明的材质是不会有漫反射效果的
  • Color:折射颜色,比如一些有色玻璃的颜色就可以在这里设置
  • Depth:这个值控制透光光线深度。(Depth值越大,材质本色就需要更“厚”的区域才能体现出来。比如一个玻璃杯,我们在薄薄的杯壁上通常看不到玻璃本身的绿色,但在厚厚的杯底却能看到玻璃的本色,这就是较大的Depth值使得薄壁不足以给折射光线染上材质本色的结果)
  • Scatter:散射,这个值所设置的颜色可以让半透明材质呈现一些内部物质散射的浑浊效果,用以模拟蜂蜜、巧克力、冰等既有半透明效果又有次级表面散射效果的材质。(模型越薄的区域越呈现出半透明效果,而越厚的区域则越呈现出浑浊不透明效果)
  • Scatter Anisotropy:这个值让次级表面散射呈现各向异性的特征。简单地说,这个值越大,材质越“吸光”,这个值越大,材质越“透光”。
  • Dispersion Abbe:这个值让不同波长的光线被折射的程度不一样,简单的说,就是可以让白光折射出七彩色来,比如钻石的折射效果
  • Extra Roughness:这个值调节的是物体内部的粗糙度,虽然同样能够产生模糊的反射效果,但还是与物体表面的粗糙度有所区别的

Dispersion Abbe = 0 和 Dispersion Abbe = 10 的区别

4.1.4 SubSurface

  • Weight:次级表面散射效果占比。值为1时Transmission、Base相关属性不起作用
  • SubSurface Color:次级表面散射的颜色,物质内部本身颜色
  • Radius:次级表面散射的强度(半径),可以理解成光线可以从多“深”的地方散射出来被摄影机看到。表现为“薄”区域透光后的颜色。这个值用颜色来调节的原因是可以红绿蓝三个通道的颜色做不同强度的散射,注意的是该颜色需与SubSurface Color对应,例如蓝色Radius对于红色SubSurface Color无效
  • Scale:场景缩放比例,这个值越大,场景越大,表现为物体越小越“薄”(Scale越大,物体越“通透”。真实世界物体的次级表面散射效果不仅与其材质有关,还与其大小有关,一块超大的翡翠和小小的翡翠挂件所体现出来的SSS效果当然是很不一样的。使用Scale值可以让我们的模型更匹配其真实比例大小)
  • Type:次级表面散射的不同计算方法。diffusion方式比较老,randomwalk方式是比较新的算法,效果更好,速度更慢。
  • Anisotropy:这个值让次级表面散射呈现各向异性的特征。

同样的散射颜色和散射半径下,Scale值为1和Scale值为10所产生的的不同SSS效果比较

4.1.5 Coat

这种材质效果模拟一层几乎没有厚度的“透明涂层”,相当于为材质表面多添加一层反光。可以在一些特殊用途中使用Coat效果,比如皮肤上有水的效果,下雨时各种材质表面的“湿”的效果等等。

  • Weight:这层“透明贴膜”的强度占比
  • Color:反光颜色,通常保持白色就好
  • Roughness:粗糙度。可以理解为“磨砂膜”。通常保持0就好
  • IOR:这层“透明贴膜”自身的折射率
  • Normal:可以用法线或凸凹贴图给这层“透明贴膜”模拟出表面高低不平的效果,比如雨水在湿的材质表面所呈现的高低不平

4.1.6 Emission

  • Weight:自发光效果占比
  • Color:自发光颜色。可以设置亮度大于1的颜色让物体变得非常“亮”

4.1.7 Thin Film

这种材质效果模拟一层“薄膜”,可以被应用在其他表面材质类型之上。Thin Film与Coat不同,它有非常复杂的光学效果,不同厚度的薄膜可以呈现出非常不同的色彩

  • Thickness:“薄膜”的厚度(单位为“纳米”)
  • IOR:这层“薄膜”的折射率

Thickness分别为50/100/150/300/500时的Thin Film材质效果

更多实例图片可以参考官方文档页面:https://docs.arnoldrenderer.com/display/A5AFMUG/Thin+Film

真实世界的“薄膜”的厚度其实是不均匀的,我们可以用aiNoise节点配合Remap节点制造一个厚度不均匀的Thin Film效果。

4.1.8 Geometry

  • Thin Walled:勾选这个选项会造成一个“很薄的半透光表面”效果,可以用来模拟树叶或者纸张这类物体
  • Opacity:物体整体的不透明度。这个选项不会像Transmission一样折射光线,单纯只是改变物体的不透明程度
  • Bump Mapping:用来贴凸凹或法线贴图
  • Anisotropy Tangent:各向异性法线方向。通常保持0,0,0。

4.1.9 Matte

  • Enable Matte:是否将物体渲染成遮罩
  • Matte Color:遮罩颜色
  • Matte Opacity:遮罩透明度
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
留言 抢沙发
头像
来都来了,不说两句?
提交
头像

昵称

取消
昵称表情代码图片

    请登录后查看评论内容