究竟是3D游戏的发展带动显卡的进步,还是显卡的发展带动3D游戏的革新,这个问题恐怕谁也说不清楚。要是没有卡马克的DOOM和QUAKE,谁也无法想像目前显卡会发展成为什么样。反过来,如果没有GPU和VPU这些芯片的性能不断提高,也不会有这么多出色的3D游戏来供广大玩家“大开杀戒
前言
本文作者:迈克尔 家缘硬件
究竟是3D游戏的发展带动显卡的进步,还是显卡的发展带动3D游戏的革新,这个问题恐怕谁也说不清楚。要是没有卡马克的DOOM和QUAKE,谁也无法想像目前显卡会发展成为什么样。反过来,如果没有GPU和VPU这些芯片的性能不断提高,也不会有这么多出色的3D游戏来供广大玩家“大开杀戒”。这个问题就像“先有鸡还是先有蛋”,绝大多数情况下永远也纠缠不清。
当然,我们在本文里并不需要继续讨论这个问题,只是想借此强调一下游戏在整个3D图形技术发展中的重要推动性作用。虽然严格说,玩游戏在我们当前的社会环境下仍然属于“不务正业”,但是游戏的确是3D显示芯片不断进化的最根本动力之一。
游戏对于显卡的要求本身就是多方面的,这样才能保证玩家能够充分体会到游戏所带来的快乐。
一方面,游戏要求显卡的处理速度越来越快,在运行游戏的情况下能够保证流畅的帧率。这反映在具体的指标上就是fps值要达到一定幅度。帧速率达到什么样的标准才能让玩家感到“平滑”呢?对于没有交互的画面,24fps以上就能够让人接受。而对于大量实时交互画面,通常需要达到60fps才能勉强接受。特别是在主视角射击游戏中,玩家需要更高的帧速率才可以满足要求。
另一方面,对于游戏的画质,要求显示卡能够显示出更加细小的细节,一方面要求显卡的分辨率越来越高,同时也要求显示卡能够提供全屏抗锯齿的功能以满足更真实的效果。
游戏中的场景已经几乎和照片无异
这些当然只是对显示卡的要求,一款游戏是否能满足玩家还有很多其他的因素,这其中包括游戏的可玩性、自由度、AI的设计等等方面,这些特性都需要游戏开发者的智慧去解决。
巧妙的解决方案,引擎和资源独立处理
巧妙的解决方案,引擎和资源独立处理
话说起来总是简单的,如果付诸实施就要难得多了,3D游戏如果在前面提到的要求中都能够达到一定的层次,确是非常难于实现的,特别是如何让显卡发挥出比较高的性能,同时保证游戏的帧速率达到一定的值,还要让游戏性非常强。这对于任何一个开发游戏的团队来说都是非常困难的一件事,因为工作量太大了。
解决这个问题的方法就是根据“分而治之”的原则,将游戏开发过程中的大量的工作分为不同的部分,以解决游戏开发过程中工作量过大的问题。在实际的游戏开发中,目前最为流行的一种方法就是先开发出一套独立的游戏引擎(Engine),然后再根据这套引擎提供的功能将游戏完成。游戏引擎提供的通常是游戏运行最基本的内核程序,就像是一台汽车的发动机一样,但是光有发动机的汽车也是没有办法跑的,同样,只有引擎的游戏也是不能称之为游戏,必须加上相应的游戏剧情,丰富的资源文件以后才能称之为游戏。
这样做的好处显而易见,游戏的开发者再也不用了解游戏底层的运行方式是怎样的,也不需要知道如何实现的绚丽的效果了,只需要利用引擎提供的功能来将游戏做的丰满就可以了。这就像是你只需要知道当你供给发动机以燃油和空气的时候就会输出动力一样,具体的引擎内部的运作原理根本不需要知道。游戏开发人员只需要利用提供给自己的功能就能在比较短的时间内完成游戏了。
我们熟知的很多游戏都采用了这样的开发方式,Quake系列的引擎,Unreal引擎,HalfLife2引擎,Farcry采用的CryEngine等等,这些著名引擎都获得了非常大的成功,应用的范围也非常广,RTCW、COD、HalfLife、CS采用的Quake系列引擎,Unreal、UT、分裂细胞、XIII等等游戏都采用的是Unreal引擎。
采用虚幻引擎2的游戏非常丰富:
在今年的NV40的发布会上,NVIDIA联合EPIC展示了Unreal引擎系列中最新的一个版本Unreal Engine 3,其中展示的特效震撼了所有到场的观众,人们一时间将所有目光全都集中向了这个游戏。Unreal3一下子成为了游戏业界的焦点,一时间甚至超过了本应在这个季节最值得关注的Doom3和HL2。
● 虚幻引擎3概要
虚幻引擎3是一个面向下一代游戏机和DirectX 9个人电脑的完整的游戏开发平台,提供了游戏开发者需要的大量的核心技术、数据生成工具和基础支持。
虚幻引擎3的设计目的非常明确,每一个方面都具有比较高的易用性,尤其侧重于数据生成和程序编写的方面,这样的话,美工只需要程序员的很少量的协助,就能够尽可能多地开发游戏的数据资源,并且这个过程是在完全的可视化环境中完成的,实际操作非常便利;
与此同时,虚幻引擎3还能够为程序员提供一个具有先进功能的,并且具有可扩展性的应用程序框架(Framework),这个框架可以用于建立、测试和发布各种类型的游戏。
绚丽效果的基础,视觉特效特性(上)
绚丽效果的基础,视觉特效特性(上)
◎ 64位色高精度动态渲染管道。
Gamma校正和线性颜色空间渲染器提供了完美的颜色精度,同时支持了各种后期特效例如光晕,镜头光环和景深等效果。
在最新的一代显示芯片发布的过程中,我们注意到了一个非常明显的特点,就是新一代的显示芯片已经不再满足于传统的32位色深,转而需要更加高精度的颜色范围,这一点在NV40和R420身上都能非常明显的看出来。在NV40上,这种技术被称为HPDR技术,而在R420身上,这种技术也有所体现。
使用64bit色彩空间的高动态范围效果
◎ 支持当前所有的基于像素的光照和渲染技术,包括使用法线贴图技术的参数化的Phong光照;虚拟位移贴图;光线衰减函数;采用预计算的阴影遮罩技术以及使用球形harmonic贴图的预计算的凹凸自阴影
采用法线贴图的半透明物体呈现出反光效果
美工创作效果、彩虹色材质都能很好的和基于像素的光照/阴影结合
绚丽效果的基础,视觉特效特性(中)
绚丽效果的基础,视觉特效特性(中)
◎ 高级的动态阴影。
虚幻引擎3提供对下列3种阴影技术的完全支持:
· 采用动态模板缓冲的阴影体积技术,能够完整支持动态光源,这样就能在场景中所有物体上精确地投射阴影。
马灯的跃动能够产生具有模糊效果的稀薄阴影,这些阴影也能实时的扫过场景
· 能够让动态的角色在场景中投射出动态的、柔和的模糊阴影,这个过程是通过使用16X超级取样的阴影缓冲实现的
采用模糊效果的阴影和采用法线贴图的表面产生微妙的相互影响
· 采用了拥有极高质量和极高性能的预先计算出的阴影遮罩,从而可以将静态光源的交互现象离线处理,同时保留了完整的动态高光和反射效果。
绚丽效果的基础,视觉特效特性(下)
绚丽效果的基础,视觉特效特性(下)
◎ 所有支持的阴影技术都是可视化的,并且可以按照美工的意愿自由混合。另外,同时可以与有颜色的衰减函数结合,从而实现具有合适阴影的平行光、聚光灯效果,以及投射光效果
角色能够在虚幻引擎3中使用阴影技术产生动态的软阴影
◎ 强大的材质系统,使得美工可以在实时图形化界面中建立任意复杂的实时Shader,而这个界面的友好度可与Maya的非实时Shader图形编辑界面媲美
◎ 材质框架是模块化的,所以程序员不仅可以加入新的Shader程序,还可以加入能够让美工随意与其他组件连接的Shader组件,从而可以实现Shader代码的动态合成。
◎ 完全支持室内和室外环境的无缝连接,在任何地方都支持的动态每象素光照和阴影。
◎ 美工可以通过一个可动态变形的基本高度图来建立地形,并使用多层混合材质,这其中包括位移贴图,法线贴图和任意复杂的材质,动态的基于LOD的细分,以及植被。
另外,地形系统还支持美工控制的自然效果,如平地上的植被,陡坡上的岩石和山顶上的雪
模糊效果的云,影子掠过小山,风车的影子同时投影在地上
◎ 体积环境效果,包括高度雾和物理上精确的距离雾
拥有软阴影的角色站在有体积函数的雾中
再现真实的物理系统(上)
再现真实的物理系统(上)
◎ 刚体物理系统,支持游戏者和游戏中的物体,布娃娃角色动画以及复杂碰撞等物体交互方式。
布娃娃(Ragdoll)系统,是目前最为流行的一种非常高级的物理引擎,能够付给物体以一定的质量,形状等特性,从而获得非常逼真的力学动态效果。Half Life 2、Pain Killer等著名游戏均采用了这个物理引擎。
布娃娃系统(Ragdoll)
布娃娃系统能够让所有物体都按照力学原理运动
再现真实的物理系统(下)
再现真实的物理系统(下)
◎ 所有可渲染的材质都含有物理特性,例如摩擦系数等参数。
在虚幻引擎3提供的编辑工具UnrealEd中,能够对物体的属性进行实时修改
◎ 符合物理原理的声音效果
◎ 完全整合的基于物理原理的交通工具支持,包括游戏者控制,人工智能和网络
◎ UnrealEd内建的可视化物理建模工具,支持对于模型和骨骼动画网格的用于优化碰撞检测的图元的建立;约束编辑;在编辑器内可交互的物理模拟和调整
UT2004如果采用虚幻引擎3,就能让车辆具备更先进的物理特性
骨肉相连的动画系统引擎
骨肉相连的动画系统引擎
● 动画系统
◎ 骨骼动画系统;支持每顶点可达4骨骼同时影响的效果以及复杂的骨骼结构。
◎ 动画由一棵动画物体树驱动,包括:
· 混合控制器,进行对嵌套的动画物体之间的多路混合。
· 数据驱动的控制器,封装动作捕捉或手动制作的动画数据。
· 物理控制器,连接到刚体动态引擎,用来实现布娃娃系统的游戏者和NPC动画和对力的物理响应。
· 过程动画控制器,以C++或UnrealScript实现,为了实现一些如使一个NPC的头部和眼睛跟踪一个在关卡中行走的游戏者,或使一个角色根据健康情况和疲劳度作出不同动作等特性。
◎ 为3D Studio Max和Maya制作的导出工具,用于向引擎中导出赋予蒙皮权重的网格,骨骼和动画序列。
游戏框架以及人工智能
游戏框架以及人工智能
● 游戏框架以及人工智能
◎ 提供了一个支持普通游戏对象(如游戏者,NPC,物品,武器和触发器)的面向对象的游戏框架。
◎ 丰富的多级别AI系统,支持寻路、复杂关卡游历、单独决策和组队AI
· 对如触发器,门和升降机等普通游戏对象敏感的寻路框架,允许复杂的游历设定,使得NPC可以按下开关,打开门,并绕过障碍物。
· 游历框架带有短期战术战斗、掩护和撤退的路线网。
· 基于小队的AI框架,适合第一人称射击、第三人称射击和战术战斗游戏。
◎ AI路径在UnrealEd中可见并可由关卡编辑者编辑,允许自定义和提示
◎可见的AI脚本工具,使设计者可以创建复杂的交互性游戏设定,例如游戏者目标,通用的游戏事件触发器和交互式过场动画
◎ UnrealMatinee,一个基于时间线的可视化序列、动画和曲线路径工具。设计者可以使用此工具建立游戏中的过场动画,可以是交互的或非交互的,通过动画序列化、移动包括摄像机在内的对象,控制声音和视觉特效,并触发游戏和AI事件。
UnrealEd中的“Matinee”工具,能够编辑基于时间轴的事件序列
诱惑你的耳朵,同样强大的声效系统
诱惑你的耳朵,同样强大的声效系统
◎ 支持各种平台的输出格式,包含5.1环绕立体声和高品质杜比数码音效。
◎ 3维声源位置设置,多普勒效应。
多普勒效应:是指当发声物体在运动时,声音的音调会随着物体移动速度而改变其高低——声音频率的变化,这个原理也被运用在声卡3D发声原理之中。
多普勒效应
◎ 在UnrealEd中的可视化音效工具可以为声音设计者提供对音效的全面的控制,声音强度,顺序,循环,过滤,调制,变调和随机化。声音参数被从代码中分离开,使设计者可以控制所有的与游戏、过场动画和动画序列相关的声音。
◎ 支持所有平台的主要声音格式,包括PCM,ADPCM,游戏机对应的声音压缩格式和Ogg Vorbis。
◎ 支持游戏机上的声音流。
总结
通过这一系列精彩的介绍,相信您已经对未来的3d世界充满期待。您的显卡够强了吗?跟着x800和6800等王者的出现,我们已经能看见真实3d世界的影子。等待刷新您的游戏世界吧!
网友评论