在所有的阿诺德教程里,不论是国内的教程还是国外的教程,不论是小虾米的教程还是大咖的教程,都始终笃定的告诉我们关于光线深度的设置不能超过2,【因为2的深度是最真实的深度,保持默认就好】,他们总是这样说的,但最近一段时间经过海量的折腾发现不是那么一回事。
光线深度的意思就是光线要反弹多少次,阿诺德的光线工作方式与其他渲染器有所不同,阿诺德是由摄像机发出光子去触碰物体从而发出光线的,这个光子只在摄像机范围内反弹,不会全局瞎鸡儿跑,这是一个很大的优势,节省了海量的计算资源,不用去做那些无谓的计算。那么在你保持默认2次反弹的时候,光线在第一次触碰到物体的时候发光,然后反弹出去,再碰到物体的时候发光,但到此为止就不再反弹了。
那么阿诺德的反弹是怎么工作的呢,经过尝试发现阿诺德的反弹原理和我想的有些不一样,我之前一直以为阿诺德的反弹是只要是摄像机视角内的光线,全部都会反弹2次并产生效果,但实际上不是这样工作的,既然是物理级的渲染器,那么光线肯定是遵循了真实原理的,真实里光线会因为表面的不同产生发散,也就是说,并不是每一个光子都能反弹!
以这张图片为例,在空旷的地方光线是无法反弹2次的,因为地方宽敞,光子碰到物体开始反弹的时候,在半路上就没了!也就不存在反弹。为了测试,我对这个场景进行了多次渲染,所有参数保持不变,只调整光线深度,结果如下。
这个测试表达了几个结果:
不同的光线深度会影响渲染时间。
光线深度在2到3的时候渲染时间差别最大。
光线深度越高,渲染所增加的时间就越少。
而且最有趣的是当我把反射深度开到6的时候,渲染时间反而下降了,但细看渲染结果,还是会比深度5稍微亮一丢丢的。
为了多次测验光线深度对渲染结果的影响,我又拿正在制作的一个大型场景做了一次测试,光线深度4和6渲染时间相差不足2分钟,但结果没有任何区别!
这是个还在做的场景,最终结果还要等一段时间,但拿来做这次测试是很适合的。这个场景里影调和光线层次是非常齐全的,有亮部有暗部,至于为何结果完全一样还没有准确的结论,个人猜测是由于相机视角太远导致光线即使反弹了也看不出来(这个场景有几千米那么大!)当然还有一种可能性,这个场景里的物体都是用了很强的凹凸的,光子压根没办法反弹,弹出去就散了。
在此结案:
深度为2时暗部偏黑,且不完全符合真实,虽然所有人都这么说,但我们对真实要有一定的相对对接:1,人眼会自动平衡高光中间调阴影,所以即使是反差很大的场景也不会觉得暗部很暗。2,在摄影里我们都会尽量保留高光和阴影,用于调整光比让画面亮度均衡,亮度反差极大会影响画面的和谐性。3,我们所做的是艺术CG类项目,即使我们要追求真实,也要有审美的修饰存在,完全与现实一样就不如拿手机去拍一张了。4,CG类的真实是有的放矢有选择的去控制真实程度的,假不行真也不行,这其中的比例好似厨师调味,个人火候很重要。
需要画面通透时,可以直接提升光线深度。
光线深度的调整,对于各类不同的场景不同的图片来讲,所增加的渲染时间都是一致的,例如我渲染了多次测试,加一级大概也就多一两分钟,在比较小的场景中,多一级只多几秒。
在渲染虚拟类场景时(如电商场景)可以直接无理由把光线深度拉到4以上(推荐6)。