Yet another Cornell Box: a path tracer in a single fragment shader on Shadertoy. Direct light sampling is used to reduce noise. The scene is rendered using 12 samples per pixel.

The path tracer is based on “Raytracing in one weekend” by @Peter_shirley. I have optimized the shader for the Cornell Box and added direct light sampling to reduce noise. Only Lambertian solid materials and cubes are supported.

You can find (the full source of) the fragment shader on Shadertoy: https://www.shadertoy.com/view/3dfGR2.

Yet another Cornell Box