Skip to content

Commit

Permalink
Merge pull request #11672 from tagcup/fix_oren_nayar
Browse files Browse the repository at this point in the history
Fix Oren-Nayar diffuse.
  • Loading branch information
groud authored Sep 29, 2017
2 parents dee1001 + 8cb67b0 commit 2c5fa09
Showing 1 changed file with 3 additions and 2 deletions.
5 changes: 3 additions & 2 deletions drivers/gles3/shaders/scene.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -920,6 +920,7 @@ LIGHT_SHADER_CODE
#elif defined(DIFFUSE_OREN_NAYAR)

{
// see http://mimosa-pudica.net/improved-oren-nayar.html
float LdotV = dot(L, V);
float NdotL = dot(L, N);
float NdotV = dot(N, V);
Expand All @@ -928,10 +929,10 @@ LIGHT_SHADER_CODE
float t = mix(1.0, max(NdotL, NdotV), step(0.0, s));

float sigma2 = roughness * roughness;
vec3 A = 1.0 + sigma2 * (diffuse_color / (sigma2 + 0.13) + 0.5 / (sigma2 + 0.33));
vec3 A = 1.0 + sigma2 * (- 0.5 / (sigma2 + 0.33) + 0.17*diffuse_color / (sigma2 + 0.13) );
float B = 0.45 * sigma2 / (sigma2 + 0.09);

light_amount = max(0.0, NdotL) * (A + vec3(B) * s / t) / M_PI;
light_amount = diffuse_color * dotNL * (A + vec3(B) * s / t) / M_PI;
}

#elif defined(DIFFUSE_TOON)
Expand Down

0 comments on commit 2c5fa09

Please sign in to comment.