一、VR渲染干货:处理LUT不能渲染到结果
在渲染中有时会遇到明明勾选了LUT,帧缓冲窗口中加载了lut效果但是并没有将lut结果保存至输出文件中的情况。如下图左边为帧缓冲窗口预览,右边为渲染结果。
这里的LUT是指的V-Ray帧缓冲包括用于保存到磁盘之前调整VFB图像色彩校正工具之一。这些工具显示在VFB右侧停靠的窗口中。
颜色校正工具:
启用LUT,可以基于IRIDAS .cube LUT(查找表)文件重新映射图像颜色。简单来说就是通过LUT调色预设文件,进行颜色调整,类似于加滤镜一样,对图像进行快速调整。比如说勾选lut选择加载增加对比度同时保持高光压缩的cube LUT文件,就可以直接在帧缓存窗口预览到这个效果了。LUT对于后期处理很有用,可以在渲染视口中或后面在Photoshop中使用它们。
Vray帧缓冲区颜色校正工具中有些校正仅在图像显示在屏幕上时适用,而在将图像保存到磁盘时不应用。主要用于显示目的的校正(例如sRGB和ICC颜色校正)不会保存到磁盘。通常来说会按照它们在颜色校正窗口中从上到下列出的顺序应用校正。唯一的例外是白平衡校正,该校正始终会首先应用。换句话说,首先进行白平衡校正,然后进行曝光,色相/饱和度等。最后应用显示色彩校正,例如LUT,OCIO和ICC。
在Vray4.1版本中,关于VFB颜色校正工具,新增了这些功能:
1.在LUT颜色校正中添加“保存在图像中(save in image)”选项
2.添加权重(weight)参数以进行LUT颜色校正
3.添加一个选项以将图像颜色校正保存到原始.exr和.vrimg文件
4.重做的镜头光晕和眩光镜片效果计算
权重 –控制LUT校正的权重。
使用滑块设置值,其中值0表示无效果,值1.0表示完全效果。
应用LUT之前转换为日志空间 –在应用查找表之前,将底图转换为对数颜色空间。保存在图像中 –与图像一起保存/烘焙LUT效果。这不会影响多通道图像(例如multi- channel.exr)。
所以vray4.1以后的版本就解决了勾选LUT,帧缓冲窗口中加载了lut效果却并没有将lut结果保存至输出文件中的情况。
简单说明一下:原样渲染
帧缓冲,和原样渲染一致
勾选了添加了lut,帧缓冲窗口中加载了lut效果但是并没有将lut结果保存至输出文件中
使用vr4.3渲染器,多了weight 和 save in image 两个选项,不勾选save in image 选项,渲染最终结果也没有lut的效果
使用vr4.3渲染器,当我们勾上save in image (烘焙到图像中)选项,渲染结果图就得到了我们想要的lut效果
所以遇到LUT没有渲染到结果中的情况,渲小百建议可以升级vray版本到4.1及以上,勾选lut的同时勾选save in image 选项,就可以将得到我们想要的lut效果了。不过LUT也可以在ps中加载出来。
那么如何在ps中加载lut:
在ps中打开结果图像,点击添加颜色查找
找到想要加载的lut文件,调整即可
二、如何理解光子图的原理以及问题解决
光线追踪器一般来说可以很好地解决对象顺序框架难以解决的阴影和反射问题。光线追踪的基本算法光线跟踪器通过一次计算一个像素来工作,并且对于每个像素,基本任务是找到在该像素在图像中的位置处看到的对象。每一个像素表示摄像机“看向”的不同方向,可以看到的对象一定会和视线相交。因此,距离摄像机最近的对象是尤为重要的,因为它遮挡了后面的其它对象。
基础的光线追踪器包含以下三个部分:
①光线产生(ray generation):基于摄像机的几何性质计算每一个像素的视线的原点和方向
②光线相交(ray intersection):找到最近和视线相交的物体
③着色(shading):基于光线相交的结果计算最近物体的颜色
irradiance发光图:
发光贴图的计算方式是基于发光缓存技术的,是只计算场景中某一些特定的间接照明,对附近的区域进行插值计算。
Irradiance发光贴图描述了三维空间中任意一点和全部可能照射到这一点的光线。通常照射这个点的每条光线都是不同的,但是渲染器在渲染时对这些光线也有限制,由于被照射的点都在场景中物体的表面上,所以有一种约束叫做表面约束。另外一种是渲染器只考虑这个点被照射的所有光线数量而不去计算这些光线来自哪个方向。这些被计算的所有的点是一个三维空间方式的集合。
当光线照射到物体表面时,VRay会在发光贴图中查找与当前计算过的点类似的点,并从已计算过的点中提取信息,根据这些信息将这些相似的点进行内差值替换。如果那个点与其他任何被计算过的点不同,就会被重新计算,保存发光贴图到内存中。
总结建议点:
由于上述原因,所以发光贴图是自适应的,它会根据我们给定的参数对场景中物体的边界、物体交叉部分以及阴影等重要的部分进行精确的全局光照计算,在大量平坦的区域进行低精度的全局光照计算。发光贴图是VRay渲染系统的默认渲染引擎,也是参数最多的渲染引擎。
所以发光贴图理论上是计算每个像素点的光线,然后根据计算结果再去渲染成图。但是大多数时候这会耗费大量的时间,而很多时候我们并不需要如此精确的计算,所以有的时候我们会选择多个像素计算一次。这一点是通过引擎中的最小速率和最大速率来控制的,这个控制有几个维度。
首先最小和最大速率中的数字代表的是多少个像素来进行采集样本。值为0意味着每个像素采样一次,-1是四个像素进行一次采样,-2就是16个像素进行一次采样,-3是64个像素进行一次采样,-4是256个像素进行一次采样,以此类推。
如果最小速率为-1,最大速率为-3,那么就意味着光子图会计算三次,第一次为64个像素进行一次采样,第二次为16个像素进行一次采样,第三次为4个像素进行一次采样,然后三次采样用算法叠加,以得到更高的精度。
而叠加的方式这一点比较特殊,他并不是简单的进行叠加,而是说Min rate(最小比率)用来控制场景平坦区域的采样数量,Max rate (最大比率)则来控制场景中的物体细节的采样数量,如边线、角落、模型转折复杂的地方。
也就是说光子图渲染完成之后会自动根据模型的复杂程度来调用光子样本。什么意思呢,比如场景里有一面墙,很平坦,上面并没有什么其他的模型,那么他就会调用最小比率中采集到的样本来进行最终的成图渲染,而面与面的交接处,因为模型很复杂,他就调用最大比率采集到的样本来进行最终成图的渲染。
这也是为什么要进行多次光子的原因。很多人觉得麻烦,只计算一次光子,其实是不对的,在时间充许的情况下应该进行多次光子计算。
light cache发光图:
灯光缓存也使用近似来计算场景中的全局光照信息,采用了发光贴图和光子贴图的一些特点,在摄像机的可见部分内跟踪光线的发射和衰减,然后把信息存储到一个三维数据结构中,对灯光的模拟类似于光子贴图,计算范围与发光贴图的一致,仅对摄像机可见部分进行计算。Light Cache灯光缓存是建立在追踪摄影机可见的许许多多光线路径的基础上,和发光贴图正好是相反的,是逆向的,而且它支持任何灯类型,它对灯光没有局限性。在做预览时是很快的,它可以单独完成对整个场景的GI照明,也可以配合别的贴图做二次反弹。而且这种引擎在墙角处的效果会更好,层次会更细腻。
在Light Cache参数面板中Subdivs参数是非常重要的,它控制了Light Cache的采样,该参数值越大越能得到好的画面效果,同样渲染速度会变慢,Subdivs的意义是确定有多少条来自摄像机的路径被追踪,路径的数量是Subdivs参数的平方值如果Subdivs设置为 300 那么被追踪的路径数量就是300×300=90000条路径,如果Subdivs设置为1000的话 那么被追踪的路径数量为1000×1000=1000000条路径。
注意:由于Light Cache灯光缓存特殊的计算方式,在使用灯光缓存时,尽量不要将材质色彩的RGB值设置到255,这样会导致追踪路径过长从而增加渲染时间。
明确了渲染光子图的原理和目的,在教大家进行光子贴图操作前,明确几点:
①跑光子图能节约多少时间呢?
实际上,这个节省时间的多少是根据你的任务大小、场景设置来的,没有一个确定答案。具体应用场景里,如果你的渲染参数比较高,大图的尺寸也比较大,那我们建议就使用先小图跑光子图的方法。
②跑光子图时的参数设置?
理论上,大图的尺寸是小图的4倍以内就可以使用,太大就无法保证。
比如你要出一张2000的图,你渲光子的时候,尺寸500就可以了,不会影响出图质量。
具体设置光子的细节上:还要保证场景不变(灯光、物体大小位置,角度),大图与小图的长宽比尺寸需一致,渲染的范围需一样。
③影响光子图渲染时间的因素?
(1)电脑配置。
配置再高的电脑,也会渲染很慢,还有反射、细分、卡住的问题;
(2)参数原因。
参数没调对,估计设置得很高,不然就是场景垃圾太多;
(3)渲染设置。
渲染设置是否匹配,不能全靠一个模板就搞定所有场景。
④怎么查看光子渲染时间,怎么判断光子是否卡住了?
光子图渲染一般都能很快完成,如果我们发现渲染时间特别慢的话,很大程度上说明这个光子设置有问题,有可能是光子图卡住了。
比如,时间进度里,后面那个需要渲染的时间特别大,或者前后的两个时间无限的接近,但又很长时间都不进入到大图渲染。
光子图大概率是卡住,需重新检查参数设置,检查文件大小,比如模型较大的场景文件,VR设置的“动态内存极限”建议修改为3000或3000以上。另外,也可能是材质细分问题,模型精度过高会影响渲染速度,这里可以用白模进行检查。
如何在3D MAX中设置保存、调用光子贴图
1、如何设置并保存光子图
①在3D max中,打开需要渲染的场景文件,确认相机角度,调整好相关参数,按F10,弹出设置界面,调整好相关参数,比如将图的尺寸缩小在4倍以内都可以。
②在VRay渲染器设置面板里,找到全局开关,在全局开关里,勾选“不渲染最终的图像”(因为我们只是跑个光子图,不用耽搁时间去渲染最终成像)。
③找到GI设置(间接照明),然后首次引擎选择发光贴图,二次引擎选择灯光缓存。在在发光贴图中,可以选择设置发光图预设为“低”。
④在光子图里打开高级或者专家模式,在保存位置设置不删除和自动保存,然后选择保存的位置,并且命名。
⑤在灯光缓存的设置选项里设置保存的位置,找到自动保存,设置方式和步骤4的一样。
⑥设置好后,点击渲染即可,在保存的位置会发现有两个文件,这个就是设置保存的光子图。
渲染完成的光子图如何调用?
分别在发光贴图和灯光缓存下保存出的文件。建议在保存设置时,区分好发光图和灯光缓存,并做好备注。
①选择对应文件:有了这两个文件以后,我们就可以渲染大图了。这里我们先要把参数调整回渲染大图时的参数。我们再到GI栏里找到发光贴图,在模式里我们选择从文件,点击下面选择发光文件,找到刚才我们保存发光图的路径,加载进来。
②加载文件:在灯光缓存一栏中,在模式里也选择从文件,然后选择灯光缓存,找到我们刚才保存灯光缓存路径,把灯光缓存加载进去。
③最终渲染:把这些参数都调整完成后,我们就可以点击渲图,进行最终的渲染。