Octane 渲染器学习笔记之五:材质 - 2
82019.02.14 19:34:54 字数 3,729 阅读 11,811
解惑和答疑
【前言】
我用心写的文章,没有多少人读呢?需要给自己做点广告了:网友们,不要犹豫,如果你想深入学习 OC,目前在网上,你找不到如下详细的学习笔记了。哈哈。老话说:“酒香……….” 它也怕巷子深呢?现在的信息社会,信息也太多了,多得你不知道哪个更有用 。
不扯了,看不看是你的事,写好文章是我的事。
上一篇研究了 OC 渲染器的 DIFFUSE 材质,这个材质是基础,也很简单,由于不涉及反射折射计算,相对来说渲染速度较快。这篇我们继续研究 OC 的另外两个重要材质:Glossy 和 Specular。选择 Glossy 和 Specular 材质时,会出现一些新的通道,我们将只解释新参数,凡是与 DIFFUSE 材质一样的通道和参数,就不再研究了。
第二部分 GLOSSY MATERIAL 光泽材质:
已付费,可查看以下内容
GLOSSY 有光泽的材料用来制造具有反射特性的材质,用于模拟金属、塑料等。在反射定律中,当光子被表面撞击时,光的反射角等于入射角。光子不像漫反射那样在表面上扩散,而是具有一定的方向性。在光滑表面上,从 (I) 点到 (x) 点的光线能从该点反射到一个特殊的方向,称为镜面方向。到达表面的辐射能量,通常会通过在高光方向上创建一个光波瓣 (也称为“高光瓣”) 反射光。这个波瓣的形状是由光的出口角度和镜面方向决定的,可以根据表面粗糙度的大小而扩大和收缩。
反射的计算模型
我们集中精力只研究反射材质独有的通道
1、DIFFUSE 漫反射: 通道赋予材质颜色。在计算机图形学术语中,这也被称为 “基色” 或“反照率”。漫反射颜色可以使用一个值设置,也可以使用一个程序纹理或基于图像的纹理设置。
我们把 GLOSSY 材质赋予模型,DIFFUSE 通道设置一个浅灰色,仔细看,在模型和地面也出现了反射现象了。这是怎么回事呢?
2、SPECULAR 反射: 利用此通道可以调整表面的反射量。此参数接受颜色、浮点值或纹理。在大多数情况下,高光是白色或无色的。然而,要模拟金属表面,您应该使用 COLOR 颜色来着色高光颜色。
这是 SPECULAR 默认,现在你知道上面是怎么回事了吧?COLOR 是黑色,FLOAT=1,还是相当于白色。所以,SPECULAR 默认是开启的,而且是全开,所以,GLOSSY 材质默认是有反射的。
反射通道也是用亮度值控制反射强度的。V=0.2
V=0.5
V=1 反射最强。
需要注意的是:
一是模拟金属。 现实世界中,金属表面的高光颜色是彩色的。应使用 RGB 颜色,禁用 FLOAT 浮点值。反之亦然。例如,如果您正在创建一个金属表面,建议漫反射颜色为黑色,SPECULAR 的 COLOR 设置为金属颜色,它们吸收不同波长的光,反射光的颜色是高光。以黄金为例,当它吸收可见光的蓝光时,会呈现出黄色。折射率设置要尽可能地大,后面解释。
一个具有黑色漫反射色、粗糙度 = 0、折射率 = 1 的光滑节点就会产生一个完美的镜子。
漫反射 DIFFUSE 通道不勾选或者设为深黑色。SPECULAR 设置为反射高光颜色。
模拟金属 INDEX 折射率尽量大一些。
二是模拟绝缘体。 绝缘体不能很好地传递热和电,当光照射到这些表面时,大部分的光波也没有被吸收,所以,DIFFUSE 通道的颜色不能设为纯黑色或不勾选。SPECULAR 通道的颜色尽可能使用浮动参数,调整为灰度值控制反射程度,而不是用 RGB 的颜色控制。
把 SPECULAR 通道 COLOR 设为黑色,使用 FLOAT 控制反射强度。模型上的高光由灯光颜色决定。
绝缘体高光将根据光源的颜色来决定。
3、ROUGHNESS 粗糙度: 确定镜面反射在表面的扩散量——也称为反射模糊。此参数接受值、颜色或纹理映射 (过程或图像)。0 的值模拟一个像镜子一样完美、光滑的反射表面。增加该值模拟表面的微平面,这会导致反射高光扩散。如创建一个磨损的塑料外观,增加粗糙度值。
从左往右 从光滑到粗糙 。高光由小变大,由清晰变模糊。
需要注意的是: 对于具有反射特性的材料,粗糙度是一个绝对必须要使用的参数,是我们描述的 “微面” 理论的实际对应物。粗糙度控制镜面反射在表面上的散射量。在现实世界中,所有的表面都是粗糙的。即使是表面看起来最光滑的镜子,在近距离观察时也是粗糙的。不要忘记,重要的不是 RGB 而是灰度值。必须输入灰度值。或者你可以使用浮点值和纹理。
ROUGHNESS 通道载入一张划痕位图,来模拟表面的污垢。
4、FILM WIDTH & FILM INDEX 薄膜宽度和薄膜折射率: 这两个通道模拟的是表面材料薄膜效果。比如浮油表面出现的彩虹颜色时,这是非常有用的;或者肥皂泡、镜头上呈现的彩色斑斓的炫光。
镜头呈现的效果也需要用 FILM 模拟
FILM WIDTH 决定呈现的颜色,FILM INDEX 控制薄膜的折射率。一般说数值越大,效果越好。
FILM WIDTH=0 等于关闭了这个薄膜效果。添加点数值,就会在表面呈现色彩斑斓的效果,有点油腻的感觉。
5、INDEX (INDEX OF REFRACTION) 折射率: 该通道参数根据菲涅耳反射定律确定表面的反射强度。当反射值大于 1 时,背向观察者角度的表面反射最强 (掠角),而垂直于视角的表面反射较弱。这使得表面看起来更加真实。当值小于 1 时,菲涅尔效应被禁用。当值等于 1 时,没有菲尼尔效果。
在下面的例子中,这六个球的粗糙度分别为 0、0.2、0.4、0.6、0.8、1.0(从左到右),对于每个渲染的图像,只修改反射参数的 Specular 和 Index 折射率的数值。
Specular=1 反射最强,Index=2。
Specular=0.3,Index=3。
Specular=1,Index=1.5。
需要注意的事: 很多网上的视频作者,说 INDEX 折射率是决定反射强度的,越大反射越强。纯属于扯蛋!Specular 和 Index 这两个通道,他们根本都没有讲清楚,稀里糊涂就过去了。其实,在 OC 渲染器 GLOSSY 光泽材质中,反射的强度是由 Specular 决定的:0 值没有反射,1 值反射最强。那么你会问 Index 折射率在反射中又决定了什么?它与菲尼尔有关,说白了它是控制反射的范围的。
Specular=1 反射最强,Index=1 没有菲尼尔现象,球体每个部分反射都一样,这不就是镜子吗?
Specular=1 反射最强,Index=1.2 强烈的菲尼尔现象,正对相机的地方,我们叫 F0 位置反射非常弱,球体周边,我们叫 F90 位置,非常强。但范围也很窄。 塑料等绝缘体呈现这种反射现象。
Specular=1 反射最强,Index=1.5 强烈的菲尼尔现象,正对相机的地方,比上面强了一些,总体还是弱;球体周边,非常强,但范围在变宽,向中心逼近。玻璃等绝缘体呈现这种反射现象。
Specular=1 反射最强,Index=1.8 还是周边反射强,但反射范围在从四周向里逼近。F0 位置反射已经比上面强了。
Specular=1 反射最强,Index=3 中心反射强度比周边弱一点。金属类导体呈现这种反射现象。
Specular=1 反射最强,Index=8 中心反射强度与周边一致,这不也是镜子吗?菲尼尔效果消失了。
【反射问题】
1、如何得到反射焦散?焦散现象有两种:一种是反射汇聚产生的焦散,另一种是折射汇聚产生的焦散。我们先研究第一种。
1、这样的金属按照物理上说,它的弧形反射面就会汇聚反射光,在地面形成非常亮的光斑。但渲染却没有?
2、要得到反射焦散效果,你需要更换渲染引擎,PATHTRAING 或 PMC 都行。
3、更换渲染引擎,再渲染,反射焦散效果出来了,渲染时间也长了。
2、如何增加镜面反射次数?计算机的计算能力不是无限的,它需要有一个限制。比如两个镜子中间放一个物体,镜子要相互反射,现实上,反射是无数次的。但在渲染器模拟就不能无限次,否则,计算机陷入无限循环,岂不死机呼?所以,我们在模拟反射的时候,一定要设定反射深度即次数,够用就好。那个这个反射限制在哪里设置呢?
GLOSSY DEPTH 就是反射深度,不要太大或太小,够用就好。太大浪费计算资源。
GLOSSY DEPTH=0 或 1
GLOSSY DEPTH=2
GLOSSY DEPTH=10
3、如何能渲染出好的反射效果?渲染有反射效果的模型,要想能呈现好的效果。你记住:反射材质设置的好,不如环境设置好。初学者常常犯的毛病就是只注重材质,不注重搭建反射环境。最简单的方法就是建立一个 HDRI 环境,用于逼真写实渲染;其次,用几个灯光按照三点布光的原则,搭建环境用于渲染工业产品,模型上反射干净。
初学者常犯的毛病,知道反射效果不好,都在材质上找原因,其实问题在环境上。渲染器有毛病吗?
天空使用一个 HDRI,地面使用一个纹理。简单的环境改变,效果就不一样。
第三部分、SPECULAR MATERIAL:
SPECULAR 材质在 OC 渲染器中,它是用来创造透明的材料,如水或玻璃。当光线到达一个表面时,它会被反射、吸收或折射,通常这三种情况同时存在。光线从一种介质 (如空气) 进入另一种介质 (如玻璃) 时,它的传输路径就会发生变化。它会降低速度、改变方向和弯曲。这就是为什么我们可以看到光在玻璃和水表面偏折的原因。
光线发生了偏折。
光在水中传输速度比空气中的光速低。
这种弯曲的原因是由于折射率。折射率 (IOR) 决定着光线的偏折大小。介质的折射率 (或折射率) 是测量介质内部光速降低多少的指标。换句话说,折射率是空气 (或真空) 中的光速与传播介质中的光速之比。例如,一个典型的玻璃的折射率是 1.5,这意味着光在玻璃中要比它在空气或真空中的传播速度慢 1.5 倍。随着折射率的增加,介质中的光速降低。你可以在这个网站上https://refractiveindex.info/ 找到我们之前提到的相关资料的 IOR 的实际信息。
折射率越大,光线偏折也大。
与 GLOSSY 相同的通道就不研究了。
1、REFLECTION: 确定表面反射强度。按照能量守恒,较低的值反射量少,但增加了通过物体传输光的能力。通过使用这个参数,可以控制镜面上的反射强度。大多数透射物体,其面都有反射,这取决于表面特性。换句话说,这些表面同时具有反射性和透射性。
REFLECTION 反射通道 = 0,没有反射,光线全部透射并进入了物体,不现实。
REFLECTION 反射通道 = 0.866044 有反射有折射。
模拟微表面粗糙效果,如要创建一个半透明的塑料外观,粗糙度通道值大于 0 的值。
2、DISPERSION 色散: 发出由所有可见波长组成的白光,遇到折射率非常大的媒介时,这些不同波长、不同颜色的光,因为每种可见波长的折射率略有不同,就会分散并彼此分离。这叫做 “光色散”。例如,透明玻璃的红光折射率约为 1.50,而蓝光折射率约为 1.51。事实上,对于大多数材料来说,光的波长越小,折射率就越大,这意味着波长越小的光比波长越大的光弯曲得更大。增加此值将增加在对象传输和焦散中的着色量和色散。
白色光是由无数颜色的光组成
增加了色散效果的茶壶。
3、INDEX 折射率: 增加 IOR 值时,一是光线在介质传输的速度越慢。二是光线在该介质偏折就越大。真空的折射率 (IOR) 是 1,水的 IOR 是 1.33,这意味着光在真空中的传播速度是水的 1.33 倍。
4、TRANSMISSION 传输: 控制光线通过透明表面的方式。透射和折射率紧密配合以控制表面透明度,透射接受颜色或纹理输入。用这个通道制作有颜色玻璃。
TRANSMISSION =1 或白色,表示所有光线全部通过。
只有指定颜色的光通过,其他被吸收了。
5、FAKE SHADOWS假阴影: 它是一个布尔值。当启用时,它的透明特性允许光线照亮封闭的空间。以其透明的特性展示建筑玻璃的特性,如果你想要透明材质的真实阴影,可以关闭这个选项。
FAKE SHADOW 关闭
FAKE SHADOW 开启。
6、Medium: 媒介。我这里不想研究了,等到后面专门一篇研究之。
【折射问题】
1、如何增加玻璃透明度?
为瓶子赋予玻璃材质,但感觉内部的粒子发暗。
把玻璃材质 FAKE SHADOW 开启,光线透射进来,照亮内部的粒子。
2、如何得到透明焦散?上面说道了反射焦散,下面研究一下,光透过透明物体汇聚在一起的现象。
1、注意看两个玻璃球,按照物理规律,在地面上应该显示焦散现象。
2、更换渲染引擎为 PATHREACING 和 PMC。
3、再次渲染就会发现有焦散现象了。如果要得到明显的焦散效果,一是光源很亮,二是光源面积很小。
3、AFFECT ALPHA? 这个选项允许折射影响 alpha 通道,只要您在内核设置中启用 alpha 通道。
1、在 OC 设置中打开 ALPHA CHANNEL 总开关。
2、这是没有打开渲染的效果。玻璃不透明。
3、打开以后,玻璃透明。便于合成。
4、TRANSMISSION 传输 与 OPACITY 不透明区别?
TRANSMISSION 传输与 OPACITY 不透明(阿尔法)
TRANSMISSION 传输与 OPACITY 不透明度不同:前者传输控制透明度,而后者不透明度控制表面可见性。
TRANSMISSION 载入条纹位图。
OPACITY 载入条纹位图
前者贴图控制什么地方更透明,后者位图直接挖去。
【后记】
1、总的来说,OC 渲染器基本材质中,DIFFUSE 渲染速度最快,场景中模型材质都是 DIFFUSE 材质时候,我的 K2000 2G 显卡渲染时,普遍温度不超过 60 度,基本都在 56 度左右。其次是 GLOSSY 材质,渲染时,基本都在 67 度左右。当我写 SPECULAR 材质,渲染范例时候,显卡的温度基本都在 77 度左右,我非常害怕我的显卡要被烧掉。所以,后边的插图基本上都有噪点,我不能为了写文章把我的显卡废掉啊!所以,为了提高渲染速度,你在优化场景的时候,选择材质是不是要考虑一下呢?
2、OC 渲染器学习笔记,目前已经写了五篇了。我可以说非常用心在写。读过我写的《THEA 渲染器学习笔记》的网友,一定会有收获,因为二者有些原理相同,你可以对比参考学习。THEA 渲染器也算简单,但其材质设置非常复杂,携带的渲染引擎也很多,又有大量的在线材质库,厂家显然很友好,给的很多,但就是不火。OC 渲染器就是简单,材质简单、设置简单、效率很高。如果你要投身 OC,我必须提醒你一句,必须有一块好显卡才能体现出来。我用 K2000 2G 渲染与用两块 GTX1080 TI 11G 渲染,那个感觉一个在地下,一个在天上。如果你的显卡一般般,OC 也不会太高效,你还不如使用 THEA 的 PRESTO 双引擎,借助 CPU+GPU 共同的计算力量提升你的效率呢。
3、有些网友不看我以前写的文章,总问他的 AMD 显卡是否支持 OC 渲染器,苹果笔记本能否用 OC。我都说了十多遍了:不支持!不要再问我了。
4、OC3.07 渲染器的 GLOSSY 材质模拟金属材质,个人认为不准确,应该像 THEA 渲染器那样用折射率和消光系数来描述。它没有各向异性设置。果不其然,在 OC3.08 和 OC4.O 增加了金属材质,多了几个反射算法,也补上了各向异性的通道。其实,没有也不是没有办法。动动脑筋可以模拟出来。下一篇我们将研究 MIX 混合材质,就能模拟很多基础材质单独无法做出的效果,MIX 能干很多事!
查看连载目录
92 人点赞
更多精彩内容,就在简书 APP
“你的赞赏是我写作的动力!”
赞赏支持
DIGITALMAN比美工懂点编程,比码农懂点美术。
总资产 3,616 共写了 92.5W 字获得 17,904 个赞共 12,323 个粉丝
已关注
文章来自以下连载
34.3W 字 1,443,096 阅读 3,630 人关注
研究学习 C4D 建模、灯光、材质、渲染等方面知识,分享学习的体会和感悟。