From 34bc015d3e4f1906ff2a8cd81031fefa49cf85b5 Mon Sep 17 00:00:00 2001 From: AzaezelX Date: Tue, 25 Feb 2025 02:45:53 -0600 Subject: [PATCH] correct high metallic objects lacking color input --- .../BaseGame/game/core/rendering/shaders/gl/lighting.glsl | 4 ++-- Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl b/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl index d64c9d184..e90dd41bd 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl +++ b/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl @@ -226,7 +226,7 @@ float getDistanceAtt( vec3 unormalizedLightVector , float invSqrAttRadius ) vec3 evaluateStandardBRDF(Surface surface, SurfaceToLight surfaceToLight) { //diffuse term - vec3 Fd = surface.albedo.rgb * surface.ao * M_1OVER_PI_F; + vec3 Fd = surface.albedo.rgb * M_1OVER_PI_F; //GGX specular vec3 F = F_Schlick(surface.f0, surface.f90, surfaceToLight.HdotV); @@ -237,7 +237,7 @@ vec3 evaluateStandardBRDF(Surface surface, SurfaceToLight surfaceToLight) if(isCapturing == 1) return mix(Fd + Fr, surface.baseColor.rgb, surface.metalness); else - return Fd + Fr; + return Fd + Fr + surface.f0 * surface.ao; } vec3 getDirectionalLight(Surface surface, SurfaceToLight surfaceToLight, vec3 lightColor, float lightIntensity, float shadow) diff --git a/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl b/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl index 76384394d..5abb7be6c 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl +++ b/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl @@ -227,7 +227,7 @@ float getDistanceAtt( float3 unormalizedLightVector , float invSqrAttRadius ) float3 evaluateStandardBRDF(Surface surface, SurfaceToLight surfaceToLight) { //diffuse term - float3 Fd = surface.albedo.rgb * surface.ao * M_1OVER_PI_F; + float3 Fd = surface.albedo.rgb * M_1OVER_PI_F; //GGX specular float3 F = F_Schlick(surface.f0, surface.f90, surfaceToLight.HdotV); @@ -238,7 +238,7 @@ float3 evaluateStandardBRDF(Surface surface, SurfaceToLight surfaceToLight) if(isCapturing == 1) return lerp(Fd + Fr,surface.baseColor.rgb,surface.metalness); else - return Fd + Fr; + return Fd + Fr + surface.f0 * surface.ao; } float3 getDirectionalLight(Surface surface, SurfaceToLight surfaceToLight, float3 lightColor, float lightIntensity, float shadow)