1.5 KiB
1.5 KiB
title, date, excerpt, tags, rating
title | date | excerpt | tags | rating |
---|---|---|---|---|
ToonReflection | 2025-03-20 17:04:16 | ⭐ |
反射功能相关Pass
- ReflectionIndirect(None)
- DiffuseIndirectAndAO(Lumen/SSR)
- LumenReflections
ReflectionEnvironmentAndSky
位于IndirectLightRendering.cpp的RenderDeferredReflectionsAndSkyLighting() => AddSkyReflectionPass()
当DiffuseIndirectMethod = EDiffuseIndirectMethod::Lumen
(也就是开启Lumen GI),如果反射方法为Lumen或者SSR则不会执行后续逻辑。
不开启Lumen GI,反射方法为:
- Lumen:
RenderLumenReflections()
- Rtx Reflection:
RenderRayTracingReflections()
- SSR:
ScreenSpaceRayTracing::RenderScreenSpaceReflections()
RenderDeferredReflectionsAndSkyLighting()
主要执行了:
- SkyLightDiffuse
- RenderDistanceFieldLighting()
- RenderDistanceFieldAOScreenGrid():渲染距离场AO。
- RenderCapsuleShadowsForMovableSkylight():渲染胶囊阴影。
- RenderDistanceFieldLighting()
- ReflectionIndirect
- RenderLumenReflections()
- RenderRayTracingReflections()
- RenderScreenSpaceReflections()
- Denoise
- Denoiser:IScreenSpaceDenoiser::DenoiseReflections()
- TemporalFilter:AddTemporalAAPass()
- RenderDeferredPlanarReflections():合成平面反射结果。
- AddSkyReflectionPass()
执行完上述反射方法后,最后执行AddSkyReflectionPass()
DiffuseIndirectComposite
位于IndirectLightRendering.cpp的RenderDiffuseIndirectAndAmbientOcclusion()