Doc: Adopt CSV CIE 1931 blackbody reference

This commit is contained in:
wyj committed 2026-09-12 15:29:36 -04:00
1 parent ce9c4bc16f
commit 2d01c2c101
1 file changed
+25
+25
View File
@@ -1014,6 +1014,31 @@ p99 约 3744px,最大相邻三角形跳跃 p99 也约 3744px。因而不能把
真实流式端到端数据验证分桶成本。完整命令、hash、输出保护和原始记录见 真实流式端到端数据验证分桶成本。完整命令、hash、输出保护和原始记录见
[dummy chunk 统计](benchmarks/dummy_psf_chunks_2026-09-11/README.md)。 [dummy chunk 统计](benchmarks/dummy_psf_chunks_2026-09-11/README.md)。
2026-09-12,黑洞渲染的黑体颜色计算改为以仓库内数值 LUT 为默认实现,取代原先
`optics.c` 中的 Wyman 解析 CIE 拟合。正常区使用仓库唯一的
`assets/blackbody/cie1931_2deg_xyz_1024.grbblut`:以 40 位精度把 Planck 谱和
`assets/CIE_xyz_1931_2deg.csv` 的 360--830 nm、1 nm 分段线性 CIE 数据积分,生成覆盖
`[670.146556,101408.88] K` 的 1024 个 `log(T)` 等距 XYZ 节点。`GRBBLUT3` header
固定标识该 reference,loader 校验 magic/version/endianness/物理常数/范围/长度与 payload
checksum,并拒绝旧的 Wyman/5 nm 表与 runtime 造表。表内使用四点三次 Lagrange 插值,
在全部 1023 个区间中点相对独立 Gauss-16 积分的最大 XYZ channel 相对误差为
`5.4633e-5`,没有负 XYZ。由 1 nm 线性插值自身约 `3.2e-4` 的最坏误差估计,正常区采用
`1e-4` LUT 内部限与 `5e-4` 整体误差预算,避免继续追逐缺乏物理意义的 `1e-6`。
两端使用同一 CSV reference 的表外模型。高温端使用连续积分得到的
`A T+B+C/T` Rayleigh--Jeans 展开,在 `[Tmax,10Tmax]` 最大 XYZ 相对误差为 `1.6635e-5`。
低温端针对 X/Y 的 830 nm 端点和 Z 的 650 nm 零端点分别展开:在 `4.097321 K` 以下使用
crossover 锚定、在 `T -> 0` 趋于极限的端点式,其上用六段八次
`1/T -> log(scaled XYZ)` Chebyshev--Lobatto 插值接到 LUT。低温端点段/过渡段的最大 XYZ
相对误差分别为 `6.69e-5`/`8.16e-5`,因而三段均满足 `1e-4` 内部限;log 输出避免把极端
低温的线性下溢误解为拟合硬下限。
最终 legacy Wyman/5 nm 与 CSV LUT 的 1920x1080 double-HDR 比较显示,每通道峰值归一化
最大绝对变化为 R `9.00e-3`、G `7.02e-3`、B `8.12e-4`;这是 reference 升级本身造成的
预期变化,而不是 LUT 插值误差。旧 Wyman/5 nm 积分实现、可切换的 integral/fixed/LUT
A/B 后端、有界性能证据与观测温度采样器保留在实验分支
`codex/blackbody-cost-experiment`(tag `blackbody-cost-experiment-2026-09-12`)。
--- ---