diff --git a/03-UnrealEngine/卡通渲染相关资料/渲染功能/ToonReflection&GI控制/ToonReflection.md b/03-UnrealEngine/卡通渲染相关资料/渲染功能/ToonReflection&GI控制/ToonReflection.md index ceab8d1..9b84cf9 100644 --- a/03-UnrealEngine/卡通渲染相关资料/渲染功能/ToonReflection&GI控制/ToonReflection.md +++ b/03-UnrealEngine/卡通渲染相关资料/渲染功能/ToonReflection&GI控制/ToonReflection.md @@ -545,40 +545,9 @@ float3 CompositeReflectionCapturesAndSkylightTWS( - 其他没有实现的会谈报错提醒 6. 将渲染的AO结果赋予SceneTextures.ScreenSpaceAO 7. RenderHairStrandsAmbientOcclusion() -8. +8. 应用GI到渲染结果上。 +9. ApplyAmbientCubemapComposite() +DiffuseIndirectComposite -位于IndirectLightRendering.cpp的RenderDeferredReflectionsAndSkyLighting() => `AddSkyReflectionPass()` - -当`DiffuseIndirectMethod = EDiffuseIndirectMethod::Lumen`(也就是开启Lumen GI),如果反射方法为Lumen或者SSR则不会执行后续逻辑。 - -不开启Lumen GI,反射方法为: -- Lumen:`RenderLumenReflections()` -- RT Reflection:`RenderRayTracingReflections()` -- SSR:`ScreenSpaceRayTracing::RenderScreenSpaceReflections()` - -`RenderDeferredReflectionsAndSkyLighting()`主要执行了: -1. SkyLightDiffuse - 1. RenderDistanceFieldLighting() - 1. RenderDistanceFieldAOScreenGrid():渲染距离场AO。 - 2. RenderCapsuleShadowsForMovableSkylight():渲染胶囊阴影。 -2. ReflectionIndirect - - RenderLumenReflections() - - RenderRayTracingReflections() - - RenderScreenSpaceReflections() -3. Denoise - - Denoiser:IScreenSpaceDenoiser::DenoiseReflections() - - TemporalFilter:AddTemporalAAPass() -4. RenderDeferredPlanarReflections():合成平面反射结果。 -5. AddSkyReflectionPass() - -几种反射方式的大致执行逻辑: -- LumenReflection - 1. 输出FRDGTextureRef ReflectionsColor。 -- SSR与RT - 1. 输出结果到IScreenSpaceDenoiser::FReflectionsInputs DenoiserInputs的FRDGTextureRef Color。 - 2. 执行对应的降噪算法。 - 3. 结果赋予给FRDGTextureRef ReflectionsColor。 -- 执行完上述反射方法后,最后执行`AddSkyReflectionPass()` - -FReflectionEnvironmentSkyLightingPS位于/Engine/Private/ReflectionEnvironmentPixelShader.usf的`ReflectionEnvironmentSkyLighting()`。 \ No newline at end of file +FDiffuseIndirectCompositePS, "/Engine/Private/DiffuseIndirectComposite.usf", "MainPS", SF_Pixel); \ No newline at end of file