泡泡网显卡频道 PCPOP首页      /      显卡     /      评测    /    正文

DX10终极杀人武器!Crysis全方位测试


● 高级渲染语言(HLSL 10)

 

    DirectX 10  为以前的DirectX 9中的“高级着色语言”(High Level Shading Language )带来了诸多功能强大的新元素。其中包括可以提升常量更新速度的“常量缓冲器”(Constant Buffers),提升渲染流程中操作数据的灵活性的“观念”(view),为更广泛的算法所准备的“整形与位指令”(Integer and Bitwise Instructions),添加了switch语句。

 

1.常量寄存器(Constant Buffers)

 

    着色程序同普通的程序一样需要使用常量来定义各种参数,例如光源的位置和颜色,摄像机的位置和投影矩阵以及一些材质的参数(例如反光度)。在整个渲染的过程中,这些常量往往需要频繁的更新,而数以百计的常量的使用以及更新无疑会给CPU带来极大的负载。DirectX 10中新加入的常量缓冲器可以根据他们的使用频率将这些常量分配到指定的缓冲器中并协调的对其进行更新。

 

    在一个着色程序中DirectX 10支持最多16个常量缓冲器,每一个缓冲器可以存放4096个常量。与其相比DirectX 9实在是少得可怜,因为它在每个着色程序中同时最多只能支持256个常量。

{imageTitle}

    相比DirectX 9,DirectX 10不仅提供了更多的常量,最主要的是它大幅的提升了常量更新的速度。对那些被分配到同一个缓冲器中的常量,我们只需进行一次操作就可以将它们全部更新完毕,而非单个单个的去更新。

    由于不同的常量更新的时间间隔各异,所以跟据使用的频率来对他们进行组织就可以获得更高的效率。举例来说:摄像机的视矩阵只在每一祯之间发生改变,而像贴图信息这样的材质参数却会在图元切换时发生改变。于是这些常量缓冲器被分成了两个部分——那些每祯更新的常量缓冲器专门存放那些需要在两祯间更新的常数并在两祯间一次把他们全部更新,另外的图元切换更新的常量缓冲器也同理。这样就会将更新常量过程中的一些不必要的工作消除,以便让整个着色器脚本比在DirectX 9中运行的更加顺畅。

 

2.Views

 

    在DirectX 9中,着色器(shader)中的数据的类型是被严格划分开的。例如,顶点着色器用到的顶点缓冲器中的数据不能当作贴图的数据来让像素着色器使用。这样就将特定的资源类型同其相对应的渲染流程中的特定步骤紧密地结合了起来,同时限制了资源资源在整个渲染流程中可以使用的范围。

 

    DirectX 10舍弃了“严格区分的数据类型”这一概念。当一段数据被创建,那么DirectX 10所做的仅仅是将其简单的当作内存中的一段比特域(bit field)来对待。如果要想使用这一段没有定义类型的比特域数据就必须通过使用一个“view”。 使用“view”,相同的一段数据就可以有各种各样的方法来读取。DirectX 10支持对同一段资源在同时使用两个“view”。

 

    通过这种多重“view”的手段,就可以在整个渲染流程的不同部分以不同目的使用同一段数据。例如:我们可以通过像素着色器将一段几何数据渲染到一张纹理上,之后顶点着色器通过一个“view”将这张纹理视为一个顶点缓冲器并将其中的数据作为几何数据渲染。“view”通过在整个渲染流程中的不同步骤重复使用同一段数据为“数据处理”带来了更大的灵活性,帮助开发者实现更多更有创意更精彩的特效。

 

3.整形与位运算指令 (Integer and Bitwise Instructions)
 

    在新的高级着色器语言中添加了“整形与位指令”。这样把“整形与位运算指令”的操作加入其基础运算函数的好处在于帮助一些算法在GPU上的实现。开发者终于可以直接使用整形而非从浮点中强转来计算出准确的答案。数组的索引号现在可以轻松的计算出来。GPU无整形运算的时代终于被终结了。这将为shader程序的开发带来很大的便利。


