# 色调映射
色调映射用于将颜色从原始色调(通常是高动态范围,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
} );
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;
🌏 whitePoint 白点
effect.whitePoint = 16;
🌏 middleGrey 中间灰色系数
effect.middleGrey = 0.6;
🌏 averageLuminance 平均亮度 用于非自适应Reinhard运算符
effect.averageLuminance = 0.01;
🌏 resolution 亮度纹理质量必须是2次幂
effect.resolution = 256;
🌏 minLuminance 最小亮度 防止在黑暗场景中非常高的曝光
effect.minLuminance = 0.01;
🌏 adaptationRate 自适应亮度比例
effect.adaptationRate = 1.0;