全局照明通常在整个表面上计算缓慢。但是默写几乎同一位置的采样基本一致,反过来,这意味着我们不必为屏幕上的每个像素单独计算GI照明。辐照度缓存利用了这一个情况,并计算了图像周围大致的GI。结果,渲染花费的时间要少得多。
这些单独的GI点称为“辐照度缓存点”,并在渲染过程中使用(通过插值和过滤)以产生平滑的最终结果。下图显示了辐照度缓存如何工作。
主要分布的GI光子点 在两个黑色之间插入近似的光子指
辐照度缓存具有以下优点:
- 它可以产生比暴力计算快几倍的平滑(因为是插值的,所以是平滑)图像
- 可以将每个动画帧的缓存结果结果保存到磁盘。因此,如果要调整抗锯齿和其他质量参数(与GI不相关),则可以简单地加载GI缓存结果并执行快速渲染。
- 某些场景(例如室内场景)使用相对平坦的几何形状。例如,建筑内部的地板或墙壁。辐照度缓存可以为此类场景提供显着的性能优势。
- 增加成图图像分辨率通常不会增加辐照度缓存时间。即从1280×720变为2560×1400(即,像素增加了4倍),您可能会发现辐照度缓存处理时间花费的时间不到4倍。这取决于场景的复杂性和辐照度缓存设置。
辐照度缓存的缺点:
- 辐照度缓存点是在单独的渲染过程中计算的,因此无法进行实时预览交互式反馈。
- 在具有辐照度缓存的动画中,少量GI光线显示为“斑点”和闪烁。
- 参数设置太多,比较麻烦
- 如果场景包含很多几何细节,则可能必须生成太多的辐照度缓存点。这取消了辐照度缓存算法的优势,更糟糕的是,由于必须存储许多点,因此给GPU内存资源带来了负担。对于这些场景,暴力计算可能是更好的选择。我们可以在对象标签里面对默写对象单独打开暴力计算开关。
缓存文件的构建模式,和光子贴图的一致。
Flythrough Mode:飞跃模式,模拟了光子贴图的效果,光子贴图引擎下我们可以直接修改摄像机位置,不重新缓存已达到加速的效果,辐照缓存这个开关也模拟了这个效果。 可使Redshift使用最后一帧的点来计算当前帧的辐照度缓存点。只有在构建模式下这个开关才会起作用。
Frames to blend:混合的帧数,针对于缓存好的光子文件。有时候不同一帧的辐照缓存光子文件不一致,那么就有可能会造成闪烁的清理。混合帧数可以把前后几帧进行一个混合,避免闪烁的情况。设置为2表示“加载前两帧和后两帧”。因此,算法将4个相邻帧与当前帧(即5个帧)混合在一起。设置为1表示“加载前一帧和下一帧”,因此3帧将混合在一起。更大数量的混合帧意味着更少的闪烁。但是,将太多帧混合在一起会在具有快速移动的对象或灯光的场景中产生轻微的“重影”或“滞后”效果。如果适当调整了辐照度缓存设置,则2到4之间的设置应该足以将闪烁改善到完全消除或几乎看不到的程度。(辐照度缓存文件可能很大,因此请确保选择具有足够可用空间的文件夹/驱动器。)
Show Calculation:显示计算,渲染在构建缓存的时候进行一个粗略的显示,但是在R21里面看不到效果。
Separate Point for Secondary Rays:对辅助的光线使用单独的光子点。默认情况下,由主(相机)射线生成的点与由辅助射线(如反射和折射)生成的点一起存储。但有时可能会因此而引起闪烁的情况,因为点密度可能会发生巨大变化。。单独处理这些点会导致减少性能增加渲染时间,因此仅在发生此类闪烁问题时才建议启用此选项。(可以通过优化选项里面的全局禁用折射和反射来判断。)
Visualize Points:可视化光子点,在渲染的时候显示辐照缓存的光子点。可以看到光子的采样分布。
Preset:预设值,对于质量的整体调整
Min/Max rate:最大最小值,当渲染器计算辐照度缓存点时,它将以多个“分辨率遍历”来进行。它从低分辨率通道开始,然后以越来越高的分辨率逐渐渲染。较低分辨率的通道可处理平坦的表面或低对比度的照明,而较高分辨率的通道可在更详细和/或对比度更高的区域周围插入点。在某些方面,这类似于自适应抗锯齿的工作方式。
最小-最大速率控制辐照度缓存用于插入点的最低和最高分辨率。这是数字的含义:
- -5表示“将分辨率除以32”
- -4表示“将分辨率除以16”
- -3表示“将分辨率除以8”
- -2表示“将分辨率除以4”
- -1表示“将分辨率除以2”
- 0表示“使用最终分辨率”
- 1表示“每个最终分辨率像素使用4个样本”
例:
对于1920×1080帧,设置(-3,0)将通过四遍渲染:
- 240×135
- 480×270
- 960×540
- 1920×1080
使用默认的(-3,0)设置,大多数场景都可以很好地渲染。如果您的场景需要非常高的分辨率(例如4K),则可能需要将最小速率降低到-4或-5之类的水平,尤其是在它不包含太多细节的情况下。
如果您的场景包含亚像素(单独像素还可以继续拆分)细节,则使用最大速率设置为0时,您可能会在该细节周围看到瑕疵。在这种情况下,建议将最大速率提高到1。通常,如果最大速率不是足够高的像素会遗漏小细节,并且最终渲染可能会使GI光子显示为太亮或太暗的像素,斑点和浅色的“闪烁”。
在场景中工作(并进行草稿渲染)时,可能渲染速度比较重要。对于这些情况,最大速率为-1可能会提供合理的结果。但是,对于最终渲染(尤其是在渲染动画时),建议最大速率为0或
简单说,如果出图的分辨率很大,那么就需要降低最小值,细节很多就需要增加最大值。
Color Threshold:颜色阈值,检查辐照缓存中的对比度,在高对比度区域放入更多的光子信息,数值越小越精准。一般0.01-0.001之间。对于草图渲染可以使用2.0,这将引入最少的点数和最快的渲染速度,但会使GI阴影模糊,并可能在动画过程中引入闪烁。(需要记住的一件事是,在降低颜色阈值参数之前,必须使用足够的光线才能在辐照度缓存点上获得合理的照明平滑度。)
Distance Threshold:距离阈值,参数控制拐角和折痕附近的点数,从低到高,一般中等就可以了
Normal Threshold:法线阈值,对象的曲率如何影响光子的分布,也是从低到高。
以上三个预置控制了在什么地方产生辐照缓存的光子信息。
Min Detail:最小细节,调整阈值可能会引入很多的光子点,会占用显存,并使渲染变慢,最小细节可以进行全局的控制。2.0表示不在相距小于两个像素的光子点中间插入。4.0则不在距离小于4个像素之间插入。最终渲染可以使用0.0,草图渲染可以4/8.数字越高点越少越模糊。
Radius Factor:在最终渲染的时候,辐照缓存的光子也会转换为像素,类似于光子贴图的搜多半径。越大越模糊,但是光斑也就越少。一般2.0即可。草图可以4.0.
Num Rays:光线的数量,控制着每一个辐照缓存的光子点的质量。
Adaptice Amount:自适应量,是一个百分比,由于强制精准计算上面每一个光线的数量,渲染速度会特别慢,有些不是很重要的地方也会有很多光线计算,因此我们可以调整自适应量来控制有多少光线会自适应调整。默认是85%,如果上方光线数量是1000,那么也就是有850条光线会自适应的计算以便增加渲染速度。
Adaptice Error Threshold:自适应错误阈值,以上面为例,会先发射850条光线计算,之后会用辐照缓存的光子对比这里的自适应错误阈值,如果精度还是不够,那么久继续发射光线。越低那么就越精准。(如果渲染的时候一致有斑点,即使增加了光线数量还是无法解决,就可以拉低阈值的数量)
Num Smoothing Passes: 数值平滑,对辐照缓存的光子进行模糊平滑,会丢失细节。
显存不足报错的情况:
Irradiance cache points don't fit in VRAM. Frame aborted. Please either reduce Irradiance Cache quality settings or increase the <font></font>
irradiance cache memory budget in the memory options<font></font>
增加对辐照缓存的显存分配
尝试将128MB增加到256MB