Advertisement
Guest User

Untitled

a guest
Jun 4th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #version 400
  2. #define M_PI 3.1415926535897932384626433832795
  3.  
  4. uniform float uAnim;
  5. uniform mat4 ciModelViewProjection;
  6. in vec4 ciPosition;
  7. in vec2 ciTexCoord0;
  8. out float Offset;
  9. out vec3 Normal;
  10.  
  11. float offset(vec2 uv) {
  12.     return (sin(30 * sqrt(pow(0.5 - uv.x, 2) + pow(0.5 - uv.y, 2)) + M_PI * uAnim) + 2 * sin(uv.x * 15.0 - M_PI * uAnim)
  13.     + sin(uv.x * 10.0 + 0.01 * M_PI * uAnim) + cos(uv.y * 7.0 + uv.x * 13 - 0.3 * M_PI * uAnim)) * 0.1;
  14. }
  15.  
  16. void main(void) {
  17.     vec4 pos = ciPosition;
  18.     Offset = offset(ciTexCoord0);
  19.     pos.y = Offset;
  20.     gl_Position = ciModelViewProjection * pos;
  21.  
  22.     float d = 0.0001;
  23.     float dx = (offset(ciTexCoord0 + vec2(d, 0)) - offset(ciTexCoord0)) / d;
  24.     float dz = (offset(ciTexCoord0 + vec2(0, d)) - offset(ciTexCoord0)) / d;
  25.     Normal = normalize(vec3(-dx, 1, -dz));
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement