造光

【插播004】Standard_surface参数详解

2018-06-30  本文已影响0人  卜噪大仙
Standard_surface主菜单

翻看前面教程的时候发现,没有系统的讲过standard_surface的各项属性,只是穿插零散的讲了一些,这里汇总讲解一下,当作一个“复盘”,希望能够帮助大家更好的了解standard_surface着色器。

在新版C4DtoA中,standard_surface是一个非常重要的着色器,很多着色器都要结合它来运用。它相当于一个基层着色器,搞懂了这个,在学习其他着色器时也会更容易理解。

下面主要讲解一下standard_surface各项属性,具体使用方法本篇不涉及,前面【材质】第一篇教程就是讲解的Standard surface,忘记的童鞋可以再看一下:【材质(一)】Standard surface 标准着色器

本篇非常非常长,建以先马再看。可以先快速浏览一遍,有一个基本的印象,遇到具体使用场景时再回来看相应参数设置,这样会更好理解,也更能记忆深刻。

Base

Base参数

Base控制对象的基础表现,类似旧版中Diffuse。

【Weight】
【Color】
【Diffuse Roughness】
【Metalness】
在着色器中使用Metalness贴图
【Metal presets】

Specular

Specular参数

Specular控制对象的镜面反射(高光)。

【Weight】
【Color】
【Roughness】

曲面(surface)的“微观”特征影响光的漫射和反射。这种“微观曲面(micro surface)”细节对镜面反射具有最显著的影响。 下图中可以看到,入射的平行光线照射到粗糙曲面时会返回部分光线,并且返回的光线朝不同方向发散,表面越粗糙,反射光就越发散,表面就越“模糊”:

“微表面(Microsurface)”的表现取决于粗糙度。此表面的Specular Roughness值是很高的

由于Standard surface的节能属性,镜面高光的亮度会自动由其尺寸大小决定。在下面的例子中,所有材料均反射相同数量的光线,但较粗糙的曲面会将光线向多个方向散射。然而,由于粗糙度较低,曲面反射的光线会更集中:

如果要获得曲面丰富的高光变化,需要将贴图连接到Specular Roughness。 这不仅会影响高光的亮度,还会影响它的大小和环境反射的清晰度。


连接了一张“指纹”贴图产生的效果

如果想要查看Specular Roughness连接贴图后产生的效果变化,可以利用Range shader

Specular Roughness[镜面粗糙度]同时影响Specular reflrction[镜面反射]和Refraction[折射]。如果需要,也可以通过Transmission Extra Roughness参数来为折射添加一些额外的粗糙度。当然也可以利用Coat在锐利的折射(比如玻璃材质)上创建一个粗糙的反射层:

【IOR】

使用非常高的 IOR值(产生的效果)与 Metalness颇为相似。如果将 Base Color设置成 Specular Color,Speculr Color设置为黑色,看起来将会和 Metalness产生的效果一模一样。不同的是,在 Specular Color控制边缘色调 (edge tint)的同时,IOR还可以让你得到一个额外的边缘折射。金属菲涅尔的工作原理与新版中 Complex IOR shader一样,参数具有艺术性。

通常,IOR应用于塑料,玻璃或皮肤材质(介电菲涅尔),Metalness应用于金属材质(导电菲涅尔并伴随 Complex IOR)。另一个原因是,在 0~1范围内,Metalness更易于纹理化处理,并且在使用像来自 Substance painter这样的应用程序的材质纹理时,Metalness的效果要好于 IOR。

如果在应该折射的地方看到黑色,则可能没有足够高的Transmission Ray Depth值(可在渲染设置的Ray Depth部分找到)。 默认值是8,这对大多数情况已足够。

IOR中有一些材质预设值(Presets)可以使用:

展开IOR黑色小箭头便可看到
【Anisotropy】
各向异性的高光是由许多小圆盘一起形成的效果

各向异性反射适用于拉丝金属效果,如下面的例子:

贴图连接到 Specular Anisotropic Rotation 可以通过增加细分迭代(Subdivision Iterations)以去除各向异性镜面
【Rotation】

P.S. 关于Texture Filtering

Texture是要贴到三维图形表面的,而三维图形上的pixel中心和texture上的texel中心并不一至(pixel不一定对应texture上的采样中心texel),大小也不一定一致。当texture大于三维图形表面时,导致一个pixel被映射到许多texel上;当texture小于三维图形表面时,许多个象素都映射到同一texel。

当这些情况发生时,texure就会变得模糊或发生错位、产生马赛克。要解决此类问题,必须通过技术平滑texel和pixel之间的对应。这种技术就是Texure Filtering

不同的过滤模式,计算复杂度不一样,会得到不同的效果。过滤模式由简单到复杂包括:Nearest Point Sampling(最近点采样),Bilinear(双线性过滤)、Trilinear(三线性过滤)、Anisotropic Filtering(各向异性过滤)。*

Transmission

Transmission参数

Transmission允许光线穿透表面在表面之下散射,通常应用于玻璃材质或水等透明材质;
四舍五入等于透明度;
单反用到该参数的对象,都需要关闭Opaque(位于Arnold Parameters),否则会出不正确显示;

【Weight】
【Color】
Transmission Color: Red (Depth 1 to 10)

如果使用完全饱和的颜色(例如,RGB(1,0,0)),Arnold解析执行时会允许所有红色光线进入,没有任何绿色和蓝色光线。Transimission Color的值接近 0时,会使介质内部会变得非常密集以阻挡所有光线,即使将 Depth设置为像 0.001这样小的值,可能也不会有太大区别,因为无论如何,解析时的 Depth都很大。

Transmission Color 不建议使用完全饱和的颜色
悄咪咪的说,看的一脸懵逼了似不似????哈哈哈,憋害怕,不懂的话多试试就知道了,还不懂就略过,会用就行,不必深究,这只是一个设计工具,idea才最重要。

注意,除非启用 Thin Walled,否则 Transmission Color不会对 “单面几何(single sided geometry)起作用 ”:

【Depth】

提高 Transmission Depth的值产生的影响如下图所示,注意,这种情况下也可以使用 Transmission Scatter color:


Transparency-Depth

当场景比例太小时,如下图,Transmission Color:Orange,Transmission Depth:1,显示不正确(左图)。降低Transmission Depth,固定为0.01(右图)便会正确显示。为了避免这种情况,建议使用真实世界中的物理尺寸建模

【Scatter】
【Scatter Anisotropy】
【Dispersion Abbe】

P.S. Abbe 阿贝数,用来衡量介质的光线色散程度,材料的折射率越大,色散越厉害,即阿贝数越低。

光的色散现象 对于像钻石之类的宝石,Transmission Dispersion能够产生一种理想状态 diamond(钻石) sapphire(蓝宝石)
【Extra Roughness】
【Transmit AOVs】
Alpha masks

P.S.Alpha通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,其中白表示不透明,黑表示透明,灰表示半透明。

Subsurface

Subserface参数

透光不透明;
在讲皮肤材质的时候已经讲过,另见:插播002

Coat

Coat参数

该参数可以理解为“涂层”;
产生“双重高光”,就像一辆车,有车漆,然后又打了一层蜡;
Coat始终具有反射特性(具有给定的粗糙度),并且假定为电介质。

可用于例如气球反光涂层、气泡、油性皮肤、手机保护膜等等材质:

【Weight】

Coat层模拟电介质(例如塑料,蜡,树脂/珐琅,多种液体),它吸收光线并使所有透射光具有淡色(可能有一些极小的极化效应),而金属则倾向于过滤它们反射的任何颜色,即使在掠射角。 因此,如果你想渲染一个裸金属,Coat权重应该是0。


如下图所示,当Coat(低粗糙度)位于Specular(高粗糙度)之上,由于菲涅尔效应,锐利的Coat高光在中心处消失:


【Color】

下图中,Coat Color为红色,对球体的镜面反射着色:




贴图运用举例:

下面例子中,蓝白棋盘贴图赋予Base Color,Coat Color设置为黄色。结合在一起,黄色位于蓝白棋盘之上;混合之后,原先蓝色棋盘部分呈现绿色,白色部分呈现黄色,Coat Color相当于一个半透明涂层叠加在Base Color之上(类似于PS的正片叠底):

你可以试着用贴图控制Coat Weight,看一下Coat Weight是如何影响底层的Base Color:


黑白棋盘贴图连接到Coat Weight,黄色“ Coat Color”现在显示在白色棋盘区域,蓝色“Base Color”不起作用了

Coat Color也可用于形成一个“纹理层”。 在下面的示例中,图像已连接到Coat Color,并且Coat Roughness已增加。 注意,它看起来并没有受到镜面高光的影响,看起来像是直接“贴”在镜面高光之下。

其他例子
【Roughness】
【IOR】
【Normal】

Coat Normal也适用于,例如增加地面的油性、街道上的雨水等:

