1.5 KiB
Raw Blame History

title, date, excerpt, tags, rating
title date excerpt tags rating
ToonReflection 2025-03-20 17:04:16

反射功能相关Pass

ReflectionEnvironmentAndSky

位于IndirectLightRendering.cpp的RenderDeferredReflectionsAndSkyLighting() => AddSkyReflectionPass()

DiffuseIndirectMethod = EDiffuseIndirectMethod::Lumen也就是开启Lumen GI如果反射方法为Lumen或者SSR则不会执行后续逻辑。

不开启Lumen GI反射方法为

  • LumenRenderLumenReflections()
  • Rtx ReflectionRenderRayTracingReflections()
  • SSRScreenSpaceRayTracing::RenderScreenSpaceReflections()

RenderDeferredReflectionsAndSkyLighting()主要执行了:

  1. SkyLightDiffuse
    1. RenderDistanceFieldLighting()
      1. RenderDistanceFieldAOScreenGrid()渲染距离场AO。
      2. RenderCapsuleShadowsForMovableSkylight():渲染胶囊阴影。
  2. ReflectionIndirect
    • RenderLumenReflections()
    • RenderRayTracingReflections()
    • RenderScreenSpaceReflections()
  3. Denoise
    • DenoiserIScreenSpaceDenoiser::DenoiseReflections()
    • TemporalFilterAddTemporalAAPass()
  4. RenderDeferredPlanarReflections():合成平面反射结果。
  5. AddSkyReflectionPass()

执行完上述反射方法后,最后执行AddSkyReflectionPass()

DiffuseIndirectComposite

位于IndirectLightRendering.cpp的RenderDiffuseIndirectAndAmbientOcclusion()