From d75d8e0c62def85dbe0c394086e6a7872ccbb5ed Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Thu, 6 Feb 2025 22:31:20 +0800 Subject: [PATCH] vault backup: 2025-02-06 22:31:20 --- .../演讲笔记/JasonMa/JasonMa渲染方案分析.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/03-UnrealEngine/卡通渲染相关资料/演讲笔记/JasonMa/JasonMa渲染方案分析.md b/03-UnrealEngine/卡通渲染相关资料/演讲笔记/JasonMa/JasonMa渲染方案分析.md index a3ad5ee..ccfd108 100644 --- a/03-UnrealEngine/卡通渲染相关资料/演讲笔记/JasonMa/JasonMa渲染方案分析.md +++ b/03-UnrealEngine/卡通渲染相关资料/演讲笔记/JasonMa/JasonMa渲染方案分析.md @@ -455,6 +455,27 @@ FDirectLighting ToonBxDF(FGBufferData GBuffer, half3 N, half3 V, half3 L, float ``` +## Diffuse +```c++ +...    + float3 LightColorAndAttenuation = AreaLight.FalloffColor * MooaToonContext.LightColor * Falloff; +    ColorSaturationPowerAndScale(LightColorAndAttenuation, View.MooaLightSaturationScale); +... +... + float DiffuseColorRampU = min3(saturate(Shadow.SurfaceShadow + HairShadowOffset), GBuffer.GBufferAO, ShadowGradient); + half4 DiffuseColorRamp = SampleGlobalRamp(View.MooaGlobalDiffuseColorRampAtlas, DiffuseColorRampU, ToonGBuffer.DiffuseColorRampIndex, View.MooaGlobalDiffuseColorRampAtlasHeight); + Shadow.SurfaceShadow = DiffuseColorRampU; + + half3 ToonDiffuseColor = GBuffer.DiffuseColor; + half3 ToonShadowColor = ToonGBuffer.MainLightShadowColor * (1 - GBuffer.Metallic) * GetShadowColorIntensity(MooaToonContext); +#if USE_DEVELOPMENT_SHADERS + ToonShadowColor *= View.DiffuseOverrideParameter.w + View.DiffuseOverrideParameter.xyz; +#endif + ToonDiffuseColor = lerp(ToonShadowColor, ToonDiffuseColor, DiffuseColorRamp.a); + + Lighting.Diffuse = Diffuse_Lambert(ToonDiffuseColor) * DiffuseColorRamp.rgb * LightColorAndAttenuation; +``` + # 实用函数 如果需要脸部SDF阴影,就覆盖ShadowGradient。 ```c++