Skip to content

Instantly share code, notes, and snippets.

View CatCode79's full-sized avatar
🎮
Making a first-person rpg game for Steam

CatCode79

🎮
Making a first-person rpg game for Steam
View GitHub Profile
@BelmuTM
BelmuTM / raytracer.glsl
Last active April 2, 2024 19:16
GLSL Screen Space Raytracer - Free to use for learning purposes
#define BINARY_REFINEMENT 1
#define BINARY_COUNT 4
#define BINARY_DECREASE 0.5
vec3 diagonal(mat4 mat) { return vec3(mat[0].x, mat[1].y, mat[2].z); }
vec3 projectionOrthogonal(mat4 mat, vec3 v) { return diagonal(mat) * v + mat[3].xyz; }
vec3 viewToScreen(vec3 viewPos) {
return (projectionOrthogonal(gbufferProjection, viewPosition) / -viewPosition.z) * 0.5 + 0.5;
}