git-svn-id: svn://db.shs.com.ru/libs@677 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-12-11 20:18:55 +00:00
parent d7dc7d16a6
commit 11853c0fed
10 changed files with 515 additions and 383 deletions

View File

@@ -19,6 +19,10 @@ uniform float z_near;
uniform sampler2D tex_0, tex_1, tex_2, tex_3, tex_4;
uniform int lights_start, lights_count;
uniform vec4 fog_color = vec4(0.5, 0.5, 0.5, 1);
uniform vec3 fog_decay = vec3(0, 0.1, 0); // [^0, ^1, ^2]
uniform float fog_density = 0;
const vec3 luma = vec3(0.299, 0.587, 0.114);
const float _pe = 2.4e-7;
@@ -93,7 +97,7 @@ void main(void) {
vec4 v1 = texelFetch(tex_1, tc, 0);
float z = v1.w;
if (z == 1.) {
qgl_FragColor = vec4(0);
qgl_FragColor = vec4(fog_color.rgb, 0);
return;
}
vec4 v0 = texelFetch(tex_0, tc, 0),
@@ -124,7 +128,12 @@ void main(void) {
si = vec3(0.);
for (int i = 0; i < lights_count; ++i)
calcLight(lights_start + i, normal, v);
vec3 res_col = max(vec3(0), li * diffuse + si * specular + emission);
qgl_FragColor = vec4(max(vec3(0), li * diffuse + si * specular + emission), alpha);
//qgl_FragColor. = vec3(alpha);
float plen = length(pos.xyz);
float fog = clamp(dot(fog_decay, vec3(1, plen, plen*plen)) * fog_color.a * fog_density, 0, 1);
res_col = mix(res_col, fog_color.rgb, fog);
qgl_FragColor = vec4(res_col, alpha);
//qgl_FragColor.rgb = vec3(z);
}