Skip to content

Archive

Tag: tonemapping
上一篇总结了SMAA和Clustered shading这两个改进,本篇将讲一下如何支持HDR显示设备,以及一些性能优化。 HDR显示设备 HDR电视已经不是什么新鲜事了,HDR显示器也已经问世。这些HDR显示设备,能达到的最大亮度远超过传统显示器。不过这里存在很大的误解,很多人以为HDR显示器等于在显示器里做tone mapping。然而并不是。HDR显示器并不需要做额外处理,直接拿HDR数据去显示。而tone mapping等,仍然是在程序里做。 传统的后处理流程 原先KlayGE里的post process是这样的。 HDR的渲染结果进入ACES tone mapping,变成LDR的数据,在经过SMAA、gamma矫正和颜色调整后输出到LDR显示设备。 HDR显示设备的重要参数 首先需要提一下HDR显 ...
上一篇讲了新的材质系统。本篇将讲tone mapping的改进。 Tone mapping的进化 KlayGE早在2006年的时候就引入了HDR的流水线。和当年的其他引擎一样,HDR的内容经过渲染,需要通过tone mapping转成LDR之后送去显示。这时候,tone mapping的质量就可以决定最后的画面细节度和对比度。 在KlayGE的发展过程中,tone mapping这个看似简单的步骤经历了多次进化。 Reinhard 早期的普遍做法是一篇叫做Photographic Tone Reproduction for Digital Images的论文,大家就用作者的名字称它为Reinhard tone mapping。这是个经验公式,把HDR到LDR的变换简单的描述了出来。 float3 ReinhardToneMapping(float3 color, float adapted_lum) { con ...
在Napoleon314的强烈推荐下,KlayGE也改用了来自Uncharted 2的Filmic Tonemapping。虽然只要改2行代码,但Filmic Tonemapping所带来的鲜艳颜色和对比度是其他常用tonemapping所不可比拟的,完全消除了那种灰蒙蒙的感觉。贴两张图看看效果: