vshader71.glsl 663 B

1234567891011121314151617181920212223242526272829
  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. float dis = (vPosition.x - eye_pos.x) * (vPosition.x - eye_pos.x)
  18. + (vPosition.y - eye_pos.y) * (vPosition.y - eye_pos.y)
  19. + (vPosition.z - eye_pos.z) * (vPosition.z - eye_pos.z);
  20. fog_factor = exp(-dis);
  21. } else {
  22. fog_factor = 1.0;
  23. }
  24. }