即将发布的Far Cry 1.2 patch由于增加了对Shader Model 3.0的支持成为了网络上的热门话题,Tech-report在与Crytek CEO Cervat Yerli交谈后,刊登了Crytek SM 3.0的制作过程和对SM 3.0的一些看法:
"Yerli说Crytek有几个程序员专门从事Far Cry的Shader Model 3.0代码设计工作,他说整个补丁用了3-4周来完成。显然,实施
SM 3.0并不是想象的那么容易,但是也不需要重写游戏引擎。
Far Cry从一开始就采用了一个非常好的引擎,可以利用Shader Model 2.0来提供每像素光照。Yerli说SM 3.0并不来带来画质的任何变化,只有更好的性能。事实上,他反复强调了这一点。从pixel shaders的场合来说,对表面基于SM 2.0技术的物质应用光照需要多通道来完成-每个光照要一个通道。如果物体受到3个光照影响,那么像素将需要3个通道。而采用Shader Model 3.0之后,Crytek得以完善每像素光照效果,从来使4个光照在一个通道内渲染。
Crytek重新设计后的pixel shader利用了分支和循环,可以在单通道内计算多光照效果,但是指令程度并没有达到SM 2.0 pixel shader的98条指令极限。Yerli说SM 3.0 pixel shader的主要优势在于更多的常量,表等等,这可以导致更好的性能。
除了pixel shader以外,Far Cry 1.2还利用了另外一个Shader Model 3.0特性,即时几何来加速游戏性能。利用即时几何,Far Cry引擎可以在同一个3D模型上放置多份拷贝,每个拷贝有不同的属性,但是可以通过绘制一个来调用。在相同的静态网格一出现时,游戏引擎就自动使用即时几何。尽管这个功能主要用于大量草丛和树叶场景,但是该功能不仅仅限于一个单独的模型类型。
Yerli说出于性能考虑,SM 3.0路径确实包含了FP16和FP32混合的数据格式,但是Crytek从来不会牺牲画质来换取性能。在问到在ATI显卡上使用FP24是否有导致画面问题的情况时,Yerli说没有。"
详细文章在这里。