#version 450 #pragma shader_stage(vertex) #extension GL_EXT_shader_explicit_arithmetic_types_int64 : enable #extension GL_EXT_buffer_reference : require #include "graphics_bindings.glsl" layout (location = 0) out vec3 out_WorldPosition; void main() { vec3 points[] = { vec3(-1.0f, -1.0f, 1.0f), vec3(3.0f, -1.0f, 1.0f), vec3(-1.0f, 3.0f, 1.0f), }; gl_Position = vec4(points[gl_VertexIndex], 1.0f); vec4 clipSpace = camera.m_InvProjection * vec4(points[gl_VertexIndex], 1.0f); vec4 worldSpace = camera.m_InvView * (clipSpace / clipSpace.wwww); out_WorldPosition = worldSpace.xyz; }