http://www.eurogamer.net/articles/digitalfoundry-the-making-of-crysis-2
介绍了crysis2的制作。
转向console的原因简单直白:pc市场收不回成本,3平台可以。
移植工作并不是随便一搞就有的,非常的time intensive
开始是做了一个全feature版,然后是大量的low level optimization和全项目的refactoring。
比如postfx,crytek优化了10倍的速度。
从高端gpu平台到性能有点抱歉的console平台是个一个艰巨的任务,但是engineer team面对这个挑战却感到十分兴奋:这足以证明crytek的team素质,强力团队的普遍特性。
对console的内存很不满,希望next gen console有8g内存。
crytek也遇到了最开始为pc(没有那么多核的情况)设计的多线程架构,在console上遭遇新的不能很好处理的问题,如果从头写,肯定是task 系统,但是。。。
他们的工作顺序是,先做多线程拆分,把系统多核运行起来,然后升级到task系统,最后port到spu。
task系统之外,fibre也被用到。
crytek没有用spu做render,这绝不是一个托辞,spu编程绝对不是问题,但是付不起那个内存,这就是ps3设计的二的地方,当然还是有developer搞定了。
360上为了避免tiling,用了一个1152*720的resolution。
gamma correct hdr rendering很牛逼。
deferred cube map:可以任意的有hdr reflection,当然也要付出相应的一些代价。
加速art workflow也花了很多心思。
玩过console之后,大家开始懂的了节省。
crytek的这个思路我也很喜欢:并不是弄个高端情况,然后通过config里面一顿改,可以在console上跑起来就ok,而是要保证在各个平台上都是最牛逼的。
light propagation volume最后没有放到console平台上,crytek没时间搞了,这个就是现实,crytek花了最精锐部队和大量时间研究这个,但是最后就是各种原因搞不定。
postmsaa console上是1ms,pc上是0.2ms@1080p.
提到nv的fxaa比mlaa快2倍。