Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const float FLAT_RADIUS          = 64.0;
  2. const float WORLD_RADIUS         = 256.0;
  3. const float WORLD_RADIUS_SQUARED = WORLD_RADIUS*WORLD_RADIUS;
  4.  
  5. void main() {
  6.     vec4 position = gl_ModelViewMatrix * gl_Vertex;
  7.  
  8.     if (gl_Color.a != 0.8) {
  9.         // Not a cloud.
  10.  
  11.         float dist = sqrt(position.x*position.x + position.y*position.y + position.z*position.z) - FLAT_RADIUS;
  12.  
  13.         if (dist > 0.0f) {
  14.             dist *= dist;
  15.             position.y -= WORLD_RADIUS - sqrt(max(1.0 - dist / WORLD_RADIUS_SQUARED, 0.0)) * WORLD_RADIUS;
  16.         }
  17.  
  18.     }
  19.  
  20.     gl_FrontColor = gl_BackColor = gl_Color;
  21.     gl_Position = gl_ProjectionMatrix * position;
  22.     gl_TexCoord[0] = gl_MultiTexCoord0;
  23.     gl_FogFragCoord = gl_Position.z;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement