44 lines
1.7 KiB
Bash
Executable File
44 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
# Renders every example scene at lighting L0, L1 and L2, with camera C1, into gallery/
|
|
# (gitignored), as <scene>-L0.png, <scene>-L1.png and <scene>-L2.png previews made
|
|
# with --pretty: white balanced, with a tone curve, from exposures that keep the raw
|
|
# signal short of saturation. A scene whose model, maps or kernels are missing is
|
|
# skipped with the reason. Then the showcase movie, gallery/movie.mp4 (resolved-movie,
|
|
# which needs ffmpeg). View the result with scripts/serve-gallery.py.
|
|
#
|
|
# Needs: scripts/fetch-models.sh for the NASA models; scripts/fetch-earth.sh,
|
|
# scripts/fetch-clouds.sh, scripts/fetch-moon.py and scripts/fetch-stars.py for L1;
|
|
# scripts/fetch-dated-clouds.py for each scene's day for L2 (2024-07-15, 2025-03-14,
|
|
# 2026-01-03 and 2026-08-12); and astrokit's kernels for scenes given by epoch.
|
|
|
|
set -e
|
|
cd "$(dirname "$0")/.."
|
|
|
|
cargo build --quiet --release -p resolved-cli -p resolved-showcase
|
|
mkdir -p gallery
|
|
|
|
made=0
|
|
skipped=0
|
|
for scene in examples/scenes/*.toml; do
|
|
name=$(basename "$scene" .toml)
|
|
for tier in L0 L1 L2; do
|
|
out="gallery/$name-$tier.png"
|
|
if error=$(./target/release/resolved render --scene "$scene" --lighting "$tier" \
|
|
--camera C1 --preview "$out" --pretty 2>&1); then
|
|
echo "$out"
|
|
made=$((made + 1))
|
|
else
|
|
echo "skipped $name at $tier: ${error#error: }"
|
|
rm -f "$out"
|
|
skipped=$((skipped + 1))
|
|
fi
|
|
done
|
|
done
|
|
echo "$made images in gallery/, $skipped skipped"
|
|
|
|
if error=$(./target/release/resolved-movie --out gallery/movie.mp4 2>&1); then
|
|
echo "gallery/movie.mp4"
|
|
else
|
|
echo "skipped the movie: ${error#error: }"
|
|
fi
|