diff --git a/package/Shaders/Effect.hlsl b/package/Shaders/Effect.hlsl index 980cf084f7..3bd6e8d2f8 100644 --- a/package/Shaders/Effect.hlsl +++ b/package/Shaders/Effect.hlsl @@ -852,6 +852,7 @@ PS_OUTPUT main(PS_INPUT input) finalColor *= fogMul; # endif psout.Diffuse = finalColor; + float3 outputAlbedo = 0; # if defined(LIGHTING) && defined(LIGHT_LIMIT_FIX) && defined(LLFDEBUG) if (SharedData::lightLimitFixSettings.EnableLightsVisualisation) { if (SharedData::lightLimitFixSettings.LightsVisualisationMode == 0) { @@ -861,6 +862,7 @@ PS_OUTPUT main(PS_INPUT input) } else { psout.Diffuse.xyz = LightLimitFix::TurboColormap((float)lightCount / MAX_CLUSTER_LIGHTS); } + outputAlbedo = psout.Diffuse.xyz; } # endif @@ -879,11 +881,11 @@ PS_OUTPUT main(PS_INPUT input) #if defined(MULTBLEND) || defined(MULTBLEND_DECAL) psout.Specular = float4(psout.Diffuse.xyz, finalColor.w); - psout.Albedo = float4(psout.Diffuse.xyz, finalColor.w); + psout.Albedo = float4(outputAlbedo, finalColor.w); psout.Reflectance = float4(psout.Diffuse.xyz, finalColor.w); psout.Masks = float4(Color::RGBToLuminance(psout.Diffuse.xyz).xxx, finalColor.w); #else - psout.Albedo = float4(0, 0, 0, finalColor.w); + psout.Albedo = float4(outputAlbedo, finalColor.w); psout.Specular = float4(0, 0, 0, finalColor.w); psout.Reflectance = float4(0, 0, 0, finalColor.w); psout.Masks = float4(0, 0, 0, finalColor.w); diff --git a/package/Shaders/Lighting.hlsl b/package/Shaders/Lighting.hlsl index 32aa25d717..c95520622f 100644 --- a/package/Shaders/Lighting.hlsl +++ b/package/Shaders/Lighting.hlsl @@ -3146,6 +3146,7 @@ PS_OUTPUT main(PS_INPUT input, bool frontFace : SV_IsFrontFace) } else { psout.Diffuse.xyz = shadowColor.xyz; } + outputAlbedo = psout.Diffuse.xyz; baseColor.xyz = 0.0; } else { psout.Diffuse.xyz = color.xyz; diff --git a/package/Shaders/RunGrass.hlsl b/package/Shaders/RunGrass.hlsl index 731bc61591..00354bc083 100644 --- a/package/Shaders/RunGrass.hlsl +++ b/package/Shaders/RunGrass.hlsl @@ -824,6 +824,7 @@ PS_OUTPUT main(PS_INPUT input, bool frontFace : SV_IsFrontFace) } else { diffuseColor.xyz = LightLimitFix::TurboColormap((float)lightCount / MAX_CLUSTER_LIGHTS); } + albedo = diffuseColor; } else { psout.Diffuse = float4(diffuseColor, 1); }