// shader.frag #version 450 // Variables layout(location=0) in vec2 vert_uv; layout(location=0) out vec4 out_color; layout(set=0, binding=0) uniform texture2D tex; layout(set=0, binding=1) uniform sampler tex_smp; layout(set=1, binding=0) uniform Uniforms { mat4 view_matrix; mat4 proj_matrix_inv; vec3 cam_pos; }; // Defines #define PI 3.141592 #define EPSILON 0.01 #define NEAR 0.01 #define MAX_STEPS 200 // Include #include "shapes.cginc" #include "raymarching.cginc" void main() { // Calculate ray direction vec3 view_dir = (proj_matrix_inv * vec4(vert_uv, 0, 1)).xyz; vec3 ray_dir = normalize(view_matrix * vec4(view_dir,0)).xyz; // Calculate color out_color = vec4(raymarch(cam_pos, ray_dir), 1); }