34 lines
743 B
GLSL
34 lines
743 B
GLSL
// 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);
|
|
} |