UDN
Search public documentation:
GammaCorrectionCH
English Translation
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UE3 中的 Gamma 校正
文档变更记录: 由 Daniel Wright 创建。
概述
- 为了补偿各种显示器的非线性响应(输出亮度和输入亮度不成比例)。
- 为了当需要量子化颜色时,在最重要的黑暗的地方获得更好的精确度。因为,人类的眼睛对暗颜色中的较小改变比在亮颜色中的细节敏感。
UE3 中的 Gamma
- 为了在暗的地方获得更好的精确度,把输入颜色贴图存储在 gamma 空间(漫反射、高光等)中。这些贴图使用 sRGB 读取(D3D9 中的 D3DSAMP_SRGBTEXTURE)进行采样,它通过使用图形硬件将 gamma 空间转换为线性空间。这由 SRGB UTexture 属性控制。
- 只要我们有了线性空间颜色,便可以在各种光照等式中使用它,从而获得期望的线性结果。
- 场景颜色渲染目标存储线性颜色。这是很重要的,因为它意味着 alpha 混合发生在线性空间中。如果我们把场景颜色存储在 gamma 空间中,alpha 混合将会发生在那个颜色空间中,那么您获得结果和您期望的结果会相差很远。在线性空间中存储场景颜色的劣势是它需要非常高的精确度,为了防止在暗处出现条带,需要一个 FP 16 的渲染目标。
- 在后期处理链的尾部,在把场景颜色写入到每个像素的8位的渲染目标/缓存之前就对线性场景颜色进行了 Gamma 校正。这是标准的 gamma 校正,用于弥补普通显示器的非线性响应。如果在后期处理链中没有 UberPostProcess 节点,这个过程发生在 UberPostProcessBlendPixelShader.usf 或 GammaCorrectionPixelShader.usf 中。