AnvilKitAnvilKit

颜色分级

曝光、对比度、饱和度、白平衡和 3D LUT 颜色分级

色彩分级演示

颜色分级

在色调映射之后应用的最终阶段颜色分级。调整曝光、对比度、饱和度和白平衡,并可选地支持 3D LUT 实现电影感色彩变换。该通道作为单次全屏绘制运行,读取 HDR 缓冲并写入分级后的结果。

配置 (ColorGradingSettings ECS 资源):

参数默认值说明
enabledfalse开关颜色分级(关闭时零 GPU 开销)
exposure1.0曝光乘数(1.0 = 无变化)
contrast1.0对比度乘数(1.0 = 无变化)
saturation1.0饱和度乘数(1.0 = 无变化,0.0 = 灰度)
temperature0.0色温偏移(-1.0 冷色 .. 1.0 暖色)
tint0.0绿-品红色调(-1.0 .. 1.0)
lut_contribution0.0LUT 贡献混合(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.rscolor_grading.wgsl

目录