123456789101112131415161718192021222324252627282930 |
- #version 150
- in vec4 vPosition;
- in vec2 vTexCoord;
- out vec4 color;
- out vec2 texCoord;
- out float fog_factor;
- uniform int foggy;
- uniform vec3 eye_pos;
- uniform mat4 model_view;
- uniform mat4 projection;
- void main() {
- color = vec4(1.0, 1.0, 1.0, 1.0);
- texCoord = vTexCoord;
- gl_Position = projection * model_view * vPosition / vPosition.w;
- // fog
- if (foggy > 0) {
- // distance
- float dis = (vPosition.x - eye_pos.x) * (vPosition.x - eye_pos.x)
- + (vPosition.y - eye_pos.y) * (vPosition.y - eye_pos.y)
- + (vPosition.z - eye_pos.z) * (vPosition.z - eye_pos.z);
- fog_factor = exp(-dis);
- } else { // not foggy
- fog_factor = 1.0;
- }
- }
|