ludic/changes/contact-darkening.md
Orkuncakilkaya 4975c60ac1 feat(render3d): the lake answers to a body standing in it
water.frag takes u_wade - a point and a strength - and puts spreading rings and a
patch of churn into the surface normals there, so a wader marks the water and a
swimmer works the whole of it. It is one uniform in a fragment stage that was
already running, applied after the distance flattening so a disturbance close to
the camera survives it, and it measures no frame cost at all.

Also records the two renderer features that shipped without a changeset.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-19 20:23:27 +03:00

584 B

bump: patch type: feat Things sit ON the ground rather than hovering over it. The screen-space GI pass takes a second, much tighter set of taps (a 0.40 m radius that grows with distance, with a range check so a far surface behind a near one cannot darken it) and folds the result into the ambient occlusion it already had. The wide radius answers "how enclosed is this", which a trunk meeting grass barely registers; the tight one answers "is something touching here", which is the shadow the eye looks for to place an object. It is eight taps on a buffer the pass had already bound.