Click and drag to draw. Hit space to render, z to show/hide brush controls, and x to show/hide quality controls. WARNING: changing resolution will clear the canvas. After using a slider, you might need to click somewhere else for scratch to resume registering your inputs. Features: volumetrics, 3x angular scaling, dda, soft shadows, tinted 'glass', relatively scene independent performance (more occluders = higher performance as rays stop earlier) Default is 101574 rays total at 90x120 -> just 17% more rays than my ray tracer's default with 4x more pixels and much less noise!
use turbowarp (turbowarp.org/1052920670) for faster results and 'real time' mode Settings: - resolution: canvas and render resolution (preset number, not real scale) - c0 length: length of the first cascade's rays (/20 for finer control) - real time mode: auto refreshes the screen - num cascades: number of cascades, higher allows light to reach further - ray multiplier: the number of rays in the next cascade relative to the last - num c0 rays: the number of rays in the first cascade - interval scaling: the factor that ray length increases by between cascades (/2 for finer control) update 2/9/25: support negative emission and absorption (still requires manually changing slider range), remove unused math update 2/10/25: fix boundary problems, better preview update 7/15/25: more settings update 8/12/25: fix drawing list size bug lodev.org/cgtutor/raycasting.html May implement variable c0 scaling in the future