36 lines
899 B
GLSL
36 lines
899 B
GLSL
#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)));
|
|
} |