游民星空 > 攻略秘籍 > 攻略 > 正文

孤岛危机 最强神作!Crysis深度剖析与优化指南

2007-11-09 15:18:21 来源:本站原创 作者:佚名 我要投稿

第8页:

展开

CryEngine 2技术剖析:shading 系统

全新的shading系统

开发FAR CRY的CRYENGINE 1由于需要支持当时为数不少的GF2级别的显卡,所以除了支持先进的PS/VS可编程渲染管线外仍然保留了对固定渲染管线跟寄存器合成器(register combiner,混合贴图的逐象素解决方案)的支持,这样再加上为支持DX/OGL的复杂材质,CRYENGINE 1的shader编写脚本采用了非常复杂的语法。

在完成FAR CRY的开发工作之后,CRYTEK大幅改写重建了着色系统,其中最主要的举措就是彻底废除了固定功能的渲染管线,并且大大简化了语法。为了进一步简洁引擎,CRYENGINE还废除了对OGL的支持,此举大大提高了shader脚本对FX格式代码的兼容性,开发shader从此也变得更加方便易学。


不同材质的表现结合

总而言之,经过大幅改进之后的CRYENGINE 2 shader脚本系统可以将各种纹理跟多种算术运算结合起来创造出诸如遮蔽、湿润、泥泞或者冰冻等等特殊表面材质效果;这些特效还可以被分割或跟其他诸如金属高光、玻璃材质等常见shader效果混合使用。支持实时逐象素光照、凹凸反射/衍射、容积glow、动画贴图、透明电脑荧幕\窗户、弹孔、反光表面以及其它各种DX10统一着色器架构带来的独特shader特效。

CRYTEK通过创建一个“shader缓存请求列表”的方式大大简化了不同shader间的合成,然后再利用公司内部网络,让公司内所有计算机形成一个小型的分布式计算系统,用于创建shader列表所需的shader编译计算。然而编译仍需耗费大量时间,因此开发人员又通过利用动态分支特性、减少shader合成以及拆分成多个渲染pass等措施来大幅削减shader的编译时间。

高级着色器效果一扫以往游戏人物皮肤的橡皮感、塑胶感

逐象素场景深度计算

CRYENGINE 2引入了一项名为“逐象素场景深度计算”的技术(也叫“基深渲染”Scene Depth Based Rendering),该技术优先计算视点到场景物体表面的深度值(Z值),并将得到的深度值保存起来以供后面的特效使用。由于运用于CRYSIS中的大量特效、渲染技巧,诸如延迟着色、球形雾、容积雾化、阴影映射、阴影遮罩的生成、视察映射、柔和水陆交接线的分离、Z缓冲柔和粒子、以及动态模糊、景深、边缘模糊处理等后期处理特效的运算都需要深度值的参与,提前计算出深度值然后供后面的渲染步骤反复使用能够有效减少shader运算的浪费,大大提高了效率。

渲染场景坐标空间着色系统

在FAR CRY中,CRYTEK将视点跟光照位置转换至切线空间坐标系(相对于表面方向),因此所有的pixel shader数据都是基于切线坐标系,同时也是在该空间中进行计算。但是随着多重光照的运用,该系统开始在传递光照参数上受到限制。为了解决这一问题,CRYENGINE 2改用“渲染场景坐标空间着色系统”,该技术实际上已经被运用于立方体贴图反射特效上,所以代码没有兼容性上的问题,而且着色效果也比原先的切线坐标系空间系统更加准确。

更多相关内容请关注:孤岛危机专区

责任编辑:dsgames568

上一页 1 2 3 4 5 6 7 8 9 10 11 下一页
友情提示:支持键盘左右键“← →”翻页

本文是否解决了您的问题

游民星空APP
随手浏览游戏攻略
code
单机游戏下载
休闲娱乐
综合热点资讯
游民星空联运游戏