Updates post-M2

This commit is contained in:
connor committed 2026-10-15 11:30:54 -04:00
1 parent 0ef9952ae4
commit 7a3088e847
8 files changed
+363 -49

No files matched your search

+19 -12
View File
@@ -30,23 +30,25 @@ step up is visible at a glance.
| Tier | Lighting | Camera | RTX 3060 | lavapipe (CPU) | Sample |
|---|---|---|---|---|---|
| L0 / C0 | Lambertian surfaces, Earth's and the Moon's limbs exact, eclipse by Earth and the Moon, no shadows on the target, no light from Earth | Pinhole, absolute radiometry to 12-bit DN, no noise or blur | 0.9–1.3 ms | 6–69 ms | [![L0/C0](docs/images/l0-c0.png)](docs/images/l0-c0.png) |
| L0 / C0 | Lambertian surfaces, Earth's and the Moon's limbs exact, eclipse by Earth and the Moon, no shadows on the target, no light from Earth | Pinhole, absolute radiometry to 12-bit DN, no noise or blur | 0.9–1.3 ms | 5–68 ms | [![L0/C0](docs/images/l0-c0.png)](docs/images/l0-c0.png) |
| L1 / C0 | Adds Earth's surface from Blue Marble and the Moon's from the LRO Camera's map, the Moon's measured phase curve, shadows on the target, Earthshine and Moonshine, eclipses seen on Earth and the Moon, the Sun's limb darkening | Pinhole, absolute radiometry to 12-bit DN, no noise or blur | 1.3–2.3 ms | 12–114 ms | [![L1/C0](docs/images/l1-c0.png)](docs/images/l1-c0.png) |
Times are one 1920 x 1080 RGB frame end to end (`submit` to `wait_view`, with
the DN image ready to read), median of criterion runs, over models from 12 to
752,000 triangles: the box-wing, Landsat 8 and ICESat-2. The GPU's own work is
0.3 to 0.6 ms of that. `wait`, which copies the 12 MB image into a new `Vec`,
takes 1.6 to 2.0 ms on the RTX 3060 and 7.7 to 82 ms on lavapipe. lavapipe ran
on the Intel Core Ultra 9 285K's 24 cores. Run to run, the RTX 3060's times
vary by about 5 %, and lavapipe's by up to 15 % between sessions. The sample is the Landsat 8 example scene
(`examples/scenes/landsat8.toml`). `cargo bench -p resolved` reproduces the
numbers, and `resolved render --timings N` shows the per-pass split.
0.7 to 0.9 ms of that at L0 and 1.1 to 1.5 ms at L1, of which 0.48 ms is the
sensor pass writing the image into memory the CPU reads. `wait`, which copies
the 12 MB image into a new `Vec`, takes 1.8 to 2.0 ms on the RTX 3060 at L0
and 2.3 to 3.1 ms at L1, and on lavapipe 7 to 77 ms and 14 to 144 ms. L1's
setup also loads the Earth and Moon maps, about 1 s, once. lavapipe ran on the
Intel Core Ultra 9 285K's 24 cores. Run to run, the RTX 3060's times vary by
about 5 %, and lavapipe's by up to 15 % between sessions. The samples are the
Landsat 8 example scene (`examples/scenes/landsat8.toml`). `cargo bench -p
resolved` reproduces the numbers (L1 when the maps are in `data/`), and
`resolved render --timings N` shows the per-pass split.
L1 adds Earth's surface, shadows on the target, Earthshine and Moonshine,
the Moon's albedo map and phase curve, the Sun's limb darkening and eclipses
seen on Earth and the Moon; its row comes with its measurements. Planned: C1
and C2 add pixel-area sampling, lens distortion, blur and detector noise; L2
adds measured materials and the atmosphere; L3 is path traced.
Planned: C1 and C2 add pixel-area sampling, lens distortion, blur and detector
noise; L2 adds measured materials and the atmosphere; L3 is path traced.
## Usage
@@ -123,6 +125,11 @@ cargo run --release -p resolved-cli -- render \
--out frame.png --preview preview.png --timings 50
```
`scripts/make-gallery.sh` renders every example scene at L0 and L1 into
`gallery/`, skipping any whose model or data is missing, and
`scripts/serve-gallery.py` serves the result as a web page on port 8000 of
every interface, each scene captioned from its file.
- `--out` writes raw DN as a 16-bit PNG, shifted up to fill 16 bits as
cameras usually store them: a 12-bit DN is the stored value divided by 16.
It is linear, so it looks dark next to the preview.