针对于Redshift的Caustic(焦散)比较特殊,焦散的效果必须要使用Photon Mapping GI(光子映射)引擎进行计算。因为只有光子映射GI引擎是从灯光发射光线进行计算的。
讲解Caustic焦散我们有必要先来了解一下Photon Mapping光子映射GI引擎。
除了光子映射之外,所有的GI引擎都是通过摄像机发射采样线来进行工作的,而光子映射的工作原理则是从光源发射光线。
光源发射的光线在禅境中经过反复反弹,最终在物体表面储存一系列的光子信息。
在渲染的过程中,通过对表面一系列的光子进行插值运算,然后用运算出的光影信息为物体表面的其他待着色像素(白色光子点)提供GI间接照明。
我们通过上图其实会发现一个很严重的问题:在摄像机视野外也储存了大量的光子信息,这些信息对于我们最终渲染是没有任何用途的。因此针对于一些大场景就会带来内存和计算上的负担。
我们来看一下它的参数:
- Mode:和辐照类GI引擎设置一致
光子信息储存的方式。针对于光子映射,他的光子信息是从灯光发出,因此如果我们场景中只是摄像机产生了运动,那么我们可以用一帧的光子信息渲染整个动画序列。
- Photons:光子,可以储存在Blur Radius中光子的数量上限。值越高那么每个像素单位上就会有更多的光子,但是显存的需求也会继续增加。
- Blur Radius:模糊半径,最终渲染图像时一样会定义每个像素需要多少范围内的光子信息用于计算,值越大结果越平滑。值低了会有颗粒感和焦散信息较少。
- Fast Irradiance:快速辐射,针对于光子映射的 光子焦散信息 计算是很慢的,因此我们可以采用一些近似值进行混合计算。(个人简单场景测试,勾选和不勾选渲染速度差距不大,2-3S左右。大家根据项目实际的周期和效果进行平衡即可。要效果那么就不勾。需要速度就勾上)
- TRACE DEPTHS:追踪深度,这个就针对于光子映射GI引擎发射的光线在场景中反弹的次数。
- Reflection:针对于反射次数的调节。
- Refraction:针对于折射次数的调节。
- Combined:综合调节,同样这里的综合次数=反射次数+折射次数)
tips:如果场景中有焦散的效果,但是只希望有折射的焦散,那么可以把反射的追踪深度改为0。
光子映射GI引擎目前只用作于焦散效果,之前版本是可以用作与GI引擎计算的(漫反射信息等)但是由于性能和效果太差了,就移除掉了。