这一讲我们用一个范例来讲讲使用Arnold渲染的时的基本布光原则及操作规范。
准备场景
我们的使用的场景是一个破败的办公室场景,这个场景模型本身其实有很多值得吐槽的地方,但本文只是那它过来做白模打光测试,就不管那么多了。
首先要做的,是确定场景比例。
![](https://img.haomeiwen.com/i124473/91692f2a58367d55.png)
我假定这个房间净空高3.5米,所以创建了一个350×350×350的方盒子来做参考。
在场景中添加渲染用摄影机,调整到合适的机位,锁定移动和旋转属性以避免不小心改变了机位。
![](https://img.haomeiwen.com/i124473/9ac38d5d4861aedf.png)
请大家改掉直接使用persp摄影机当渲染摄影机的习惯!
如果预想的机位其实是在墙壁的另一边,可以提高摄影机的Near Clip Plane
值将遮挡的墙壁给“裁掉”。
![](https://img.haomeiwen.com/i124473/85cf6b79f3452236.png)
如果因为场景的尺寸很大导致在摄影机中出现这种显示错误的问题,也可以通过适当增加摄影机的
Near Clip Plane
值来解决。
给整个场景添加一个aiStandardSurface
材质,设置其为灰色纯漫反射材质(无高光、无透明),然后删除掉场景中的多余材质节点。
![](https://img.haomeiwen.com/i124473/59aa06e2c88391d0.png)
最典型最简单的白天室内照明
典型的白天室内照明由两大光源:天光(用以提供整体全局光照亮度)和阳光(用以塑造阴影形状,产生明暗对比),那么在Arnold中就是一个Skydome Light
加一个Directional Light
。
因为使用Skydome Light
通过窗口照亮室内场景,所以需要为每个窗口创建一个Light Portal
。
![](https://img.haomeiwen.com/i124473/c5b9eed0f685ee0f.png)
这样照明质量会明显好一些,同时还不会增加渲染时间。
因为是最早的白模打光测试,所以我们保持场景的简单统一,先不使用HDRI天空贴图,直接用纯白色天光和纯白色阳光来建立最基本的亮度分布。
我们可以使用Light Editor(灯光编辑器)来快速“关闭”或“单独显示”某个灯光的照明效果。每个灯光单独调节有利于我们准确判断各个灯光的实际效果,避免互相影响。
![](https://img.haomeiwen.com/i124473/c7e00bc3e859accf.png)
在Light Editor的面板中我们可以直接调节灯光的一些关键参数,比如颜色、亮度、曝光度、取样值等等。
![](https://img.haomeiwen.com/i124473/3a00cfb2abb395f6.png)
![](https://img.haomeiwen.com/i124473/e2a7fa4f37274d74.png)
由于我们现在这个场景主要是被间接光照照亮的,所以Diffuse Ray Depth
就很重要了。增加Diffuse Ray Depth
对于渲染时间的影响还是很大的,要注意在渲染效果及渲染效率两边的平衡。
![](https://img.haomeiwen.com/i124473/763c80a2b091b927.png)
场景照明亮度分布调整好之后,再针对噪点问题进行测试。增加Sample的顺序一般为:
- 增加天光、面积光、物体光之类会产生模糊阴影的灯光Sample,一般不超过4
- 增加
Camera (AA)
采样值到2或者3,然后再逐步增加Diffuse Sample,消除间接漫反射带来的阴影(建议在diffuse_indirect
分层通道里查看间接漫反射照明效果)
![](https://img.haomeiwen.com/i124473/bf67fa5a398f52ca.png)
这张图我最后的参数是4/6/0/0/0
,也就是Camera (AA)
= 4,Diffuse
= 6,并没有完全消除干净间接漫反射噪点,但整体效果是满意的。
![](https://img.haomeiwen.com/i124473/dc42687cb8d35694.png)
关闭IPR渲染的“渐进式渲染(Progressive Rendering)”可以稍稍加快渲染速度,或者将所有CPU进程都分配给渲染器,但这样会导致我们在渲染过程中基本上不能操作Maya了。
添加光色
我们可以将Skydome Light
上贴一张HDRI天空图,然后修改直接光照的光色来匹配一个不一样的照明环境。
还可以将地板材质换成一个略有反光的材质。
因为场景中有一个疑似“镜子”的物体,所以我决定做一个镜面反射的效果。
![](https://img.haomeiwen.com/i124473/523b923415aed4ee.png)
将这个物体的“镜面”提取出来成为一个独立的几何体,单独指定一个aiStandardSurface
材质。
漫反射颜色改为黑色,高光Roughness改为0,最重要的是需要大幅度提高IOR
值才能获得比较“明亮”的反射图像。
![](https://img.haomeiwen.com/i124473/c63816eca6955945.png)
![](https://img.haomeiwen.com/i124473/b53d9fcac82efb23.png)
![](https://img.haomeiwen.com/i124473/99cc6ac78a17d793.png)
将白天室内照明修改为夜晚
![](https://img.haomeiwen.com/i124473/3f8411724910c584.png)
可以简单地对Skydome Light
的HDRI天空贴图的Color Balance
栏中的参数进行调整,将其修改成夜晚的光照效果,当然其照明亮度也需要大幅度降低。这里我修改了Color Gain
为比较暗的灰蓝色。
![](https://img.haomeiwen.com/i124473/3dc82a9ea290cd2b.png)
Directional Light
的亮度和色温也要相应进行修改。这里我还增加了Angle
值以增加阴影的模糊程度。
![](https://img.haomeiwen.com/i124473/8f79ccea93f1808b.png)
可以看到,低分辨率(50%)和低取样值(2/3/2)下,渲染速度还是非常快的,这样我们在调试的时候不至于需要浪费很多时间等待渲染。这是我对Arnold渲染器最满意的地方。
添加人造光源
在这个场景中,我想要使用3盏吊灯来作为人造光源。我们可以有很多种选择:1. 将灯泡物体转换成Mesh Light
;2. 用点光源替换灯泡物体来模拟;3. 用聚光灯替换灯泡物体来模拟。方案2可以通过调节点光源的高度来调整其照亮范围,方案3可以让我们精确控制灯光的照明范围(完全不被灯罩模型所限制),但我们这个范例中使用最简单的方案1。
![](https://img.haomeiwen.com/i124473/9f7e4636c26ee505.png)
Mesh Light
默认不显示灯的外观,只显示其照明效果。因为场景很大,且Normalize
被勾选,所以需要较高的亮度(Exposure
= 13)才能照亮场景。
为了控制这盏灯直接照明的范围(比如我们需要灯泡很亮很显眼但不想它过份照亮整个场景),我们可以给这盏灯添加一个Light Decay
。
![](https://img.haomeiwen.com/i124473/47c78e5bd202482a.png)
双击添加进Light Filter
里的Light Decay
,我们可以修改Far Start
和Far End
来设定这个灯光的亮度从什么距离(Start)开始强制性衰减,以及达到什么距离(End)时完全没有照明效果。
![](https://img.haomeiwen.com/i124473/f9d2acebb28469e8.png)
最好根据
diffuse_direct
通道来修改Light Decay
,因为它影响的是直接光照,而直接光照是反映在diffuse_direct
中的。也就是说,在Far End
距离以外的场景其实也会受到这盏灯的照明影响,但不是被直接照亮,而是被间接照亮(比如地面的反弹光线)。
同理设置好另外两盏吊灯:
![](https://img.haomeiwen.com/i124473/b8ebccd8e9f70a31.png)
最终照明效果如下:
![](https://img.haomeiwen.com/i124473/bb6e7fe464c4f16c.png)
添加灯光雾
![](https://img.haomeiwen.com/i124473/d8c846ffc8ea6fcd.png)
在渲染设置的Environment
栏中,给Atmosphere属性添加一个aiAtmosphereVolume
节点,并设置aiAtmosphereVolume的参数。
![](https://img.haomeiwen.com/i124473/8f617527ee4f18a3.png)
Density
这个参数非常敏感,稍大点数值就可能产生非常强烈的灯光雾效,而且会影响我们对于灯光亮度的判断。所以,我建议在没有灯光雾效的时候先把灯光颜色测试好,然后再添加灯光雾,调节Density
值以匹配我们想要的效果。另外要注意的是,
Environment
中设置的不论是aiAtmosphereVolume
灯光雾也好,还是aiFog
场景雾也好,都不算做Arnold的“Volume”,不会出现在“Volume”相关AOVs通道中,也不受Volume Sample的数值影响!
最终渲染的结果如下:
![](https://img.haomeiwen.com/i124473/5bf1d6676538ae0c.png)
我个人对于这个渲染时间和渲染质量并不是特别满意,真的是太久了。而且这3盏人造灯源在间接漫反射中产生的噪点几乎遍布整个场景。
我们可以使用一些办法来改善这种问题。一方面,我们可以用分通道渲染再合成的方式将diffuse_indirect
单独提取出来做降噪处理,但这需要保证不会出现“漏光”的区域;另一方面,我们锁定Sample Pattern,将噪点当做场景贴图纹理的一部分,有噪点没关系,只要动画时噪点不会出现闪烁就好。
我个人电脑的基本配置是AMD R5 2600 + 16G DDR4 3000内存,并不是一个特别有利于渲染的配置。目前Arnold渲染器主要还是依赖CPU在做计算,所以CPU越快渲染速度就越快。
从单帧渲染时间上来讲,Arnold并不比Mental Ray慢,但Mental Ray可以保存GI光子图、FG灯光图等缓存数据,在渲染动画序列帧的时候,Arnold的渲染时间就慢很多了(因为不能取巧了……)。算是牺牲最终渲染速度来换取制作时的便捷性吧。
网友评论