123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #version 150
- in vec2 texCoord;
- in float fog_factor;
- in vec3 fN0;
- in vec3 fL0;
- in vec3 fE0;
- in vec3 fN1;
- in vec3 fL1;
- in vec3 fE1;
- out vec4 fColor;
- uniform sampler2D tex;
- uniform float plane_light_on;
- void main() {
- vec4 material_ambient;
- vec4 material_diffuse;
- vec4 material_specular;
- float material_shininess;
- if (texCoord.x > 10) {
- fColor = vec4(0.1, 0.1, 0.1, 1);
- material_ambient = fColor;
- material_diffuse = vec4(1.0, 0.8, 0.0, 1.0);
- material_specular = vec4(1.0, 0.0, 1.0, 1.0);
- material_shininess = 50.0;
- } else {
- fColor = texture(tex, texCoord);
- material_ambient = fColor;
- material_diffuse = fColor;
- material_specular = vec4(0.0, 0.0, 0.0, 0.0);
- material_shininess = 0.0;
- }
-
- vec4 light0_ambient = vec4(0.2, 0.2, 0.2, 1.0);
- vec4 light0_diffuse = vec4(1.0, 1.0, 1.0, 1.0);
- vec4 light0_specular = vec4(1.0, 1.0, 1.0, 1.0);
- vec4 ambient_product0 = light0_ambient * material_ambient;
- vec4 diffuse_product0 = light0_diffuse * material_diffuse;
- vec4 specular_product0 = light0_specular * material_specular;
- vec3 N0 = normalize(fN0);
- vec3 E0 = normalize(fE0);
- vec3 L0 = normalize(fL0);
- vec3 H0 = normalize(L0 + E0);
- vec4 ambient0 = ambient_product0;
- float Kd0 = max(dot(L0, N0), 0.0);
- vec4 diffuse0 = Kd0 * diffuse_product0;
- float Ks0 = pow(max(dot(N0, H0), 0.0), material_shininess);
- vec4 specular0 = Ks0 * specular_product0;
-
- if (dot(L0, N0) < 0.0) {
- specular0 = vec4(0.0, 0.0, 0.0, 1.0);
- }
- vec4 light1_ambient = vec4(0.2, 0.2, 0.2, 1.0);
- vec4 light1_diffuse = vec4(1.0, 1.0, 1.0, 1.0);
- vec4 light1_specular = vec4(1.0, 1.0, 1.0, 1.0);
- vec4 ambient_product1 = light1_ambient * material_ambient;
- vec4 diffuse_product1 = light1_diffuse * material_diffuse;
- vec4 specular_product1 = light1_specular * material_specular;
- vec3 N1 = normalize(fN1);
- vec3 E1 = normalize(fE1);
- vec3 L1 = normalize(fL1);
- vec3 H1 = normalize(L1 + E1);
- vec4 ambient1 = ambient_product0;
- float Kd1 = max(dot(L1, N1), 0.0);
- vec4 diffuse1 = Kd1 * diffuse_product1;
- float Ks1 = pow(max(dot(N1, H1), 0.0), material_shininess);
- vec4 specular1 = Ks1 * specular_product0;
-
- if (dot(L1, N1) < 0.0) {
- specular1 = vec4(0.0, 0.0, 0.0, 1.0);
- }
- fColor = 0.5 * (plane_light_on * (ambient0 + diffuse0 + specular0) +
- (ambient1 + diffuse1 + specular1));
- fColor.a = 1.0;
-
- vec4 fogColor = vec4(0.5, 0.5, 0.5, 1);
- fColor = fColor * fog_factor + fogColor * (1 - fog_factor);
- }
|