HDR对人眼的模拟介绍

"现实中,当人由黑暗地方走到光亮地方,眼睛会自动眯起来。人在黑暗的地方,为了看清楚物件,瞳孔会很大张开,以吸收更多光线。当突然走到光亮地方,瞳孔来不及收缩,所以唯有眯上眼睛,保护视网膜上的视神经。  


而电脑是死物,唯有靠HDR技术模拟这效果——人眼自动适应光线变化的能力。方法是快速将光线渲染得非常光亮,然后将亮度逐渐降低。而HDR的最终效果是亮处的效果是鲜亮,而黑暗处的效果是能分辨物体的轮廓和深度,而不是以往的一团黑。"


上面这段话来自于百度百科,描述了我们的人眼对于光亮的变化过程,重要的是,现在的渲染技术怎么来模拟这个过程。这个百科提到了一些东西,但是遗漏了一些内容。


在电脑程序过程中,我们实际上需要如下的流程:

1、把场景绘制到framebuffer中,这个framebuffer需要更高精度的,如GL中的RGBA16F(GL有RGBA32F,但是慢,不适合实时渲染);这个buffer就是我们用来后期处理的HDR buffer;

2、进行后期处理,用相应的tone-mapping过程,把HDR的信息处理成LDR信息用于最后的显示。


如果需要模拟人眼从黑暗环境进入亮处或亮处进入黑暗的这个过程,那么我们采用的tone-mapping等式里面,必须包含曝光时间,这样每帧通过改变曝光这个参数来进行处理得到每帧的画面。实际的人眼是通过调节“光圈”来进行的, :)

你可能感兴趣的:(百度,buffer)