高动态范围光照(HDR)
首先我们所要介绍的是比较熟悉的HDR(High-Dynamic Range:高动态范围光照)这个游戏特效。HDR(High-Dynamic Range)特效是和Soft shadows(柔和阴影)/Parallax Mapping(视差映射贴图)等并列的图像渲染特效。想要实现HDR特效,首先,游戏开发者要在游戏开发过程中,利用游戏引擎等开发工具将实际场景用HDR记录下来,当然开发技术强的开发组会直接用小开发工具(比如3D MAX的某些特效插件)创造HDRI图像;其次,我们的显卡必须支持显示HDR特效,nVIDIA的显卡必须是GeForce 6系列或更高,ATI显卡至少是Radeon 9550或以上。HDR特效最早是由NVIDIA提出的概念,也是最先在NVIDIA的显卡中实现的,当时面对竞争压力的ATI也效仿NVIDIA实现了RADEON显卡的模拟HDR的支持,注意——仅是模拟而已,而且是通过Shader Model 2.0实现的。
高动态范围光照(HDR)画面示例
DX9可以算得上是DirectX史上的一次革命性的改进,而DX9的第三个版本DirectX 9.0c(Shader Model 3.0)正是凭借HDR技术名噪一时。因为采用HDR特效技术处理过后的游戏在画面上色彩对比鲜明和风格会呈现出超现实感。
但遗憾的是,虽然说HDR给玩家带来了画面上更加绚丽的色彩,但是HDR技术也有不少“顽疾”至今都没有得到有效的解决。DX9.0C中的HDR和AA(抗锯齿)互不相容,虽说ATI X1000系列和XBOX360主机都能支持HDR+AA仅是一个特例而已,但HDR+AA方案并非业界标准,ATI官方也不认可这种做法;还有就是HDR技术也导致了新一代的游戏显存消耗的成倍增加,因为HDR在设计之初的要求就是光照和纹理都必须保持高精度,而纹理贴图不经过压缩就放在显存中,容量可想而知有多恐怖。为此,DX11在API设计的时候就专门为HDR设计了纹理压缩格式:BC6H,压缩比达到了6:1。正是进过了DirectX API设计的不断改进,HDR技术才在实用性和效率上找到了平衡点,故而逐步被大部分的主流游戏所采用。
最后我们用三句话简洁的概括下HDR特效的画质表现效果:
1.亮的地方可以非常亮
2.暗的地方可以非常暗
3.亮暗部的细节都很明显