HDR渲染管道DIfferences

时间:2010-09-30 15:08:18

标签: opengl 3d directx rendering shader

典型的HDR渲染管道和普通渲染管道之间有什么区别? (即bpp差异?一些额外的后处理步骤?)

2 个答案:

答案 0 :(得分:7)

HDR渲染需要使用浮点缓冲区,因此每个像素的字节数之间存在差异。 RGBA8缓冲区每像素使用4个字节,但RGBA16F缓冲区每像素使用8个字节。

当显示浮点缓冲区时,需要进行一些后处理,因此信号有意义,因为FP数可能在[0,1]范围之外,你后处理FP缓冲区将其转换为正常值[ 0,1] RBGA8缓冲区,用色调映射运算符完成。

答案 1 :(得分:6)

管道非常相似。要记住的是,您现在可以使用3个浮点数(即RGB)来表示光源。这使您可以将光源亮度设置为更亮或更暗。

如前所述,您需要使用浮点渲染目标。

不要让你的灯光着色器饱和,因为这会将你锁定在0到1的范围内。

有两种方式来处理图像。一种是在写入后备缓冲区之前简单地将范围压缩回0到255范围。然而,这将完全没有意义,因为它将失去你拥有HDR的重点。最好的办法是编写曝光滤镜。

值得注意的是,大多数人会将曝光过滤后的相机效果应用于模型的饱和部分。最常见的形式是我们在电影中看到过的“bloom filter”。但是,您可以使用大量不同的过滤器来提供良好的效果。搜索“Streak过滤器”,以获得与盛开相结合的非常有用的效果。

很多一般信息here