From d3bfccdc4f90aabfa3493b0db0e6fe357a527485 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 1 Nov 2025 21:07:26 -0700 Subject: Notes --- shaders/cook_torrance.frag | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'shaders/cook_torrance.frag') diff --git a/shaders/cook_torrance.frag b/shaders/cook_torrance.frag index c0c666c..f6c6048 100644 --- a/shaders/cook_torrance.frag +++ b/shaders/cook_torrance.frag @@ -152,8 +152,8 @@ vec3 cook_torrance_IBL( vec3 albedo, float metallic, float roughness, float occlusion, float NdotV, vec3 irradiance, vec3 prefiltered_env, vec2 BRDF_env) { - vec3 F0 = mix(vec3(0.04), albedo, metallic); - vec3 F = fresnel_schlick_roughness(F0, NdotV, roughness); + vec3 F0 = mix(vec3(0.04), albedo, metallic); // albedo = F0 for metals + vec3 F = fresnel_schlick_roughness(F0, NdotV, roughness); vec3 Kd = (vec3(1.0) - F) * (1.0 - metallic); // A non-HDR environment map essentially has the 1/pi baked in as it does not // use physical units. See: @@ -204,6 +204,11 @@ void main() // to use all maps. // https://sketchfab.com/models/b81008d513954189a063ff901f7abfe4 #if HAS_NORMAL_MAP + // Spec: "After dequantization, texel values MUST be mapped as follows: + // red [0.0 .. 1.0] to X [-1 .. 1], + // green [0.0 .. 1.0] to Y [-1 .. 1], + // blue (0.5 .. 1.0] to Z ( 0 .. 1]. + // Normal textures SHOULD NOT contain blue values less than or equal to 0.5." vec3 normalMapSample = texture(NormalMap, Texcoord).xyz * 2.0 - 1.0; vec3 N = get_ws_normal(Normal, normalMapSample); #elif HAS_NORMALS -- cgit v1.2.3