Files
toddcox-visualize/res/shaders/4d.vert.glsl

41 lines
791 B
GLSL

#version 440
layout(location=1) uniform float time;
layout(location=2) uniform mat4 proj;
layout(location=0) in vec4 pos;
void main() {
float c2 = cos(time * 0.2);
float s2 = sin(time * 0.2);
float c3 = cos(time * 0.3);
float s3 = sin(time * 0.3);
float c4 = cos(time * 0.25);
float s4 = sin(time * 0.25);
mat4 r1 = mat4(
c2, -s2, 0.0, 0.0,
s2, c2, 0.0, 0.0,
0.0, 0.0, 1.0, 0.0,
0.0, 0.0, 0.0, 1.0
);
mat4 r2 = mat4(
c3, 0.0, -s3, 0.0,
0.0, 1.0, 0.0, 0.0,
s3, 0.0, c3, 0.0,
0.0, 0.0, 0.0, 1.0
);
mat4 r3 = mat4(
1.0, 0.0, 0.0, 0.0,
0.0, c4, 0.0, -s4,
0.0, 0.0, 1.0, 0.0,
0.0, s4, 0.0, c4
);
vec4 pos = r2 * r1 * r3 * pos;
gl_Position = proj * vec4(pos.xyz / (1 - pos.w), 1.0);
}