颜色分级
曝光、对比度、饱和度、白平衡和 3D LUT 颜色分级
颜色分级
在色调映射之后应用的最终阶段颜色分级。调整曝光、对比度、饱和度和白平衡,并可选地支持 3D LUT 实现电影感色彩变换。该通道作为单次全屏绘制运行,读取 HDR 缓冲并写入分级后的结果。
配置 (ColorGradingSettings ECS 资源):
| 参数 | 默认值 | 说明 |
|---|---|---|
enabled | false | 开关颜色分级(关闭时零 GPU 开销) |
exposure | 1.0 | 曝光乘数(1.0 = 无变化) |
contrast | 1.0 | 对比度乘数(1.0 = 无变化) |
saturation | 1.0 | 饱和度乘数(1.0 = 无变化,0.0 = 灰度) |
temperature | 0.0 | 色温偏移(-1.0 冷色 .. 1.0 暖色) |
tint | 0.0 | 绿-品红色调(-1.0 .. 1.0) |
lut_contribution | 0.0 | LUT 贡献混合(0.0 = 无,1.0 = 完全 LUT) |
3D LUT
颜色分级管线使用 32x32x32 的 3D 查找表 (Rgba8Unorm) 进行任意色彩变换。初始化时会生成一个恒等 LUT(每个纹素映射到自身坐标作为颜色),不产生可见变化。要应用自定义颜色分级,请用导出的 .cube 文件或烘焙的 LUT 图像替换 LUT 纹理数据。
lut_contribution 参数控制 LUT 对最终图像的影响程度,允许在解析式颜色调整和基于 LUT 的分级之间进行平滑混合。
use anvilkit_render::renderer::color_grading::ColorGradingSettings;
// 暖色电影感风格
app.insert_resource(ColorGradingSettings {
enabled: true,
exposure: 1.1,
contrast: 1.05,
saturation: 0.9,
temperature: 0.2,
tint: 0.0,
lut_contribution: 0.0,
});文件:color_grading.rs、color_grading.wgsl