4.Switch 语句(Switch Statement)

 

    终于,HLSL 10可以支持switch语句了!!!这将大幅简化那些有着大量判断(分支)的着色器脚本的编码。一种用法就是建立一个“航母级的着色器(shader)程序”——包含了大量的小型着色器程序并且自身体形巨大的着色器程序。在这个“航母级的着色器程序”,我们可以通过设定一个材质ID在switch语句中判断来轻松的在渲染同一个图元时切换不同的特效。也就是说,现在一个军队中的每个士兵身上都可以拥有各自不同的特效了。

4人已赞
第1页:Crysis评测全文目录第2页:2006年E3大展初露锋芒第3页:2004一鸣惊人!Crytek简介第4页:绝对黑马!空前美丽的FarCry第5页:Crytek和育碧分手!Crysis出炉第6页:打造一流的产品!Crytek拥抱EA第7页:斗气之作?育碧打造FarCry2第8页:等等等!艰难跳票历程第9页:游戏历史图片:战斗类场景第10页:游戏历史图片:主角特写第11页:游戏历史图片:士兵写真第12页:游戏历史图片:第一人称视角第13页:游戏历史图片:游戏室内室外场景第14页:游戏历史图片:雪地中的战斗第15页:单人游戏主要武器:SCAR步枪第16页:朝鲜士兵主要武器:FY71突击步枪第17页:最具可玩性:Nano作战服第18页:最值得期待的武器:分子捕捉器第19页:载具部分:朝鲜T-108坦克第20页:游戏中的载具:装甲车辆第21页:垂直起降类空中载具第22页:海陆空立体战:游戏中的舰船第23页:DirectX10架构特性及其优势第24页:Shader Model 4.0第25页:几何Shader以及Stream Out第26页:高级渲染语言(HLSL 10)第27页:其他改进和游戏效果第28页:CryEngine 2引擎特性:地图编辑器第29页:CryEngine 2引擎特性:音效、光照和阴影第30页:CryEngine 2引擎特性:集成工具第31页:Crysis画面和真实自然风光对比第32页:Crysis画面堪比现实场景第33页:Crysis画面和考艾岛对比第34页:更加清晰的老对比图第35页:虚幻3引擎时代即将结束第36页:DX10引擎更加华丽第37页:同是DX10!Crysis对比Warhound 第38页:集最新特效于一身 Crysis的DX10最成熟第39页:体积光照并非WIC专利!Crysis更精彩第40页:视差贴图不是COJ专利!Crysis更真实第41页:景深不是失落星球专利!Crysis更明显第42页:HDR+AA不是A卡专利!DX10完美支持第43页:Crysis独有高级特效:破坏场景/昼夜交替第44页:DX9顶级特效升级版:软阴影/动态模糊第45页:DX10集大成者!Crysis令人望眼欲穿第46页:Crysis并不恐怖 新老显卡全兼容第47页:Crysis四个等级画质对比(720P)第48页:CrysisDX9 vs.DX10对比(1080P)第49页:1600×1200!demo最高特效黑夜截图第50页:1600×1200!demo最高特效白昼截图第51页:CPU测试程序截图第52页:GPU测试程序截图第53页:提个醒!制作方谈游戏的配置第54页:多核不浪费!CPU性能对比测试第55页:夸张!内存使用测试第56页:23款显卡测试成绩横向对比第57页:巅峰较量!6款高端显卡对决第58页:显卡优化设置篇:8800Ultra第59页:显卡优化设置篇:8800GTX第60页:显卡优化设置篇:8800GT第61页:显卡优化设置篇:8800GTS 640MB第62页:显卡优化设置篇:8800GTS 320MB第63页:显卡优化设置篇:2900XT第64页:显卡优化设置篇:2900Pro第65页:显卡优化设置篇:7950GX2第66页:显卡优化设置篇:8600GTS第67页:显卡优化设置篇:8600GT第68页:显卡优化设置篇:2600XT第69页:显卡优化设置篇:7900GS第70页:显卡优化设置篇:X1950GT第71页:显卡优化设置篇:2600Pro第72页:显卡优化设置篇:X1650GT第73页:显卡优化设置篇:7300GT第74页:老显卡慎用!专用优化驱动实测第75页:全文总结:PC游戏的明天

关注我们

泡泡网

手机扫码关注