后处理 (Post process effects)
泛光 (Bloom)
不同颜色对亮度的贡献不一样, 通常可以通过以下公式计算亮度:
通过和设定的阈值进行比较, 提取出高光的区域:
仅保留高光区域的颜色, 非高光区域为黑色.
对高光区域进行高斯模糊, 再将结果加上高光区域.
色调映射 (Tone mapping)
渲染得到的高动态范围 (High Dynamic Range, HDR) 图像无法直接显示在 (Standard Dynamic Range, SDR) 设备上.
因此需要将将其映射到较低的动态范围上, 避免亮部过曝和暗部细节丢失的问题.
vec3 ACES(vec3 color)
{
const float a = 2.51f;
const float b = 0.03f;
const float c = 2.43f;
const float d = 0.59f;
const float e = 0.14f;
return saturate((color * (a * color + b)) / (color * (c * color + d) + e));
}
调色 (Color grading)
调整画面色调.