8bf29bcf899b9ba1700bc79750c269f7502b2fcc
[carveJwlIkooP6JGAAIwe30JlM.git] / shaders / model_character_view.fs
1 uniform sampler2D uTexMain;
2 uniform vec3 uCamera;
3 uniform vec3 uBoard0;
4 uniform vec3 uBoard1;
5
6 in vec4 aColour;
7 in vec2 aUv;
8 in vec3 aNorm;
9 in vec3 aCo;
10 in vec3 aWorldCo;
11
12 #include "common_world.glsl"
13 #include "motion_vectors_fs.glsl"
14
15 void main()
16 {
17 compute_motion_vectors();
18
19 vec3 vfrag = texture( uTexMain, aUv ).rgb;
20
21 // Lighting
22 vec3 halfview = uCamera - aWorldCo;
23 float fdist = length( halfview );
24 halfview /= fdist;
25 fdist -= 0.08;
26
27 vec3 qnorm = normalize(floor(aNorm*2.0)*0.5) + vec3(0.001,0.0,0.0);
28
29 vec3 total_light = newlight_compute_ambient();
30 vec3 world_light = newlight_compute_world_diffuse( qnorm );
31
32 float world_shadow = newlight_compute_sun_shadow();
33 total_light += world_light * world_shadow;
34
35 vfrag = apply_fog( vfrag * total_light, fdist );
36
37 float opacity = clamp( fdist*fdist, 0.0, 1.0 );
38 oColour = vec4(vfrag,opacity);
39 }