当指定一个Coat Normal时,它只影响Coat,而不影响它下面的所有层(diffuse,specular,transmission)。 在右下方的示例中,当凹凸纹理连接到Coat Normal时,岩石材质好像具有了一个透明涂层:

File &Noise连接到Coat Normal Flakes shader 连接到 Coat Normal

Thin Film

Thin Film参数

Thin Film再现了表面薄膜对光的干涉效果(例如油在水面呈现彩虹色)。
一种薄膜效果;
可用于例如多色混合车漆、烧焦的铬、甲壳虫的反光壳等材质,产生一种绚丽的色彩变化效果:

【Thickness】
【IOR】

水的 IOR是1.33,肥皂是1.5,所以肥皂泡的 IOR应该在1.33~1.4之间。

按照下面的Standard surface参数设置,可得到一个肥皂泡
Base: 0
Specular: 1
Specular Color: 1 1 1
Specular Roughness: 0
Specular IOR: 1.0
Transmission: 1
Transmission Color: 1 1 1
Coat: 1
Coat IOR: 1.5
Thin Film: IOR 1.4
Thin Film Thickness: 500 [nm]



如何模拟Thin Flim:



如何将薄膜的IOR值映射到标准曲面:

Emission

该属性使材质自发光(默认白炽灯光)。
虽然发光,但是不产生间接照明。
请尽量使用Arnold Mesh Light标签的方式将对象转为光源,除非极其特殊情况下使用Emission,自发光材质不仅噪点多,渲染慢,而且没有间接照明。或者使用Mesh_light,将对象拖到Mesh里面即可,但是还是使用标签更方便。

【Weight】

在使用Emission时,提高Diffuse Samples能够帮助减少场景中间接照明、黑暗中的噪点:

【Color】

Geometry

Geometry参数

默认情况下,C4D所有对象都是“实心”的,使用geometry可以控制其“实心程度”;

【Thin-walled】

使用Thin-walled能够使“薄”对象(单面)产生理想效果,例如泡泡:

Thin-Walled Translucency

这种效果就像一张薄纸,光线从背后穿过。

像纸张这样的漫射曲面,将 Thin-walled 和 Subsurface 的 Weight 设置为,例如0.5,允许一半光线反射,一半光线投射:

在某些特定情况下,Thin-walled能够很好的对厚度起作用。但是在“厚度”使用Thin-walled时,务必确保Diffuse Ray Depth的值大于1:

【Opacity】
将棋盘贴图连接到Opacity
【Normal】
【Anisotropy tangent】

ID

ID参数

Standard surface支持ID AOVs。 这对于为合成创建蒙版非常有用。

Advanced

Advanced参数
【Caustics】

使用Caustics时,Arnold会使用大量的Diffuse samples以清除噪点,获得干净图像,这将会大幅增加渲染速度,因此要慎重选择是否启用Caustics。

请注意,以下场景中的区域在玻璃内部较暗。 这是因为玻璃内部的照明基本上都是源自焦散。 为玻璃着色器启用Caustics便可以修复此问题:

当Specular Weight值很高时,可能会遇到萤火虫(白色光斑噪点),并且启用Caustics时Specular Roughness较低。 要减少此类噪点,可以通过提高着色器的Specular Roughness或Indirect Specular Blur(全局间接镜面模糊):

渲染眼睛时,启用Caustrics可增加眼睛的真实性(明眸感):


【Internal reflections】
右边球体被玻璃遮挡的部分呈现黑色,就是因为关闭了球体的Internal reflections
【Exit to background】
【Indirect diffuse】
【Indirect specular】



Reference:
  1. "The Law of Reflection". The Physics Classroom Tutorial. Retrieved 2008-03-31.
  2. "Game Engine Design: Texture Mapping" (PDF). uncc.edu. Texture Minification.
  3. Hendrik Lensch (2007-11-29). "Computer Graphics: Texture Filtering & Sampling Theory" (PDF). Max Planck Society. MipMaps. Retrieved 2018-01-14.
  4. Hendrik Lensch (2007-11-29). "Computer Graphics: Texture Filtering & Sampling Theory" (PDF). Max Planck Society. MipMapping II. Retrieved 2018-01-14.
  5. Hendrik Lensch (2007-11-29). "Computer Graphics: Texture Filtering & Sampling Theory" (PDF). Max Planck Society. Anisotropic Filtering. Retrieved 2018-01-14

以上~
Good good study!Day day up!

版权所有,禁止私自转载。
转载请私信。

上一篇 下一篇

猜你喜欢

热点阅读