README: precise lineage — Whitted with stochastic sampling, not path tracing

'Path tracing' in graphics literature means Monte Carlo solution of the
rendering equation, with random hemisphere sampling at every diffuse
surface and indirect light transport. card.cc has none of that — the
floor branch in S() returns immediately with a flat ambient term and
casts no new rays. What it actually does is Whitted-style recursive
specular reflection (mirrors only), with distribution-style stochastic
sampling layered on top for soft shadows, depth of field, and AA.

Group the stochastic features (soft shadows, DOF, AA) under that
qualifier; keep mirror reflections, checker floor, and sky gradient
as separate non-stochastic features.
This commit is contained in:
Ole-Morten Duesund 2026-05-28 14:06:55 +02:00
commit fc752cfa0c

View file

@ -1,10 +1,10 @@
# card-raytracer
A study of [Andrew Kensler's "business card raytracer"][aek] — a complete
recursive path-tracer with soft shadows, depth of field, anti-aliasing,
reflections, a checker floor, and a sky gradient, all crammed into a
single C++ source file small enough to print on the back of a business
card.
**Whitted-style raytracer with stochastic sampling** for soft shadows,
depth of field, and anti-aliasing, plus mirror reflections, a checker
floor, and a sky gradient, all crammed into a single C++ source file
small enough to print on the back of a business card.
> **`card.cc` is exactly 1337 bytes.** Yes, **leet**. Verify it yourself:
>