layout (location = 0) in vec3 aPos; uniform mat4 view; // camera view without translation uniform mat4 projection; out vec3 Direction; void main() { Direction = aPos; vec4 pos = projection * view * vec4(aPos, 1.0); gl_Position = pos.xyww; // keeps the sky at depth 1.0 }