Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const float FLAT_RADIUS = 64.0;
- const float WORLD_RADIUS = 256.0;
- const float WORLD_RADIUS_SQUARED = WORLD_RADIUS*WORLD_RADIUS;
- void main() {
- vec4 position = gl_ModelViewMatrix * gl_Vertex;
- if (gl_Color.a != 0.8) {
- // Not a cloud.
- float dist = sqrt(position.x*position.x + position.y*position.y + position.z*position.z) - FLAT_RADIUS;
- if (dist > 0.0f) {
- dist *= dist;
- position.y -= WORLD_RADIUS - sqrt(max(1.0 - dist / WORLD_RADIUS_SQUARED, 0.0)) * WORLD_RADIUS;
- }
- }
- gl_FrontColor = gl_BackColor = gl_Color;
- gl_Position = gl_ProjectionMatrix * position;
- gl_TexCoord[0] = gl_MultiTexCoord0;
- gl_FogFragCoord = gl_Position.z;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement