vert.glsl 899 B

123456789101112131415161718192021222324252627282930313233343536
  1. #version 450
  2. layout(location = 0) in vec3 aPos;
  3. layout(location = 1) in vec3 aNormal;
  4. layout(location = 0) out vec3 FragPos;
  5. layout(location = 1) out vec3 VecPos;
  6. layout(location = 2) out vec3 Normal;
  7. layout(push_constant) uniform constants{
  8. float maxY;
  9. float minY;
  10. float time;
  11. float disco;
  12. mat4 model;
  13. };
  14. layout(binding = 0) uniform UniformBufferObject {
  15. mat4 projection;
  16. } ubo;
  17. void main()
  18. {
  19. float discoScale = sin(time * 10.0) / 10.0;
  20. float distortionX = 1.0 + disco * cos(time * 20.0) / 10.0;
  21. float scale = 1.0 + disco * discoScale;
  22. vec3 scaledPos = aPos;
  23. scaledPos.x = scaledPos.x * distortionX;
  24. scaledPos *= scale;
  25. gl_Position = ubo.projection * model * vec4(scaledPos, 1.0);
  26. FragPos = vec3(model * vec4(aPos, 1.0));
  27. VecPos = aPos;
  28. Normal = normalize(vec3(model * vec4(aNormal, 1.0)));
  29. }