王者归来性能翻番 GeForce6技术解析
● 存储色彩
如前所述,GPU必须有能力把这些色彩数据以原有精度(或近似原有精度)存储起来。因为只有这样,浮点数据的对数特性才能够被保存起来。否则GPU所具备的一切浮点颜色处理都等于是白费。
GeForce 6 GPU通过OpenEXR、sRGB等颜色格式,提供了高精度的、含有指数表示(即将浮点数表示为0.3245×10^24)的颜色存储能力。这种能力将成为HDRI(高色彩范围渲染)技术中的关键一环——色调映射过程能够正确进行的保证。
表格1中我们给出了sRGB、OpenEXR的表达范围差别。OpenEXR为光线传递等计算提供了相当大的表达范围。不过对于任何存储和映射类型而言——例如那些在用于高动态范围渲染阶段的色调映射和色彩纠正——sRGB是更为明智的选择。
| Range | Precision | Storage* | Notes |
RGBE | 76.8 dB | 9-bit log | 189.8 Mb | Radiance- compressed 32-bit float |
32-Bit TIFF | 76.8 dB | 24-bit log | 759.4 Mb | IEEE-754 32-bit floating point |
OpenEXR | 12.0 dB | 11-bit log | 379.7 Mb | ILM-developed 16-bit floating point |
e-sRGB 12 | 4.6 dB | 12-bit poly | 213.6 Mb | Clamped at [–0.53..1.68] |
16-Bit int | 4.8 dB | 16-bit linear | 379.7 Mb | Clamped at [0..1] |
sRGB | 3.5 dB | 8-bit poly | 189.8 Mb | Clamped at [0..1] |
RGBA | 2.4 dB | 8-bit linear | 189.8 Mb | Clamped at [0..1] |
NVIDIA EXR技术解决了高动态范围渲染的难题。它提供了一种等同于专业摄影棚品质的16位浮点渲染格式,用于光线传递阶段的存储、混合、着色、贴图以及滤波操作。此外,NVIDIA EXR技术还允许在色调映射和伽马纠正阶段采用sRGB格式。
“对于电脑图形来说,正确地表现肉眼对真实世界感知的大范围色彩和光照,一直以来都是巨大的挑战。现在NVIDIA公司已经完全支持浮点贴图、浮点混合以及sRGB伽马纠正,在高动态范围渲染中再现精确的色彩和光照变得简单易用了。”NVIDIA的技术经理Herb Marselas如是说。
最让人叫绝的是,NVIDIA EXR技术是完全基于硬件执行的。无需像素着色器程序编码或者解码。对于程序员来说,这无疑是一个福音。此外,该技术已经在微软DirectX 9.0和OpenGL中获得支持,这意味着它日益成为一个公开的标准。<