Files
workinf_Blender_Wasm/docs/status/N-019.md
2026-08-14 22:32:09 -04:00

2.9 KiB
Raw Blame History

N-019 灯光与渲染

状态:BLOCKEDCamera/Light/World/Scene metadata、Camera/Light/World 有界 Main 写回与 Three exposure/shadow 映射已落地Scene 颜色管理 writer 和渲染等价未实现)

已验证切片

  1. N-019-A部分Camera 区分 Perspective/Orthographic/Panoramic/Custom读取 sensor、 shift、clip、panorama 和 DOFLight 读取 energy/exposure/temperature/shadow/shapeWorld 读取环境、exposure 和 mistScene 读取 render engine、display/view/look/exposure/gamma/白平衡。
  2. N-019-A部分Light 与 World 使用严格属性白名单写入真实 Main覆盖 color、energy、 exposure、temperature、shadow、World color/mist已通过 undo/redo 与 save/reopen。
  3. N-019-B部分主线程和 OffscreenCanvas renderer 都优先使用 Scene color-management exposureWorld exposure 仅作旧数据回退Light exposure 转换为强度,castsShadow:false 不再被 Three 强制打开。
  4. N-019-B部分World/Scene Main delta 保留版本化集合,主线程与 Offscreen renderer 对环境颜色、曝光和 scene render settings 变更触发确定性的 renderer rebuild未知 delta 版本和重复 ID 继续拒绝。
  5. 白平衡读取有完整性门Main Light/World 重写若导致 Blender 5.2 tint 序列化为异常近零值, 不暴露垃圾数值而返回 whiteBalanceStatus: BLOCKED
  6. Camera 严格白名单写回覆盖 Perspective/Orthographic、lens/sensor/sensor fit、shift、clip、 ortho scale 和 DOF enable/focus distance/f-stop/blades/rotation/rationear/far 与范围在修改前 拒绝,已通过 undo/redo 和 save/reopen。
  7. N-019-B色温部分useTemperature:true 时,共享 PBR 适配器把 80020000 K 的有界 黑体近似归一到 6500 K 中性白并转换为线性 RGB再乘入 Light color关闭色温时原始颜色 保持不变。主线程与 Offscreen Worker 共用该实现,数值门和原生 temperature 保存重开通过。

仍然阻断

  • N-019-AScene color-management writer直接 DNA 写入会破坏 white balance必须改接 Blender/RNA 颜色管理 API 后才能开放。Camera writer 已完成。
  • N-019-B/CAgX/Standard/Raw 的视觉等价、Area spread、Mist、DOF、 transparent sorting、probe 和高级 shadow 参数。
  • N-019-DCycles/Freestyle/denoise 服务端 job 协议与结果 hash。
  • N-019-Edesktop/Chromium 像素 golden、设备丢失和 1M triangles。
  • N-019-B/C/EVolumeFloat32 NanoVDB WGSL 树遍历、有界积分、有限 temperature/color/emission grid 语义和显式 GPU resident LRU 已有真实 Chromium 数值/图像专项门; 自动缺页重绘、生产视口深度合成和 desktop/Chromium 三视角 golden 仍阻断,不能据此声明发布级体渲染。

验收

npm --prefix web run test:lighting-roundtrip
WEB_TEST_PORT=5319 npm --prefix web run test:e2e -- --grep "N-019 Scene exposure"