3D游戏引擎术语介绍
- 格式:doc
- 大小:526.50 KB
- 文档页数:11
热门3D游戏视觉效果名词简介3法线贴图(Normal Mapping)法线贴图技术通过计算高细节度模型的法线信息并将其保存在一张高压缩比(3DC/DC5)的法线贴图之中,然后将这张法线贴图贴用于低细节模型上代替原型的多边形曲面的光照计算,从而等到一个低多边形、高细节的3D模型。
这样做就能在保证模型细节的情况下,大幅度降低场景的多边形数目。
法线贴图目前已经广泛应用于3D游戏中。
视觉效果达到1亿多边形的场景,通过线框显示发现只用了50万多边形。
(虚幻3引擎场景)此主题相关图片如下:法线贴图在《孤岛危机》里的应用,立体感表现得非常好此主题相关图片如下:高动态光照(High Dynamic Range)很多人对HDR的第一感觉就是“太亮了、好刺眼、受不了”。
其实HDR并不是像许多玩家理解的那样就是简单的“高亮”,不是让画面有更大的亮度或是对比度。
大家都知道,当人从黑暗的地方走到阳光下时,我们的眼睛会不由自主的眯起来,那是因为在黑暗的地方,人为了更好的分辨物体,瞳孔张开很大,以便吸收光线;而突然到了光亮处瞳孔来不及收缩,视网膜上的视神经无法承受如此多的光线,人自然会眯上眼睛阻止大量光线冲击视神经。
我们的眼睛非常敏感,而电脑就不具备这种功能,因此就通过HDR技术在一瞬间将光线渲染得非常亮,然后亮度逐渐降低。
所以,HDR的最终效果应该是亮处的效果是鲜亮的,而黑暗处你也可以清晰的分辨物体的轮廓,位置和深度,而不是以前的一团黑。
动态、趋近真实的物理环境是HDR的特效表现原则。
HDR并不仅仅是反射的光强度要高。
在游戏中,如果你盯着一个面向阳光直射的物体,物体表面会出现丰富的光反射;如果盯着不放,物体表面的泛光会渐渐淡出,还原出更多的细节。
HD R特效是变化的,因此称做高动态光照。
HDR是分种类的,一般按可精度分为:Int16(整数)、FP16(浮点)、FP32等等,数字越大精度越高,运算量当然也越大。
其中Int格式的HDR在SM2.0下即可实现(如半条命2:失落的海岸线、第一章、第二章),FP格式要SM3.0或以上才能实现(目前有HDR的游戏基本都是FP格式),在DX10中HDR的精度已经提升到FP128。
第1部分: 游戏引擎介绍,渲染和构造3D世界介绍自Doom游戏时代以来我们已经走了很远。
DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏"引擎"。
这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏,或向已有的游戏素材中添加新的东西。
大量的新游戏根据已经存在的游戏引擎开发出来,而大多数都以ID公司的Quake引擎为基础,这些游戏包括Counter Strike,Team Fortress,Tac Ops,Strike Force,以及Quake Soccer。
Tac Ops 和Strike Force 都使用了Unreal Tournament 引擎。
事实上,"游戏引擎" 已经成为游戏玩家之间交流的标准用语,但是究竟引擎止于何处,而游戏又从哪里开始呢?像素的渲染,声音的播放,怪物的思考以及游戏事件的触发,游戏中所有这一切的幕后又是什么呢?如果你曾经思考过这些问题,而且想要知道更多驱动游戏进行的东西,那么这篇文章正好可以告诉你这些。
本文分多个部分深入剖析了游戏引擎的内核,特别是Quake引擎,因为我最近工作的公司Raven Software已经在Quake引擎的基础上开发出了多款游戏,其中包括著名的Soldier of Fortune 。
开始让我们首先来看看一个游戏引擎和游戏本身之间的主要区别。
许多人们会混淆游戏引擎和整个游戏。
这有点像把一个汽车发动机和整个汽车混淆起来一样。
你能够从汽车里面取出发动机,建造另外一个外壳,再使用发动机一次。
游戏也像那。
游戏引擎被定义为所有的非游戏特有的技术。
游戏部份是被称为'资产' 的所有内容(模型,动画,声音,人工智能和物理学)和为了使游戏运行或者控制如何运行而特别需要的程序代码,比如说AI--人工智能。
对于曾经看过Quake 游戏结构的人来说,游戏引擎就是Quake。
3D游戏引擎开发技术分享近年来3D游戏市场越来越火热,不管是大作还是独立游戏,开发者们都在探索创新的游戏玩法和视觉效果。
而游戏引擎作为游戏开发的基础,也成为开发者们越来越重要的工具。
在这里,我们将分享一些3D游戏引擎开发技术,帮助广大游戏开发者更好地开发出优秀的3D游戏。
一、游戏引擎是什么?在了解3D游戏引擎开发技术之前,先来看一下游戏引擎是什么?游戏引擎是指开发者为了编写电子游戏而开发的软件平台,这些软件平台通常由游戏渲染系统、物理引擎、声音引擎和网络引擎等组成。
游戏引擎能够提供给游戏开发者简单便捷的方式来创建游戏玩法、生成各种游戏元素并进行渲染工作。
二、 3D游戏引擎开发技术现在,我们来看看具体的3D游戏引擎开发技术。
1. 渲染引擎渲染引擎一般是3D游戏引擎的绘图核心,负责将3D模型、贴图等图像元素渲染至屏幕上。
在渲染引擎设计时,考虑的关键因素通常包括图形渲染流水线、着色器和模型加载等。
这些都是开发一款3D游戏不可或缺的技术。
2. 物理引擎物理引擎主要负责模拟游戏中各种元素的物理行为。
一般情况下,物理引擎会包含计算重力、弹性碰撞、摩擦等物理变量的算法。
这些算法是为了模拟在现实世界中物体的反应而开发的。
3. 动画引擎动画引擎是3D游戏引擎中呈现动态效果的关键技术。
它通过计算游戏角色和其他游戏元素的运动,来模拟游戏中各种运动和动作。
例如人物走路、跑步、攀爬等等。
4. 光照引擎光照引擎是3D游戏引擎设计的关键。
它主要负责计算游戏场景的各个位置处的光照强度,从而使游戏场景在照明和影子方面表现更加真实。
5. 编辑器编辑器对于3D游戏引擎开发来说也非常重要。
编辑器是游戏开发者进行游戏素材编辑和设定的工具,它包括场景编辑、模型编辑、材质编辑等功能。
通常,一个好的编辑器会或多或少具有良好的用户交互性和易用性,方便游戏开发者进行游戏素材的编辑。
三、如何选择合适的3D游戏引擎最后,我们来谈谈如何选择合适的3D游戏引擎。
3D游戏引擎开发与应用一、引言随着科技的不断发展,3D游戏已经成为一种流行的娱乐方式。
而3D游戏引擎则是支撑3D游戏运行的关键。
本文将介绍3D游戏引擎的开发与应用。
二、3D游戏引擎的定义3D游戏引擎是一个软件框架,它为游戏开发者提供了开发游戏所需要的全部工具和资源。
它提供了各种功能,如图形渲染、物理模拟、声音效果、场景管理、人工智能等。
它还提供一致的程序接口,允许游戏开发者使用同一套代码来开发不同平台的游戏。
三、3D游戏引擎的开发1.图形渲染引擎图形渲染引擎是3D游戏引擎的核心部分。
它负责处理各种3D渲染技术,如高级光照、阴影、反射等。
游戏引擎开发者需要理解这些技术,以便更好地设计和开发游戏引擎。
2.物理模拟引擎物理模拟引擎负责模拟各种物理现象,如重力、碰撞、摩擦等。
游戏引擎开发者需要了解各种物理学原理,以便实现更加真实的游戏体验。
3.声音效果引擎声音效果引擎负责处理各种声音效果,如回声、混响等。
游戏引擎开发者需要了解数字信号处理和声音合成等技术,以便打造更加逼真的游戏音效。
4.场景管理引擎场景管理引擎负责管理游戏中的各种场景,如地形、建筑物、人物等。
游戏引擎开发者需要了解3D建模和场景设计等技术,以便更好地实现游戏场景。
5.人工智能引擎人工智能引擎负责模拟各种人工智能现象,如路径规划、行为决策等。
游戏引擎开发者需要了解各种机器学习和神经网络等技术,以便实现更加智能的游戏角色。
四、3D游戏引擎的应用1.游戏3D游戏引擎最广泛的应用就是游戏。
它可以实现各种类型的游戏,如角色扮演、动作游戏、赛车游戏、射击游戏等。
2.虚拟现实3D游戏引擎可以用于虚拟现实技术的开发。
它可以模拟出各种虚拟场景,并且实现真实的交互效果。
3.工业仿真3D游戏引擎也可以用于工业仿真方面的开发。
它可以模拟各种工业操作场景,并且实现真实的物理效果。
4.教育培训3D游戏引擎可以用于教育培训的开发。
它可以模拟各种教育场景,并且实现真实的互动效果。
游戏开发行业必须懂的专业术语游戏开发行业是一个充满创意与技术的行业,其中有许多专业术语是开发者们必须要了解和掌握的。
本文将向您介绍游戏开发过程中最常用的术语和其含义,帮助您更好地了解游戏开发。
1. 游戏引擎(Game Engine)游戏引擎是游戏开发过程中最核心的部分,它是指游戏开发者所使用的软件框架,用于控制游戏逻辑、渲染图形和处理输入等功能。
2. 三维建模(3D Modeling)三维建模是游戏开发中用于创建游戏场景、角色和道具等三维模型的过程。
开发者使用专业软件对物体进行建模、纹理贴图和动画处理,以增强游戏的真实感。
3. 可视化脚本语言(Visual Scripting)可视化脚本语言是一种无需编写代码的开发工具,开发者可以通过拖拽和链接图形化元素,实现游戏逻辑的设计和调整,提高开发效率。
4. 程序化生成(Procedural Generation)程序化生成是指使用算法和数学公式来生成游戏中的虚拟环境、地图、任务和道具等内容,以增加游戏的多样性和可玩性。
5. AI(Artificial Intelligence)AI是指人工智能,它在游戏中用于模拟人物、敌人或伙伴的智能行为,使游戏更具挑战性和逼真感。
6. 渲染(Rendering)渲染是将三维模型和纹理转化为图像的过程,游戏中的渲染技术可以影响游戏的视觉效果和性能。
7. 物理引擎(Physics Engine)物理引擎是用于模拟物体运动和碰撞等物理行为的软件组件,使游戏中的物体具有真实的重量、摩擦和动力学效果。
8. 网络同步(Network Synchronization)网络同步是指在多人游戏中,保持玩家之间的游戏状态和行为一致,使多个玩家能够实时交互和游玩。
9. FPS(Frames Per Second)FPS是指画面每秒的刷新率,它可以影响游戏的流畅度和玩家的体验。
较高的FPS意味着更平滑的画面和更快的反应速度。
10. Beta 测试(Beta Testing)Beta测试是指在游戏正式发布之前,将游戏提供给用户测试,收集用户反馈和意见,以改进游戏的质量和表现。
3D引擎介绍范文
3D引擎是将形象或图像处理技术及游戏开发基础知识相结合后,应用程序开发引擎(API),它用来支持三维计算机游戏,仿真,建模和动画等程序的制作,是一种软件基础设施。
它可以根据系统用户的要求,实现系统计算机的特殊效果(如3D效果),它可以加速系统开发的过程,提高计算机的运行速度,减少程序开发的成本。
3D引擎是一种用于实现三维图形的计算机技术。
它使用对象中的多边形或着色器,把虚拟空间中的物体表示出来。
它可以实现物体的运动,旋转,缩放,调整光照等特效。
3D引擎开发中必须使用最新的计算机技术,它们包括但不限于高级的图形和图像处理的技术,多线程编程技术,基于物理的模拟技术,微机控制技术等。
一些3D引擎还具有实时3D图形处理和物理处理技术,可以模拟3D环境中物体的力学运动。
因为3D引擎提供了一个全面的技术环境,它可以创造出极具吸引力的游戏体验,从而吸引更多的游戏玩家。
玩家可以自由地在3D游戏环境中行动,可以进行角色的邀请,物体的交互,以及与游戏中其他玩家的交流。
游戏行业名词解释游戏行业是一个快速发展的领域,涉及许多专业术语和行业内部的概念。
本文将解释一些常用的游戏行业名词,帮助读者更好地理解游戏行业的相关术语。
一、游戏开发1. 游戏引擎(Game Engine)游戏引擎是指用于开发游戏的软件框架,它包含了游戏的基本功能模块,例如图形渲染、物理模拟、碰撞检测等,开发者可以基于游戏引擎来创建游戏。
2. 角色扮演游戏(Role-playing Game,简称RPG)角色扮演游戏是一种以控制虚拟角色在虚拟世界中完成任务、升级等为核心玩法的游戏类型,玩家可以通过选择属性、技能和装备来打造自己的角色。
3. 第一人称射击游戏(First-person Shooter,简称FPS)第一人称射击游戏是一种以玩家在游戏中通过自己的视角进行射击战斗的游戏类型,玩家可以操纵角色在虚拟世界中进行实时战斗。
4. 开放世界游戏(Open World Game)开放世界游戏是一种玩家可以在游戏中自由探索巨大虚拟世界的游戏类型,玩家可以进行非线性的任务和活动,并且在游戏世界中有自己的自由度。
二、游戏市场和商业模式1. 付费游戏(Pay-to-Play)付费游戏是指需要玩家购买游戏本体或订阅服务才能进行游戏的商业模式,玩家需要一次性或定期支付费用才能进行游戏。
2. 免费游戏(Free-to-Play)免费游戏是指玩家可以免费下载和游玩的游戏,但游戏通常内置了一些付费道具、装备或服务,玩家可以选择购买来Enhance游戏体验。
3. 广告支持游戏(Ad-supported Game)广告支持游戏是指通过在游戏中展示广告来获得收入的商业模式,游戏通常是免费提供给玩家,而开发商通过广告收入实现盈利。
4. 游戏发行商(Game Publisher)游戏发行商是指负责将游戏产品推向市场并进行销售、宣传的公司,他们与游戏开发商合作,将游戏引入玩家视野。
三、电子竞技1. 电子竞技(Esports)电子竞技是指基于电子游戏的竞技活动,通过组织和参与各种电子游戏比赛来决出胜负,电子竞技已经发展成为一个具有专业化和商业化的全球性竞技体系。
游戏术语crdCRD(CollisionResolutionDevice)碰撞检测设备。
碰撞检测在3D游戏中至关重要,好的碰撞检测要求人物在场景中可以平滑移动,遇到一定高度内的台阶可以自动上去,而过高的台阶则把人挡住,遇到斜率较小的斜坡可以上去,斜率过大则把人挡住,在各种前进方向被挡住的情况下都要尽可能地让人物沿合理的方向滑动而不是被迫停下。
在满足这些要求的同时还要做到足够精确和稳定,防止人物在特殊情况下穿墙而掉出场景。
碰撞检测做得好了是应该的,不易被人注意到,因为这符合我们日常生活中的常识。
做得差了却很容易让人发现,人物经常被卡住不能前进或者人物穿越了障碍。
所以大部分人都觉得写碰撞检测代码是件吃力不讨好的事情,算法复杂、容易出bug、不容易出彩。
下面还是回到正题,看看我们该如何解决这个难题。
早期3D游戏的碰撞检测多数基于格子或者BSP树,基于格子的系统实现简单但精度不够,不属于严格意义的3D碰撞检测。
基于BSP树的碰撞检测一度十分流行,算法基本已经成熟定型,但它的固有缺点却使它不太适合现在的游戏。
BSP树需要很长的预处理时间不适合加载时计算,BSP划分经常会产生原多边形数三到四倍的多边形,考虑到不用保存法线、颜色、uv等信息也要增加将近一倍的资源容量,在一个大的游戏中将模型资源的容量从200M增加到400M相信是大部分人都不愿接受的。
目前对于任意复杂三角形集合(mesh)的碰撞检测多数基于BVTree(boundingvolumetree),具体可以是aabbtree,obbtree或者K—doptree,这也是当今各种物理引擎和碰撞检测引擎流行的做法。
上面是碰撞检测按数据结构不同的分类,按检测方式又可以分为离散点的碰撞检测和连续碰撞检测(CCDcontinuouscollisiondetection)。
离散点的碰撞检测是指定某一时刻T的两个静态碰撞体,看它们之间是否交迭,如果没有交迭则返回它们最近点的距离,如果交迭则返回交迭深度,交迭方向等。
3D游戏引擎术语介绍作者:韩红雷1. 3D引擎(3D engine)、3D编程语言(3D language)和3D创作系统(3D authoringsystem)的区别是什么?3D引擎是3D图形函数库。
在因特网上有很多3D引擎,其中有一些还是免费的,有些商业化的引擎价格在50美元到25万美元之间。
3D引擎需要使用外部的开发系统来编写程序,使用最多的是是微软的VisualC++。
围绕3D引擎通过编程来开发游戏具有极大的自由度,但也需要很多的经验、工作和时间。
3D编程语言提供了一种更加容易的编写3D应用程序的方法,因为你使用的是一种专门为3D游戏设计的脚本语言来编写DirectX界面。
这种语言不受3D引擎速度和自由度的影响,并且避免了使用“真正”编程语言带来的问题。
很多3D 编程语言使用Basic——一种比较容易学习的语言,但由于其落后的语言结果,所以并不适合于编写大而复杂的游戏。
比较适合于当前游戏开发需要的是基于C 或者JavaScript的语言。
创作游戏最简单的方法是使用3D创作系统——它们有自己的3D引擎,并且具备可视化编辑器,可以很快地创作一个游戏原型。
当然了,只有很简单的游戏才可能绕开编程,创作系统一般都提供脚本语言来进行编程或定制游戏。
利用创作系统,再加上对独立3D引擎的编程,可以在很短的时间内创作一款游戏,很多大的游戏公司都开始使用创作系统来开发游戏了。
一些简单的创作系统针对FPS(First or third PersonShooters),不提供或者只提供有限的脚本编程。
尽管利用他们开发的FPS游戏并没有什么市场,但如果你不希望使用脚本或者不想让你的游戏商业化的话,也可以使用他们来开发游戏。
而多数的创作系统可以用来开发任何种类的游戏或者3D应用程序。
下面是一个当下流行的系统和引擎的对比表:**代表可以被显示,但需要第三方工具来创建。
$$$表示发行或者销售游戏需要额外收费或履行特定的条件。
该表格基于2005年秋的各厂家说明书,不保证所有数据的正确性。
如果有多种许可版本,选择价格适中的版本列出。
列出的Gamestudio/A6属性基于Games tudio网站最新的更新版本。
上表并不是要说明哪个系统更好。
即使功能很相似,各系统之间在速度或稳定性方面也会有差距。
对于你来说哪个系统更加出色主要取决于你的工程、目标、个人倾向,当然还有你的预算。
你可以通过分析屏幕截图、演示和使用试用版来决定你使用哪个系统。
2. 什么是渲染器(Renderer),什么是顶点变换和光照(T&L)?渲染器是3D引擎的核心部分,它完成将3D物体绘制到屏幕上的任务。
根据3 D硬件使用方法的不同,可以分为DirectX和OpenGL两种渲染器。
OpenGL 渲染器通过OpenGL图形库来使用3D硬件,多数3D卡支持这种方法。
而Dir ectX渲染器使用微软的DirectX库——归并到Windows操作系统中。
在老的3 D卡上面,OpenGL一般绘制速度较快一些,而在现代的3D卡上面,DirectX 表现则更加出色。
现在的OpenGL版本只有一个,而DirectX版本有很多:DX6基本的3D支持,没有硬件T&L,整合于Windows95中DX7与DX6相似,但具有硬件T&L,整合于Windows98中DX8有了重大改进,支持着色器,整合于Windows2000、ME、XP中DX9和DX8类似,具有类C的着色器语言,整合于WindowsXP SP2中在一个物体被绘制到屏幕之前,必须先计算它的光照,并且将它从3D世界转换到屏幕二维坐标系中(这两个过程称为光照和顶点变换,也就是T&L,Transfor mation&Lighting)。
渲染器可以使用自己的算法(软件T&L),也可以使用3D 硬件(硬件T&L,OpenGL和DirectX7或以上版本)来完成这个任务。
在老的系统上,必须模拟硬件T&L,所以运行速度很慢;而在新一代的3D卡(GeFor ce和Radeon)上面,硬件T&L运行十分快,并且比软件T&L光照效果要好。
一些渲染器对两种方法都支持,这样可以让硬件发挥最大的效果。
3. 什么是剔除(culling)系统和LOD系统?剔除系统可以只绘制出游戏场景中未被墙及其他物体遮挡的部分。
一般的剔除系统是基于BSP树或者入口(Portal)的。
BSP树系统是最快和最有效的场景组织结构,特别是对于室内场景来说,但是BSP树必须在场景编辑器中预计算。
渲染器不支持使用八叉树(Octree)来组织场景的剔除。
多数商业化3D引擎使用基于BSP树的剔除系统。
如果使用BSP树的剔除系统的话,室内渲染速度和场景大小、对象数目无关,甚至在老的PC上都可以使游戏以正常的帧率运行。
LOD系统可以增加室外场景的帧率。
如果摄像机离物体比较远的话,它可以自动将物体转换为“简单”形体,这样就减少了每帧要绘制的多边形数目。
4. 什么是阴影贴图(Shadow Mapping)?也叫做光照贴图(LightMapping)——这是一种可以在不减少帧率的情况下达到真实感光照和阴影效果的方法。
阴影贴图编辑器允许在场景中放置任意数目的静态光源,它会为每个面预计算光流量(lightflow)和静态阴影。
现代商业3D游戏中多数都会使用到阴影贴图。
如下图所示,平滑的光照和阴影极大地提升了游戏的氛围。
5. 什么是粒子系统粒子系统是一种特效发生器,它可以制造大量的小粒子来达到某种特殊的效果,比如烟雾、火焰或者爆炸。
好的粒子效果甚至比渲染好的动画都出色,正因为如此,当前几乎所有的游戏中都使用了粒子系统。
为了制造真实的粒子效果,粒子发生器必须在不影响帧率的情况下控制成千上万的粒子运动。
简单的粒子系统只允许设置粒子的一些属性,比如生存时间、重力或者颜色;复杂的粒子系统允许为每个粒子的运动函数编写代码。
一些粒子系统也包含了光线生成器来创建光线或者轨迹。
6. 什么是着色器(shader)?着色器为图形渲染增加了新的方案,它允许顶点和像素级别的变换(transform)、光照(lighting),以及在运行时间渲染方式的修改。
一个着色器是一段小脚本,运行在图形硬件上,为渲染到屏幕上的每个顶点或像素提供渲染方式。
这就为用户提供了一种新的灵活的像素渲染的方法。
顶点和像素着色器可以用来生成真实感水波、卡通风格、为模型覆盖毛发或者控制火山的熔岩等。
很多新的游戏引擎都支持着色器。
7. 什么是骨骼动画(bones animation)当前有两种模型动画的方式:顶点动画和骨骼动画。
顶点动画中,每帧动画其实就是模型特定姿态的一个“快照”。
通过在帧之间插值的方法,引擎可以得到平滑的动画效果。
在骨骼动画中,模型具有互相连接的“骨骼”组成的骨架结构,通过改变骨骼的朝向和位置来为模型生成动画。
骨骼动画比顶点动画要求更高的处理器性能,但同时它也具有更多的有点,骨骼动画可以更容易、更快捷地创建。
不同的骨骼动画可以被结合到一起——比如,模型可以转动头部、射击并且同时也在走路。
一些引擎可以实时操纵单个骨骼,这样就可以和环境更加准确地进行交互——模型可以俯身并向某个方向观察或射击,或者从地上的某个地方捡起一个东西。
多数引擎支持顶点动画,但不是所有的引擎都支持骨骼动画。
一些引擎包含面部动画系统,这种系统使用通过音位(phoneme)和情绪修改面部骨骼集合来表达面部表情和嘴部动作。
8. 什么是保存/读取系统(save/load system)?这种系统允许终端用户保存整个游戏状态,它自动“冻结”所有正在运行的脚本和对象以及游戏变量,将它们写到一个文件中,有时候也有一张屏幕截图。
如果要在以后的某个时间继续游戏或者在任意点离开和进入游戏场景的话,这种功能就十分必要。
存储整个游戏状态看起来并没有什么难度,但在实际开发的时候却并不简单,它必须在游戏引擎的核心代码中实现。
如果没有这个系统,为了保存游戏,就必须写一个脚本来存储每个变量和对象的状态——十分难使用,只有可能应用在简单的游戏中。
所以说来,多数商业化高端引擎都包括存取系统。
9. 什么是物理引擎?物理引擎通过为刚性物体赋予真实的物理属性的方式来计算它们的运动、旋转和碰撞反映。
为每个游戏使用物理引擎并不是完全必要的——简单的“牛顿”物理(比如加速和减速)也可以在一定程度上通过编程或编写脚本来实现。
然而,当游戏需要比较复杂的物体碰撞、滚动、滑动或者弹跳的时候(比如赛车类游戏或者保龄球游戏),通过编程的方法就比较困难了。
物理引擎使用对象属性(动量、扭矩或者弹性)来模拟刚体行为,这不仅可以得到更加真实的结果,对于开发人员来说也比编写行为脚本要更加容易掌握。
好的物理引擎允许有复杂的机械装置,像球形关节、轮子、气缸或者铰链。
有些也支持非刚性体的物理属性,比如流体。
物理引擎可以从另外的厂商购买,而一些游戏开发系统具备完整的物理引擎。
但是要注意,虽然有的系统在其特性列表中说他们有物理引擎,但其实是一些简单的加速和碰撞检测属性而已。
10. 什么是客户端/服务器(client/server)网络系统?现在的多人游戏存在两种基本的网络系统类型:点对点(peer-to-peer)和客户端/服务器。
在点对点系统中,所有连接起来的PC地位都是平等的,每个PC独立运行游戏,并且同其他PC都进行更新信息的传输。
而在客户端/服务器系统中,其中的一个PC是掌管和运行游戏的服务器,其他所有的PC都是客户端,只进行玩家属性的更新和从服务器接收信息。
为了不另外增加PC,一般情况下,一个PC在作为服务器的同时也是客户端。
点对点系统在最初的多人游戏中使用,但在现在的游戏中很少使用这种网络系统,因为它有很多缺陷。
点对点游戏不能保证同步运行,比如一个子弹在一台P C上击中了一个目标,但可能在另一台PC上却没有(这是一致性问题)。
另外,由于连接起来的PC通信经常冲突,所以连接到一起的玩家数目不可能太多。
超过4个玩家数目的联网游戏一般就要使用客户端/服务器系统。
区域系统(zonesy stem)是改进的客户端/服务器系统,它可以有多个服务器,游戏世界可以分割为由不同服务器控制的多个场景(区域)。
区域系统用在玩家数量无限的大型多人在线游戏中。
客户端/服务器系统中允许的玩家数量多少主要取决于多玩家通信时所需带宽的大小。
如果玩家移动很快而可预知的移动很少的话,需要的带宽就大。
在最坏的情况下(单服务器在线空中格斗游戏),利用modem连接的玩家数量一般要低于25个。
如果游戏世界被分成多个区域,并且玩家仅仅是走路或者交谈的话,即使1000个玩家也是可以同时在线的。
11. 什么是脚本编译器(script compiler)?多数的3D游戏系统包含脚本语言,可以用来控制物体或角色。