# 色调映射

色调映射用于将颜色从原始色调(通常是高动态范围,HDR)映射到目标色调(通常是低动态范围,LDR),映射的结果通过介质进行显示,在人眼的视觉特性的作用下,达到尽可能复原原始场景的效果。

一共支持5种算法分别介绍一下
ToneMappingMode.REINHARD - Simple Reinhard tone mapping.
参考链接 (opens new window)

ToneMappingMode.REINHARD2 - Modified Reinhard tone mapping.

ToneMappingMode.REINHARD2_ADAPTIVE - Simulates the optic nerve responding to the amount of light it is receiving.

ToneMappingMode.OPTIMIZED_CINEON - Optimized filmic operator by Jim Hejl and Richard Burgess-Dawson.
参考链接 (opens new window)

ToneMappingMode.ACES_FILMIC - ACES tone mapping with a scale of 1.0/0.6.

# 初始化

使用ToneMapping类添加色调映射。

import { 
    
    Postprocessing, 
    ToneMapping, 
    ToneMappingMode

} from '@tx3d/postprocessing';

// 创建后处理类
const postprocessing = new Postprocessing( engine );

// 添加后处理效果
const effect = postprocessing.addEffect( ToneMapping, {

    mode: ToneMappingMode.REINHARD2_ADAPTIVE,
    resolution: 256,
    whitePoint: 16.0,
    middleGrey: 0.6,
    minLuminance: 0.01,
    averageLuminance: 0.01,
    adaptationRate: 1.0

} );
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

提示

色调映射初始化参数,详见ToneMappingParams

# 属性

🌏 mode 色调映射算法

effect.mode = ToneMappingMode.REINHARD2;
1

🌏 whitePoint 白点

effect.whitePoint = 16;
1

🌏 middleGrey 中间灰色系数

effect.middleGrey = 0.6;
1

🌏 averageLuminance 平均亮度 用于非自适应Reinhard运算符

effect.averageLuminance = 0.01;
1

🌏 resolution 亮度纹理质量必须是2次幂

effect.resolution = 256;
1

🌏 minLuminance 最小亮度 防止在黑暗场景中非常高的曝光

effect.minLuminance = 0.01;
1

🌏 adaptationRate 自适应亮度比例

effect.adaptationRate = 1.0;
1
Last Updated: 3/10/2023, 1:05:22 PM