Rage是id software的最新发布的游戏。游戏的画面质感还是非常不错的,可玩性在射击类游戏当中也是首屈一指,许多场景的制作也包含了一些在游戏当中罕有的艺术感,整体感觉游戏的制作还是非常精良的,对于目前的硬件平台来讲。
整个游戏锁定在60fps,这样就有效保证了游戏的流畅性。对于ps3,360这样的平台,开发60fps的游戏在技术上是有相当难度的。即使在pc平台,敢于在中端
平台把游戏定在60fps的游戏开发商也并不多。很多人热衷于单纯比较游戏画面的好于差,但这是有失公允的。如果要比较两个引擎,前提是他们的要达到目标应该一样,但是现实情况是,每款引擎设计的目标都不尽相同,最终的效果也都是各有优劣。引擎的设计只是解决问题的一个解,不同的人会有不同的解法,id一向擅长选择最简单的思路,然后把这种简单的思路推到极限,这次也不例外。比较而言,cryEngine在技术上更具革命性.
好像有人说过一句话,有时候逆向想问题更容易一些。VirtualTexture是rage主要的技术亮点,采用128k*128k的虚拟纹理存储纹理数据,通过动态加载来实现纹理的更新。要在当前的中端平台实现60fps,超大的场景和高精度的模型,都限制了动态光照的应用,所以Rage实际上是采用烘焙光照图的方式预先存贮光照信息,一般使用烘焙光照,当使用阴影的时候,光照图的精度都是很大问题,因为高精度的带阴影的光照图,需要很大的存贮空间,而这恰好是virtualtexture的强项。所以其他的游戏即使使用了烘焙的光照图,也无法在大场景中得到很好的效果。
回到游戏,实际上游戏对于细节的需求几乎是无极限的,即使是对于virtualtexture来说,游戏中某些纹理精度依然不够,因为场景过于复杂,如果全部都使用高精度的纹理, 最终的数据可能要远远高于20G,虽然游戏里面人物的贴图精度都是很高的,即使走的很近也不会看到有模糊的现象,但是对于场景中的某些不太重要的地方,纹理精度依然需要处理。从下图可以看到,即使精度达到最高的16k,许多地方依然看上去很模糊,我对游戏做了一下reverse engineering,在原来的基础上加了一层细节纹理,视觉效果却有了不错的提高。