vshader71.glsl 692 B

123456789101112131415161718192021222324252627282930
  1. #version 150
  2. in vec4 vPosition;
  3. in vec2 vTexCoord;
  4. out vec4 color;
  5. out vec2 texCoord;
  6. out float fog_factor;
  7. uniform int foggy;
  8. uniform vec3 eye_pos;
  9. uniform mat4 model_view;
  10. uniform mat4 projection;
  11. void main() {
  12. color = vec4(1.0, 1.0, 1.0, 1.0);
  13. texCoord = vTexCoord;
  14. gl_Position = projection * model_view * vPosition / vPosition.w;
  15. // fog
  16. if (foggy > 0) {
  17. // distance
  18. float dis = (vPosition.x - eye_pos.x) * (vPosition.x - eye_pos.x)
  19. + (vPosition.y - eye_pos.y) * (vPosition.y - eye_pos.y)
  20. + (vPosition.z - eye_pos.z) * (vPosition.z - eye_pos.z);
  21. fog_factor = exp(-dis);
  22. } else { // not foggy
  23. fog_factor = 1.0;
  24. }
  25. }