| 123456789101112131415161718192021222324252627282930313233343536 |
- #version 450
- layout(location = 0) in vec3 aPos;
- layout(location = 1) in vec3 aNormal;
- layout(location = 0) out vec3 FragPos;
- layout(location = 1) out vec3 VecPos;
- layout(location = 2) out vec3 Normal;
- layout(push_constant) uniform constants{
- float maxY;
- float minY;
- float time;
- float disco;
- mat4 model;
- };
-
- layout(binding = 0) uniform UniformBufferObject {
- mat4 projection;
- } ubo;
-
- void main()
- {
- float discoScale = sin(time * 10.0) / 10.0;
- float distortionX = 1.0 + disco * cos(time * 20.0) / 10.0;
-
- float scale = 1.0 + disco * discoScale;
-
- vec3 scaledPos = aPos;
- scaledPos.x = scaledPos.x * distortionX;
-
- scaledPos *= scale;
- gl_Position = ubo.projection * model * vec4(scaledPos, 1.0);
- FragPos = vec3(model * vec4(aPos, 1.0));
- VecPos = aPos;
- Normal = normalize(vec3(model * vec4(aNormal, 1.0)));
- }
|