Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #version 440
  2.  
  3. out vec2 uv;
  4. out vec3 normal;
  5.  
  6. uniform mat4 uTransform;
  7. uniform sampler2D uHeightmap;
  8.  
  9. const int num_verts = 511;
  10. const float scale = 1.0 / num_verts;
  11.  
  12. vec2[] offsets = vec2[](
  13.     vec2(0,0),
  14.     vec2(1,0),
  15.     vec2(1,1),
  16.     vec2(0,0),
  17.     vec2(0,1),
  18.     vec2(1,1)
  19. );
  20.  
  21. void main()
  22. {
  23.     int idx = gl_VertexID / 6;
  24.     int off = gl_VertexID % 6;
  25.  
  26.     int x = idx / num_verts;
  27.     int y = idx % num_verts;
  28.  
  29.     vec2 pos = vec2(float(x), float(y)) + offsets[off];
  30.     uv = scale * pos;
  31.  
  32.     float h = texture(uHeightmap, uv).x;
  33.     gl_Position = uTransform * vec4(pos.x, h, pos.y, 1);
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement