Files
first-voxels/src/shaders/shader.frag
T

39 lines
892 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 Uniforms
{
mat4 _viewMatrix;
mat4 _projMatrixInv;
vec3 _CamPos;
float _Time;
};
//layout(set = 1, binding = 0) uniform texture3D node_tex;
//layout(set = 1, binding = 1) uniform usampler3D node_sampl;
layout(set=1,binding=0) uniform usampler3D nodesTexture;
layout(set=2,binding=0) uniform usampler3D bricksTexture;
// Defines
#define PI 3.141592
#define EPSILON 0.01
#define NEAR 0.01
#define MAX_STEPS 200
// Include
#include "shapes.cginc"
#include "raycasting.cginc"
void main()
{
// Calculate ray direction
vec3 view_dir = (_projMatrixInv * vec4(vert_uv, 0, 1)).xyz;
vec3 ray_dir = normalize(_viewMatrix * vec4(view_dir,0)).xyz;
// Raycast
out_color = vec4(castNodes(_CamPos, ray_dir), 1.0);
}