# N-019 灯光与渲染 状态:`BLOCKED`(Camera/Light/World/Scene metadata、Light/World 有界 Main 写回与 Three exposure/shadow 映射已落地;完整 Camera/颜色管理 writer 和渲染等价未实现) ## 已验证切片 1. N-019-A(部分):Camera 区分 Perspective/Orthographic/Panoramic/Custom,读取 sensor、 shift、clip、panorama 和 DOF;Light 读取 energy/exposure/temperature/shadow/shape;World 读取环境、exposure 和 mist;Scene 读取 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 exposure,World exposure 仅作旧数据回退;Light exposure 转换为强度,`castsShadow:false` 不再被 Three 强制打开。 4. 白平衡读取有完整性门:Main Light/World 重写若导致 Blender 5.2 tint 序列化为异常近零值, 不暴露垃圾数值而返回 `whiteBalanceStatus: BLOCKED`。 ## 仍然阻断 - N-019-A:Camera 与 Scene color-management writer;直接 DNA 写入会破坏 white balance, 必须改接 Blender/RNA 颜色管理 API 后才能开放。 - N-019-B/C:AgX/Standard/Raw 的视觉等价、temperature 颜色、Area spread、Mist、DOF、 transparent sorting、probe 和高级 shadow 参数。 - N-019-D:Cycles/Freestyle/denoise 服务端 job 协议与结果 hash。 - N-019-E:desktop/Chromium 像素 golden、设备丢失和 1M triangles。 ## 验收 ```bash npm --prefix web run test:lighting-roundtrip WEB_TEST_PORT=5319 npm --prefix web run test:e2e -- --grep "N-019 Scene exposure" ```