16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-22 15:09:19 +02:00

Merge pull request #11 from antonisauren/tmj-master

Specular/glossines/metalic mapping added to all fragment shaders
This commit is contained in:
tmj-fstate
2020-03-01 03:21:03 +01:00
committed by GitHub
15 changed files with 643 additions and 6 deletions

View File

@@ -42,6 +42,7 @@ float calc_shadow()
#endif
}
float glossiness = 1.0;
// [0] - diffuse, [1] - specular
// do magic here
vec2 calc_light(vec3 light_dir, vec3 fragnormal)
@@ -50,7 +51,7 @@ vec2 calc_light(vec3 light_dir, vec3 fragnormal)
vec3 halfway_dir = normalize(light_dir + view_dir);
float diffuse_v = max(dot(fragnormal, light_dir), 0.0);
float specular_v = pow(max(dot(fragnormal, halfway_dir), 0.0), max(abs(param[1].w), 0.01)) * diffuse_v;
float specular_v = pow(max(dot(fragnormal, halfway_dir), 0.0), max(glossiness, 0.01)) * diffuse_v;
return vec2(diffuse_v, specular_v);
}
@@ -106,6 +107,8 @@ vec2 calc_headlights(light_s light, vec3 fragnormal)
return part * atten * lightintensity;
}
bool metalic = false;
vec3 apply_lights(vec3 fragcolor, vec3 fragnormal, vec3 texturecolor, float reflectivity, float specularity, float shadowtone)
{
fragcolor *= param[1].x;
@@ -150,15 +153,15 @@ vec3 apply_lights(vec3 fragcolor, vec3 fragnormal, vec3 texturecolor, float refl
}
fragcolor += emissioncolor;
vec3 specularcolor = specularamount * lights[0].color;
if (param[1].w >= 0.0)
if ((param[1].w < 0.0) || (metalic == true))
{
fragcolor *= texturecolor;
fragcolor += specularcolor;
fragcolor *= texturecolor;
}
else
{
fragcolor += specularcolor;
fragcolor *= texturecolor;
fragcolor += specularcolor;
}
return fragcolor;