● 没有G8X就没有HDR+AA
目前市面上正式支持HDR+AA的产品包括GeForce 8系列与Radeon X1000系列。随着Shader Model 4.0的引入,对于HDR的浮点格式也有所改变。这是否意味着在DirectX10与DirectX9.0C下实现的HDR与HDR+AA会有所不同??
记得曾有人讲过“任何一块支持SM3.0的显卡都可以实现HDR+AA”,的确,早在GeForce 6时代人们就可以通过修改游戏控制台的手法在《孤岛惊魂》等几个游戏中实现这样的效果,但最终GeForce 6/7系列都没有能够正式支持HDR+AA。事实上,使用修改控制台的手法能够实现的只是HDR+SSAA,也就是上文中曾经提到的超级采样抗锯齿,这样就不需要去获取模型边缘信息,实现全贴图抗锯齿。这样的做法消耗的资源极大,更多的时候只是得不偿失。
GeForce 6/7系列之所以不能实现HDR+AA,是因为它们的浮点格式为FP16。在他们的架构中HDR运算与AA需要占用同样的缓存区域,而缓存区同时只能执行两者中的一项,无法同时实现HDR与AA。Radeon X1000系列同样采用FP16的浮点格式,它将AA交给着色器(Shader)去进行处理,不会产生缓存冲突,因此它能够实现HDR+AA。Shader的本质是一段可以编写的程序,也有Radeon X1000系列是依靠软件去实现HDR+AA的说法。这样“取巧”的做法代价就是游戏需要和显卡驱动的互相配合,增加了程序员的工作量。
GeForce 8800 Ultra采用了128bit的浮点格式,支持4个32bit的浮点通道,从根本上解决了缓存冲突的矛盾。HDR对于DirectX9.0C来讲属于一种占用大量资源的特效,可对于DirectX10来讲这个代价就要低廉的多。DirectX10的特性之一就是可以使特效更廉价,具体的内容在上文的列表中已经表述过,这里就不在重复。可以预见的是,有DirectX10的助力,GeForce 8800 Ultra以及G8X系列产品可以更加轻松的实现各种令人眼花缭乱的特效。