Skip to content

Commit

Permalink
Terrain High shader: Use Blinn-Phong lighting
Browse files Browse the repository at this point in the history
Co-Authored-By: MaNGusT- <bart2@bk.ru>
  • Loading branch information
past-due and MaNGusT- committed Sep 8, 2023
1 parent a9d7606 commit 0d0350c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
7 changes: 4 additions & 3 deletions data/base/shaders/terrain_combined_high.frag
Expand Up @@ -123,11 +123,12 @@ vec4 doBumpMapping(BumpData b, vec3 lightDir, vec3 halfVec) {
float lambertTerm = max(dot(b.N, L), 0.0); // diffuse lighting
// Gaussian specular term computation
vec3 H = normalize(halfVec);
float exponent = acos(dot(H, b.N)) / 0.33;
float gaussianTerm = exp(-(exponent * exponent));
float blinnTerm = clamp(dot(b.N, H), 0.f, 1.f);
blinnTerm = lambertTerm != 0.0 ? blinnTerm : 0.0;
blinnTerm = pow(blinnTerm, 16.f);
float visibility = getShadowVisibility();

vec4 res = b.color*(ambientLight + visibility*diffuseLight*lambertTerm) + visibility*b.gloss*b.gloss*specularLight*gaussianTerm*lambertTerm;
vec4 res = b.color*(ambientLight + visibility*diffuseLight*lambertTerm) + visibility*b.gloss*b.gloss*specularLight*blinnTerm*lambertTerm;

return vec4(res.rgb, b.color.a);
}
Expand Down
7 changes: 4 additions & 3 deletions data/base/shaders/vk/terrain_combined_high.frag
Expand Up @@ -65,11 +65,12 @@ vec4 doBumpMapping(BumpData b, vec3 lightDir, vec3 halfVec) {
float lambertTerm = max(dot(b.N, L), 0.0); // diffuse lighting
// Gaussian specular term computation
vec3 H = normalize(halfVec);
float exponent = acos(dot(H, b.N)) / 0.33;
float gaussianTerm = exp(-(exponent * exponent));
float blinnTerm = clamp(dot(b.N, H), 0.f, 1.f);
blinnTerm = lambertTerm != 0.0 ? blinnTerm : 0.0;
blinnTerm = pow(blinnTerm, 16.f);
float visibility = getShadowVisibility();

vec4 res = b.color*(ambientLight + visibility*diffuseLight*lambertTerm) + visibility*b.gloss*b.gloss*specularLight*gaussianTerm*lambertTerm;
vec4 res = b.color*(ambientLight + visibility*diffuseLight*lambertTerm) + visibility*b.gloss*b.gloss*specularLight*blinnTerm*lambertTerm;

return vec4(res.rgb, b.color.a);
}
Expand Down

0 comments on commit 0d0350c

Please sign in to comment.