非常在线首页 首页 > 产品频道 > 显卡 > 导购 >  正文

画质速度通吃,浅谈游戏中的SM3.0技术

2005-08-08 作者:YEKSY 包涵 编辑:健圣 【复制本帖地址

Dynamic branching(动态分支技术)

    另外DirectX9C带给我们的还有一项动态分支技术。微软的一篇技术文档对此项技术大加赞赏,认为此技术的合理利用能够极大地提高游戏的执行速度。听起来似乎不错,让我们来看看其具体是怎样操作的。在动态分支技术中,允许程序员在自己的shader程序中加入循环和条件语句,让一条简单的程序具有更高的灵活性。

    这适用于控制操作执行的控制类语句,普通的循环语句如for,while和do,普通的分支语句如:if,then。在程序中当条件为真,循环部分的代码被重复执行;当条件为假,循环停止,程序继续循环下面的语句。而分支语句就像是一个“跳出命令”。在通常情况下,计算机都是顺序执行程序,但有了分支语句后,程序员就能够控制程序的运行了。

    能够控制程序的执行这一点非常重要,例如用循环分支语句编写一束顶点光源的程序,首先决定在这一束顶点光源中,有哪些特定的光源能够被利用到,然后将这些光源传送到像素着色器中,用既定的光源参数进行渲染。采用动态分支能够让像素着色器有选择地处理有用的光源,而不是像以前一样,将所有的光源全部处理,这样将大大节省处理时间。

    再如同大多数场景下物体可见部分都是面向光的那一部分。因此程序员可以使用分支语句跳过处理那些远离光源或者背向光源的部分,从而有效地节约了处理时间,并且在游戏的画质上面并不会因此而降低。

    另外由于受限于象素着色程序2对于程序段长度的限制,因此程序人员在创建游戏引擎时都将一段复杂的程序分解成多个顶点shader程序或象素shader程序。这样游戏在执行时就会处理多个shader程序段,而降低其效率。而在Shader Modal3中,采用易于理解执行的循环/分支语句能够让开发人员将所有的小段shader程序都写入一个单个的顶点shader程序或象素shader程序中,在其中适当的采用静态和动态分支语句,在计算机在条件满足时刻执行指定的操作,能够大大提升游戏的运行速度。当然这也是在不牺牲游戏画质的前提下。

判别技术

    判别技术应该说是前面介绍的动态分支的有效补充,能够进一步降低shader的处理时间。是否采用判别技术的前提是,是否遇到错误数据和正确数据并存的数据流。如果触发判别技术,计算机会自动将所需要的正确数据发送到流水线上,而拒绝其他错误数据的请求。

    应该说此项技术和以前的预测技术有所类似,不过预测技术是将数据流发送到GPU内,由GPU推测执行,但整个数据流都会被处理(不管是正确的数据还是错误的数据),而判别技术只发送正确的数据到流水线,不用处理整个数据流。虽然在进行判别过程需要花费较多的GPU运算资源,但理论上来说这种技术比预测技术更有效率。

几何实例技术

    当前,游戏说面临的主要局限就是显示场景内数量众多的相似对象。这不单纯是显卡处理能力的问题,而且要求处理器在短时间内处理大量的只在小地方上有些许不同的对象的确有些苛刻。例如要用树构建一片森林,每一棵树大体上都是相似的,但是树与树之间位置不同,高度不同,枝干的长度不同,树叶的颜色不同等等。

    在以前,开发人员为了达到逼真的游戏画面,通常采用独自拷贝所有的树木,即使两者之间仅有些微的差别。然后为了达到不同的位置感,高度和颜色,需要重新渲染,旋转,对比等等手段,就是为了来营造逼真的场景。这样一来对系统的要求无疑非常高。

    在Shader Modal3中,采用几何实例技术,能够让程序员只存储一棵树和一些定义不同模型之间颜色、高度、分枝长度的顶点数据流,就可以达到以往需要非常复杂手段才能够创建的场景。例如存储一棵其中包含了它的顶点位置和默认信息,具有1000个顶点的树模型,以及具有它位置,颜色,高度和分支长度值的200个顶点数据流。

    开发人员只需要建立一棵树的模型,然后渲染出200棵树,由于此时采用了基本树模型的数据,因此每一棵树都是一模一样的,然后再将储存在其中的定义不同树状态的顶点数据流应用在上面,就成功的建立了森林的场景。这对于提升游戏执行速度具有非常重要的意义。

置换贴图

    顶点材质查找(Vertex Texture Lookups)是Shader Model 3.0的主要进步之一,通过它可以实现置换贴图这样的功能。Shader Model 3.0和Shader Model 2.0之间可能存在的画质差异主要是由置换贴图的使用造成的。目前被广泛应用的凹凸贴图能够给人以物体材质高低不平的幻觉,但是材质本身仍然是平的,如果贴近物体观看就会显得很假。

    由于材质本身是平的,这也造成光线和阴影不能准确反射。通过处理材质的高度,置换贴图实际上增加了物体表面的细节程度;置换贴图甚至能够自行创建模型。置换贴图能够大幅度提高游戏画面的拟真程度,如果开发人员熟悉了该技术的使用,我们将从使用Shader Model 3.0的游戏和使用Shader Model 2.0的游戏画面中看出明显的区别。

[第1页] [第2页] [第3页] [第4页] [第5页] [6] [第7页] 

打印】【评论】【硬件论坛】【非常在线社区】【关闭

本文共有 条评论,点击查看读者的评论!

发表评论:      昵称: 不用注册,可直接发表评论
发表内容:  
※您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。
硬 件 中 心
数 码 中 心
站 内 搜 索

 ·上网越来越慢,象攀登泥泞的山路一样费力 ?
 ·下载比ie安全的firefox上网冲浪更惬意

关于我们 | 非常记事 | 网站地图 | 广告刊例 | 招聘英才 | 联系我们 | 非常在线社区 | 收藏本站 | 设为首页

北京市海淀区西三环北路50号紫竹院豪柏国际B1-1702室 邮编:100044 网站电话:010-51290182
Copyright © 2000 - 2008. All rights reserved. 非常在线 版权所有.京ICP证031006号