-
Notifications
You must be signed in to change notification settings - Fork 87
HDR
zilch edited this page Feb 8, 2021
·
1 revision
与之相对的是LDR(Low-Dynamic Range 低动态光照渲染)。 由于硬件的限制,在过去我们保存一张图片的时候,RGBA每个通道只给予了8bit,也就是说每个颜色分量的取值范围为0-255。其所能表达亮度范围也只有0-255。
但是现实中,亮度范围变化是巨大的。 如何将巨大的亮度变化映射到有限的图片数据中,即为HDR渲染做的事。
ToneMapping是一种非线性映射曲线,用以将高范围(超过1)的光照数值映射到(0-1)数值区间。
相关文章:
如果要支持HDR,那么在渲染阶段,必须以高精度方式保存颜色,而不是传统的8bit。 然后再最后输出阶段,通过ToneMapping映射到屏幕。
在以上链接中的internalformat
表格中,GL_RGBA16F
、GL_RGBA32F
都是浮点纹理格式。例如GL_RGBA32F
每个通道都是用32bit的浮点数保存,因此一个像素将占据32*4=128bit。 内存占用是传统RGBA8纹理的四倍,对硬件的要求很高。