diff --git a/examples/test/shaders/test.frag b/examples/test/shaders/test.frag index 997780d..1282bf8 100644 --- a/examples/test/shaders/test.frag +++ b/examples/test/shaders/test.frag @@ -49,13 +49,13 @@ vec3 estimate_scene_normal(vec3 p) { vec3 raymarch(vec3 o, vec3 d, float start, float end) { float t = start; for (int i = 0; i < MAX_STEPS; i++) { - float dist = scene_f(o + d*t); - if (dist < EPSILON || t > end) - return vec3(t, i, 0.); + SceneResult sr = scene_f(o + d*t); + if (sr.d < EPSILON || t > end) + return vec3(t, sr.mat_idx, i); - t += dist; + t += sr.d; } - return vec3(end, MAX_STEPS, 0.); + return vec3(end, -1., MAX_STEPS); } vec4 shade(vec3 p) { @@ -77,7 +77,8 @@ void main() { vec3 result = raymarch(eye, dir, NEAR_D, FAR_D); float depth = result.x; - float iters = result.y; + float mat_idx = result.y; + float iters = result.z; if (depth >= FAR_D) { color = vec4(1.0, 0.5, 1.0, 1.0); return;