7e3是xbox360经常使用的一个HDR格式,edram只有10mb,
因为
7e3占32个字节是16f的一半,所以优势就很明显(节省显存,提升贴图采样性能)。但是7e3的banding问题也很明显。
尝试一些方法来有效降低7e3banding
首先尝试对7e3加了colorscale之后会有效降低banding,但是美术需要手动调整colorscale,即便是夜晚场景也会存在场景比较亮的时候这时候colorscale如果是个全局的参数就不合适了,如果能够根据场景亮度算出来一个colorscale就比较合适。
正好搜到Disney的一个ppt讲的就是提高7e3banding,一般来说tonemapping是由一个exposure加一个color remapping组成,一般的hdr流程是在finalpass一起做这两个操作,然而f16转换到7e3的时候精度已经丢失了,尤其是像素值比较低的区域,这就带来了banding。
Disney的做法是将exposure放在每个物体算lighting的时候,final pass只做color remapping,这里的exposure是根据场景的亮度算出来的。
banding得到明显改善;但是在场景很暗的时候exposure会是个比较大的值5-10之间(取决于HDR参数)这样如果场景里还有像素值比较高的像素的话就会饱和。