#version 330 core layout(location = 0) in vec3 aPos; layout(location = 1) in vec3 aColor; layout(location = 2) in vec2 aTextCoord; out vec4 TexColor; out vec2 TexCoord; uniform vec4 color; uniform mat4x4 lookAt; uniform mat4x4 projection; void main() { float as = sin( color.w ); float ac = cos( color.w ); mat4x4 rotation = mat4x4( ac,-as,0,0, as,ac,0,0, 0,0,1,0, 0,0,0,1 ); vec4 temp = (vec4(aPos.xyz,1.0) + vec4(color.yz-vec2(0.5,0.5),0.0,0.0)) * rotation; gl_Position = projection * lookAt * temp; TexColor = color; TexCoord = aTextCoord; } //struct