layout(location = 0) in vec3 inPosition; layout(location = 0) out vec3 ViewDirection; out gl_PerVertex { vec4 gl_Position; }; layout(std140, binding = 0) uniform UniformMatrixData { mat4 proj, view; } umd; void main() { gl_Position = vec4(inPosition.xy, 1.0, 1.0); mat4 rotMatrix = mat4(1, 0, 0, 0, 0, cos(-1.57f), -sin(-1.57f), 0, 0, sin(-1.57f), cos(-1.57f), 0, 0, 0, 0, 1); mat4 invp = inverse(umd.proj); mat3 invm = transpose(mat3(umd.view)); vec3 unpr = (invp * gl_Position).xyz; ViewDirection = invm * unpr; }