用途
该技能用于对场景线性的 Three.js WebGPU 图像进行测光和色彩分级,涵盖固定曝光与自动曝光的选择、GPU 端 EV 适配、色调映射和输出转换的归属划分。
主要能力
文档以六个步骤组织工作流程:
-
锁定色彩契约:命名场景线性工作基色、辐射尺度、alpha 约定及所有进入被摄信号的生成器。在测光辐射之前,先通过材质/光照模型转换辐照度。将灯光、环境、大气、自发光材质、泛光源和光学效果应用统一的物理或感知辐射尺度。将目标或视图划分为曝光控制组,每组仅指派一个曝光负责人、一个色调映射负责人和一个输出转换负责人。
-
选择满足图像需求的最经济测光方案:按依赖顺序选择:固定 EV;分层网格或瓦片采样器用于普通全局自动曝光;当每个像素或精确蒙版都必须参与时的精确全像素层级归约;仅当其他功能消费其层级或空间统计时才使用对数亮度金字塔;仅当百分位裁剪修复了已证明的离群值或双峰光照失败时才使用直方图。默认从已解析的预泛光 HDR 取样。
-
构建所选曝光控制器:固定 EV 直接绑定已创作或校准的值,不分配测光、归约、目标发布或适配状态。自动曝光则在 GPU 状态中保留 targetEV、currentEV、有效性和帧索引,每渲染帧推进适配。给出仅用于自动曝光的生产者调度顺序。
-
在呈现前处理不连续:为切换提供已创作的保持、重置或固定 EV 策略。将辐射基、工作基色、量、非线性归一化或曝光关键变化视为新的曝光纪元。对纯正尺度变化 L_new = k * L_old,通过将固定 EV 或两个自动状态偏移 -log2(k) 来保持显示乘积:currentEV_new = currentEV_old - log2(k),targetEV_new = targetEV_old - log2(k)。
-
组装单一最终图像链:除非 LUT 声明了另一个完整契约,否则使用领域顺序:场景线性 HDR -> 曝光 -> 色调映射 -> 色调映射线性 LUT(当允许时)-> alpha 恢复 -> 输出转换。非线性 RGB 操作前解预乘,之后重新预乘。使用显式 renderOutput() 时,设置 RenderPipeline.outputColorTransform = false;更改输出节点或输出归属后标记 renderPipeline.needsUpdate = true。
-
验证所选分支:捕获确定性夹具,包括固定曝光的校准卡、自动曝光的键灰卡、采样自动测光的蒙版/小发射器/节奏用例、直方图的下溢/溢出/可接受百分位区间、LUT 的身份 LUT 等,并测量每个已采用测光或 LUT 在目标预热后的配对图增量。
使用方式
文档提及相关路由:使用 $threejs-image-pipeline 处理共享 MRT、时间历史、自适应 DPR 和瞬态生命周期;使用 $threejs-bloom 处理眩光源归属;使用 $threejs-visual-validation 获取固定视图图像证据。具体安装命令暂未提供。
适用场景
适用于需要在 Three.js WebGPU 渲染中精确控制曝光与色彩分级管线的开发场景。
限制
具体安装命令、版本依赖和许可证信息暂未提供。部分引用文档(如色彩管线参考、GPU 曝光状态、色调映射与 LUT、身份 3D-LUT 示例)在本资料中未展开其具体内容。