3D游戏制作原理? 懂得进!

3D游戏制作原理? 懂得进!,第1张

3D游戏站:www3dgamestudiocom

它用的编程语言是C++

如果是要做出比较正规的3D游戏还需要会应用很多软件

一款3D游戏需要这几个大致的步骤

首先你需要有个企划案就是大致什么样的游戏内容等等

然后需要进行游戏的2D和3D美术 又需要会Maya3DS-Max等美术软件做效果

你还要需要懂游戏程式语言,C语言,JAVA等等设置引擎

"引擎"是程序员把游戏的渲染方式,模型数量骨骼绑定等等统一编程而做出来的一套程序,因为"引擎"本身就是相当与一套软件了 做游戏要设定面数,渲染量等等,一套引擎直接把规格设定好了

3D就是三维立体的意思,在现实生活中我们看见的东西都有长、宽、高,这三个量就叫做三维,如果能看到一个物体的长宽高,这个物体就是立体的。一般的画都是二维的,也就是说只有其中两个量,可能只有长与宽,可能只有长与高,也可能只有及宽与高。比如一些画中的人,我们能看见他的身高,身宽,但是看不到他的厚度,就是人的肚皮到背脊的距离,这样这个人就没有立体感了。现在许多的网络游戏都是2D的,没有很逼真的如身临其境的感觉,还有**也是2D的。现在3D网络游戏兴起了,《魔兽世界》就是一个很好的3D游戏,3D**也兴起了,给人身临其境的感觉。所以,无论是3D画,3D动漫,3D游戏,3D**都比2D更胜一筹,但制作起来也比2D困难。

引擎3是一个面向下一代游戏机和DirectX 9个人电脑的完整的游戏开发平台,提供了游戏开发者需要的大量的核心技术、数据生成工具和基础支持。

虚幻引擎3的设计目的非常明确,每一个方面都具有比较高的易用性,尤其侧重于数据生成和程序编写的方面,这样的话,美工只需要程序员的很少量的协助,就能够尽可能多地开发游戏的数据资源,并且这个过程是在完全的可视化环境中完成的,实际操作非常便利;

与此同时,虚幻引擎3还能够为程序员提供一个具有先进功能的,并且具有可扩展性的应用程序框架(Framework),这个框架可以用于建立、测试和发布各种类型的游戏。

◎ 64位色高精度动态渲染管道。

Gamma校正和线性颜色空间渲染器提供了完美的颜色精度,同时支持了各种后期特效例如光晕,镜头光环和景深等效果。

在最新的一代显示芯片发布的过程中,我们注意到了一个非常明显的特点,就是新一代的显示芯片已经不再满足于传统的32位色深,转而需要更加高精度的颜色范围,这一点在NV40和R420身上都能非常明显的看出来。在NV40上,这种技术被称为HPDR技术,而在R420身上,这种技术也有所体现。

◎ 支持当前所有的基于像素的光照和渲染技术,包括使用法线贴图技术的参数化的Phong光照;虚拟位移贴图;光线衰减函数;采用预计算的阴影遮罩技术以及使用球形harmonic贴图的预计算的凹凸自阴影

◎ 高级的动态阴影。

虚幻引擎3提供对下列3种阴影技术的完全支持:

· 采用动态模板缓冲的阴影体积技术,能够完整支持动态光源,这样就能在场景中所有物体上精确地投射阴影。

· 能够让动态的角色在场景中投射出动态的、柔和的模糊阴影,这个过程是通过使用16X超级取样的阴影缓冲实现的

· 采用了拥有极高质量和极高性能的预先计算出的阴影遮罩,从而可以将静态光源的交互现象离线处理,同时保留了完整的动态高光和反射效果。

◎ 所有支持的阴影技术都是可视化的,并且可以按照美工的意愿自由混合。另外,同时可以与有颜色的衰减函数结合,从而实现具有合适阴影的平行光、聚光灯效果,以及投射光效果

角色能够在虚幻引擎3中使用阴影技术产生动态的软阴影

◎ 强大的材质系统,使得美工可以在实时图形化界面中建立任意复杂的实时Shader,而这个界面的友好度可与Maya的非实时Shader图形编辑界面媲美

◎ 材质框架是模块化的,所以程序员不仅可以加入新的Shader程序,还可以加入能够让美工随意与其他组件连接的Shader组件,从而可以实现Shader代码的动态合成。

◎ 完全支持室内和室外环境的无缝连接,在任何地方都支持的动态每象素光照和阴影。

◎ 美工可以通过一个可动态变形的基本高度图来建立地形,并使用多层混合材质,这其中包括位移贴图,法线贴图和任意复杂的材质,动态的基于LOD的细分,以及植被。

另外,地形系统还支持美工控制的自然效果,如平地上的植被,陡坡上的岩石和山顶上的雪

◎ 体积环境效果,包括高度雾和物理上精确的距离雾

◎ 刚体物理系统,支持游戏者和游戏中的物体,布娃娃角色动画以及复杂碰撞等物体交互方式。

布娃娃(Ragdoll)系统,是目前最为流行的一种非常高级的物理引擎,能够付给物体以一定的质量,形状等特性,从而获得非常逼真的力学动态效果。Half Life 2、Pain Killer等著名游戏均采用了这个物理引擎。

◎ 所有可渲染的材质都含有物理特性,例如摩擦系数等参数。

在虚幻引擎3提供的编辑工具UnrealEd中,能够对物体的属性进行实时修改

◎ 符合物理原理的声音效果

◎ 完全整合的基于物理原理的交通工具支持,包括游戏者控制,人工智能和网络

◎ UnrealEd内建的可视化物理建模工具,支持对于模型和骨骼动画网格的用于优化碰撞检测的图元的建立;约束编辑;在编辑器内可交互的物理模拟和调整

● 动画系统

◎ 骨骼动画系统;支持每顶点可达4骨骼同时影响的效果以及复杂的骨骼结构

◎ 动画由一棵动画物体树驱动,包括:

· 混合控制器,进行对嵌套的动画物体之间的多路混合。

· 数据驱动的控制器,封装动作捕捉或手动制作的动画数据。

· 物理控制器,连接到刚体动态引擎,用来实现布娃娃系统的游戏者和NPC动画和对力的物理响应。

· 过程动画控制器,以C++或UnrealScript实现,为了实现一些如使一个NPC的头部和眼睛跟踪一个在关卡中行走的游戏者,或使一个角色根据健康情况和疲劳度作出不同动作等特性。

◎ 为3D Studio Max和Maya制作的导出工具,用于向引擎中导出赋予蒙皮权重的网格,骨骼和动画序列。

● 游戏框架以及人工智能

◎ 提供了一个支持普通游戏对象(如游戏者,NPC,物品,武器和触发器)的面向对象的游戏框架。

◎ 丰富的多级别AI系统,支持寻路、复杂关卡游历、单独决策和组队AI

· 对如触发器,门和升降机等普通游戏对象敏感的寻路框架,允许复杂的游历设定,使得NPC可以按下开关,打开门,并绕过障碍物。

· 游历框架带有短期战术战斗、掩护和撤退的路线网。

· 基于小队的AI框架,适合第一人称射击、第三人称射击和战术战斗游戏。

◎ AI路径在UnrealEd中可见并可由关卡编辑者编辑,允许自定义和提示

◎可见的AI脚本工具,使设计者可以创建复杂的交互性游戏设定,例如游戏者目标,通用的游戏事件触发器和交互式过场动画

◎ UnrealMatinee,一个基于时间线的可视化序列、动画和曲线路径工具。设计者可以使用此工具建立游戏中的过场动画,可以是交互的或非交互的,通过动画序列化、移动包括摄像机在内的对象,控制声音和视觉特效,并触发游戏和AI事件。

UnrealEd中的“Matinee”工具,能够编辑基于时间轴的事件序列

◎ 支持各种平台的输出格式,包含51环绕立体声和高品质杜比数码音效。

◎ 3维声源位置设置,多普勒效应。

多普勒效应:是指当发声物体在运动时,声音的音调会随着物体移动速度而改变其高低——声音频率的变化,这个原理也被运用在声卡3D发声原理之中。

◎ 在UnrealEd中的可视化音效工具可以为声音设计者提供对音效的全面的控制,声音强度,顺序,循环,过滤,调制,变调和随机化。声音参数被从代码中分离开,使设计者可以控制所有的与游戏、过场动画和动画序列相关的声音。

◎ 支持所有平台的主要声音格式,包括PCM,ADPCM,游戏机对应的声音压缩格式和Ogg Vorbis。

◎ 支持游戏机上的声音流。

◎ Internet和局域网游戏已经成为Epic的竞赛游戏如Unreal Tournament 2004的一大特征。虚幻引擎长时间以来一直提供灵活的高级网络架构,适合于各种类型的游戏。

◎ Internet和局域网游戏在PC和所有游戏机平台上都被完全支持

Unreal Tournament 2004的游戏中带的服务器浏览器

◎ 虚幻引擎的网络游戏部分编程是高层的和数据驱动的,允许由Unreal脚本代码指定在客户端和服务器之间联系的变量和函数,来保留一个同步的对游戏状态的近似。底层游戏网络传输是基于UDP的并能够将可靠和不可靠传输方式结合,来对游戏感进行优化,即使在低带宽和高延迟的环境下。

◎ 客户端-服务器模式下最多支持64个游戏者同时游戏。同时支持非服务器模式(点对点模式)下的16游戏者同时游戏。

◎ 支持不同平台间的网络互连(例如PC服务器和游戏机客户端;Windows, MacOS和Linux客户端共同进行游戏)。

◎ 所有游戏特性在网络游戏模式下都被支持,包括基于交通工具的多人游戏,带有NPC和机器人的组队竞技,单人模式下的协同游戏等等。支持自动下载,包括跨平台的一致的Unreal脚本代码。这项特性使得从用户自己创建的地图到奖励包,到完整的游戏mod都可以随意获得。

◎ 提供了一个"主服务器"组件来跟踪世界范围内的服务器,提供给游戏者过滤的服务器列表,等等。世界范围内的游戏统计跟踪系统

◎ 请注意我们不会提供一个适合大量玩家在线网络游戏的服务器或网络框架。尽管这项工作是一个需要多人多年工作的工程,仍然有很多小队已经使用Unreal引擎做了这件事(包括NCSoft的《天堂2》和EA的《创世纪X》),这表明了使用Unreal引擎作为MMORPG游戏客户端和工具的可能性。

● UnrealEd内容创建工具

◎ Uneral编辑器(UnrealEd)是一个纯粹的"所见即所得"的数据生成工具,用来填充3D Studio Max, Maya和可发行游戏之间的空隙。

◎ 对游戏对象如游戏者,NPC,物品,AI路点和光源的可视化放置与编辑-带有完全的实时预览,包括100%的动态阴影。包含一个数据驱动的编辑框架,允许关卡设计者容易地自定义任何游戏对象,以及允许程序员通过脚本向设计者能够使用新的可自定义的属性。

可视化的材质浏览器,并能提供搜索和管理的功能

◎ 美工可以通过实时地形编辑工具来提高地面,向地面绘制Alpha层来控制各层的混合并组装各层,碰撞检测数据和位移贴图

◎ 可视化材质编辑器。通过可视化的连接颜色、alpha和贴图坐标系统和程序员定义的材质组件,美工可以建立从简单的多层混合材质到极为复杂的材质,并且这些材质可以动态地与场景中的光源交互

◎ 一个强大的浏览框架,可以用来寻找、预览和组织各种类型的游戏资源

◎ 美工可以使用动画工具来引入模型、骨骼和动画,并将它们连接到游戏中的事件如声音和脚本事件。

可视化的材质编辑器让美工能够轻易的创建能够在Shader程序中应用的素材

◎ 在编辑器中的"Play Here"按钮使得在编辑器中只要点击一下鼠标即可进行游戏。这样,你可以在编辑器中一边测试游戏,一边进行编辑。

◎ 每份Unreal引擎授权都包含了重新组合分配UnrealEd的权利,使得游戏制作组可以将他们的数据创建工具与游戏一起发布给mod制作团体。Mod提供者已经成为当今很多卓越的PC游戏成功的一个重要因素,而且我们可以预见在将来,对基于PC的mod开发的支持也可能成为游戏机游戏的重要因素。

◎ 我们提供了3D Studio Max和Maya来将模型带到虚幻引擎中,带有网格拓扑信息,贴图坐标,平滑组,材质名称,骨骼结构和骨骼动画数据。

可视化的地形编辑器能够实时体现出地形的变化

◎ 所有您所希望从一个现代数据编辑工具中得到的东西:多层撤销/重复功能,托拽,拷贝粘贴,自定义快捷键和颜色配置,视图管理。

在虚幻引擎3中我们的大多数角色都是由两个网格模型建立的:一个具有几千多边形的实时网格,和一个数百万多边形的细节网格。我们提供了一个分布式计算的程序,对细节网格进行光线跟踪,并且从高多边形几何结构生成一张法线贴图,在游戏中赋予实时网格。结果是在游戏中的网格带有高多边形网格的所有光影细节信息,但是仍然可以十分容易的实时渲染。

使用法线贴图实现的超过1亿个三角形效果,实际上只有50万个三角形

虚幻引擎3包含了例程部分和100%的源代码,包括引擎本身、编辑器、Max/Maya导出插件和所有该公司内部开发的游戏的游戏代码。

◎ 可扩展的、面向对象的C++引擎,带有用于静态和动态加载代码和资源的软件架构,可移植性,易于调试。

虚幻引擎3提供的脚本编辑器

◎ Unreal脚本语言提供了对元数据的自动支持;支持十分灵活的文件格式向下兼容性;支持让关卡编辑者使用脚本属性;基于GUI的脚本调试器;对多种重要游戏编程概念的本地语言支持,例如动态有限状态机和基于时间的代码执行。

◎ 模块化材质组件接口来扩展可视化工具,并且在可视化Shader GUI中加入新的美工可用的Shader组件。

◎ 源代码控制友好的软件架构,对大型工作组和多平台工程的可扩展性。

◎ Unreal引擎3被作为一个可以在PC和任何下一代家用游戏主机上编译的统一的代码基础。所有游戏组件和数据文件都可以在各种平台上兼容,为了PC上代码和资源的快速周转,和家用机和PC上的游戏测试。

◎ 针对家用游戏机的可自由寻址的DVD读取优化过程,能够用大于80%的DVD物理传输率上读取关卡。

虚幻引擎3还可以方便的支持多种语言

◎ 虚幻引擎3数据资源和代码是可地方化的,能够通过一个简单的框架来扩展游戏中全部的文字、声音、图像和视频。虚幻引擎3是基于Unicode字符级的,并且完全支持16位Unicode字体和文字输入,包括引入TrueType字体到可渲染的位图字体。我们的游戏已经使用9种语言发布,包括中文、日文和韩文。

注重细节,其他特殊规格一览

这里是一些我们在建立下一个基于虚幻引擎3游戏的指导方针。不同类型的游戏将会有十分不同的游戏者数目,场景大小和表现。所以这些规范只能作为对一个项目而不是对所有项目的指导。

● 角色

对于每个主要角色和静态网格资源,我们建立两个版本的网格模型:一个可选然的带有唯一UV坐标的网格模型,和一个只带有几何信息的细节网格模型我们通过虚幻引擎3来处理这两个模型,基于细节模型的所有几何信息来为可渲染模型生成一个高分辨率的法线贴图。

可渲染模型:我们在建立可渲染模型时使用3000到12000个三角形,在场景中同时可见的角色有5到20个左右。

◎ 细节网格:我们使用一百万到八百万三角形来为标准的角色建立细节网格模型。这对于为每个角色建立一到两个2048乘2048大小的法线贴图已经足够了。

◎ 骨骼:我们的每个标准角色都有100到200块骨头,包括了有关节的脸部、手部和手指。

● 法线贴图和材质贴图

我们在建立大部分角色和场景的普通贴图和法线贴图时都使用2048乘2048分辨率的贴图。我们感觉这是一个对于2006年左右的运行于中档PC上的游戏来说的一个十分合理的目标。下一代的游戏主机可能需要将贴图大小减少2倍,而低端PC则需要减少4倍,取决于贴图数量和场景复杂度。

● 环境

典型的场景环境包括1000到5000可渲染的对象,包括静态网格和具有骨骼的网格。对于当前3D加速卡的合理性能,我们打算将在任何场景中出现的可视物体数量保持在300到1000左右。我们的典型的更大的场景中最多有20万到120万的可见三角形。

● 光照

没有对光源数量的硬编码限制,但是为了性能考虑,我们试图将大范围的光源数量限制到2到5个,因为每个光源/物体的交互都是基于引擎中比较耗时的高精度每象素光照和阴影渲染管道。用于高光和细节光照的小范围的光源明显的要比影响整个场景的大范围光省时。

游戏这类非常特殊的软件在人们的实际工作中并不能够创造任何实际的价值,但是却能够让人们在使用电脑的过程中得到放松。一个游戏能否给消费者带来尽可能完美的感官上的享受就成为了一个游戏能否获得成功的最基本的因素。

而对于游戏中最为流行的3D游戏来讲,开发的难度随着游戏容量不断攀升,如何能够迅速的开发出一个个高质量的游戏就成了关键,采用游戏引擎和游戏内容分离的方式自然是目前最好的一种解决方案。

于是作为游戏中的灵魂,游戏引擎的成功与否将决定一系列游戏的最终效果。今天我们介绍了目前最为先进的游戏引擎之一虚幻引擎的最新版本,让大家对游戏引擎有了一定的概念上的理解,也知道了在一个游戏幕后的一些事情。

总的来说,虚幻引擎3的确是一个非常先进的引擎,它提供的功能非常先进,几乎融合了目前顶级显卡中提供的所有功能,在这样的技术背景下,这款引擎带来了非常绚丽的效果,其演示的画面已经足以震憾每一位观众了。

  你好!!

  看来您是真正玩游戏的,我很少见到有人提出如此专业的问题,,,虽然我懂,但是不敢冒然回答如此专业的问题,为了对您负责,还是提供专业资料吧!

  不过最后一部分是我自己的意见,供您参考!

  《以下是摘自日本著名杂志《FAMI通》游戏中文版评论杂志》

  在阅读各种游戏介绍的时候我们常常会碰见“引擎”(Engine)这个单词,引擎在游戏中究竟起着什么样的作用?它的进化对于游戏的发展产生了哪些影响?希望下面这篇文章能为大家释疑。

  一、什么是引擎

  我们可以把游戏的引擎比作赛车的引擎,大家知道,引擎是赛车的心脏,决定着赛车的性能和稳定性,赛车的速度、操纵感这些直接与车手相关的指标都是建立在引擎的基础上的。游戏也是如此,玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏的引擎直接控制的,它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们同时、有序地工作。简单地说,引擎就是“用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等等。”

  可见,引擎并不是什么玄乎的东西,无论是2D游戏还是3D游戏,无论是角色扮演游戏、即时策略游戏、冒险解谜游戏或是动作射击游戏,哪怕是一个只有1兆的小游戏,都有这样一段起控制作用的代码。经过不断的进化,如今的游戏引擎已经发展为一套由多个子系统共同构成的复杂系统,从建模、动画到光影、粒子特效,从物理系统、碰撞检测到文件管理、网络特性,还有专业的编辑工具和插件,几乎涵盖了开发过程中的所有重要环节,以下就对引擎的一些关键部件作一个简单的介绍。 首先是光影效果,即场景中的光源对处于其中的人和物的影响方式。游戏的光影效果完全是由引擎控制的,折射、反射等基本的光学原理以及动态光源、彩色光源等高级效果都是通过引擎的不同编程技术实现的。

  其次是动画,目前游戏所采用的动画系统可以分为两种:一是骨骼动画系统,一是模型动画系统,前者用内置的骨骼带动物体产生运动,比较常见,后者则是在模型的基础上直接进行变形。引擎把这两种动画系统预先植入游戏,方便动画师为角色设计丰富的动作造型。 引擎的另一重要功能是提供物理系统,这可以使物体的运动遵循固定的规律,例如,当角色跳起的时候,系统内定的重力值将决定他能跳多高,以及他下落的速度有多快,子弹的飞行轨迹、车辆的颠簸方式也都是由物理系统决定的。

  碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个3D物体撞在一起的时候,这种技术可以防止它们相互穿过,这就确保了当你撞在墙上的时候,不会穿墙而过,也不会把墙撞倒,因为碰撞探测会根据你和墙之间的特性确定两者的位置和相互的作用关系。

  渲染是引擎最重要的功能之一,当3D模型制作完毕之后,美工会按照不同的面把材质贴图赋予模型,这相当于为骨骼蒙上皮肤,最后再通过渲染引擎把模型、动画、光影、特效等所有效果实时计算出来并展示在屏幕上。渲染引擎在引擎的所有部件当中是最复杂的,它的强大与否直接决定着最终的输出质量。

  引擎还有一个重要的职责就是负责玩家与电脑之间的沟通,处理来自键盘、鼠标、摇杆和其它外设的信号。如果游戏支持联网特性的话,网络代码也会被集成在引擎中,用于管理客户端与服务器之间的通信。

  通过上面这些枯燥的介绍我们至少可以了解到一点:引擎相当于游戏的框架,框架打好后,关卡设计师、建模师、动画师只要往里填充内容就可以了。因此,在3D游戏的开发过程中,引擎的制作往往会占用非常多的时间,《马科斯·佩恩》的MAX-FX引擎从最初的雏形Final Reality到最终的成品共花了四年多时间,LithTech引擎的开发共花了整整五年时间,耗资700万美元,Monolith公司(LithTech引擎的开发者)的老板詹森·霍尔甚至不无懊悔地说:“如果当初意识到制作自己的引擎要付出这么大的代价的话,我们根本就不可能去做这种傻事。没有人会预料得到五年后的市场究竟是怎样的。”

  正是出于节约成本、缩短周期和降低风险这三方面的考虑,越来越多的开发者倾向于使用第三方的现成引擎制作自己的游戏,一个庞大的引擎授权市场已经形成。

  二、引擎的进化

  曾经有一段时期,游戏开发者关心的只是如何尽量多地开发出新的游戏并把它们推销给玩家。尽管那时的游戏大多简单粗糙,但每款游戏的平均开发周期也要达到8到10个月以上,这一方面是由于技术的原因,另一方面则是因为几乎每款游戏都要从头编写代码,造成了大量的重复劳动。渐渐地,一些有经验的开发者摸索出了一条偷懒的方法,他们借用上一款类似题材的游戏中的部分代码作为新游戏的基本框架,以节省开发时间和开发费用。根据马老先生的生产力学说,单位产品的成本因生产力水平的提高而降低,自动化程度较高的手工业者最终将把那些生产力低下的手工业者淘汰出局,引擎的概念就是在这种机器化作业的背景下诞生的。

  每一款游戏都有自己的引擎,但真正能获得他人认可并成为标准的引擎并不多。纵观九年多的发展历程,我们可以看出引擎最大的驱动力来自于3D游戏,尤其是3D射击游戏。尽管像Infinity这样的2D引擎也有着相当久远的历史,从《博德之门》(Baldur’s Gate)系列到《异域镇魂曲》(Planescape:Torment)、《冰风谷》(Icewind Dale)直至今年夏天将要发布的《冰风谷2》,但它的应用范围毕竟局限于“龙与地下城”风格的角色扮演游戏,包括颇受期待的《夜在绝冬城》(Neverwinter Nights)所使用的Aurora引擎,它们都有着十分特殊的使用目的,很难对整个引擎技术的发展起到推动作用,这也是为什么体育模拟游戏、飞行模拟游戏和即时策略游戏的引擎很少进入授权市场的原因,开发者即便使用第三方引擎也很难获得理想的效果,采用《帝国时代2》(Age of Empires)引擎制作的《星球大战:银河战场》(Star Wars:Galactic Battleground)就是一个最好的例子。

  因此,下面对引擎的历史回顾将主要围绕动作射击游戏的变迁展开,动作射击游戏同3D引擎之间的关系相当于一对孪生兄弟,它们一同诞生,一同成长,互相为对方提供着发展的动力。

  引擎的诞生(1992年~1993年)

  1992年,3D Realms公司/Apogee公司发布了一款只有2兆多的小游戏——《德军司令部》(Wolfenstein 3D),稍有资历的玩家可能都还记得初接触它时的兴奋心情,用“革命”这一极富煽动色彩的词语也无法形容出它在整个电脑游戏发展史上占据的重要地位。这部游戏开创了第一人称射击游戏的先河,更重要的是,它在X轴和Y轴的基础上增加了一根Z轴,在由宽度和高度构成的平面上增加了一个向前向后的纵深空间,这根Z轴对那些看惯了2D游戏的玩家造成的巨大冲击可想而知。

  Wolfenstein 3D引擎的作者是大名鼎鼎的约翰·卡马克,这位id Software公司的首席程序师正是凭借这款Wolfenstein 3D引擎在游戏圈里站稳了脚跟。事实上,《德军司令部》并非第一款采用第一人称视角的游戏,在它发售前的几个月,Origin公司就已经推出了一款第一人称视角的角色扮演游戏——《创世纪:地下世界》(Ultima Underworld),这款角游戏采用了类似的技术,但它与Wolfenstein 3D引擎之间有着相当大的差别,举例来说,《地下世界》的引擎支持斜坡,地板和天花板可以有不同的高度,分出不同的层次,玩家可以在游戏中跳跃,可以抬头低头,这些特性Wolfenstein 3D引擎都无法做到,而且从画面上看,《德军司令部》更接近漫画风格而不是传统的像素画面。

  尽管从技术细节上看,Wolfenstein 3D引擎比不上《创世纪:地下世界》的引擎,但它却更好地利用了第一人称视角的特点,快速火爆的游戏节奏使人们一下子记住了“第一人称射击游戏”这个单词,而不是“第一人称角色扮演游戏”。《德军司令部》后来还发布过一款名义上的续集——《三元的崛起》(Rise of the Triad),这款游戏在Wolfenstein 3D引擎的基础上增加了许多重要特性,包括跳跃和抬头低头等动作。

  引擎诞生初期的另一部重要游戏同样是出自id Software公司的一款非常成功的第一人称射击游戏——《毁灭战士》(Doom)。Doom引擎在技术上大大超越了Wolfenstein 3D引擎,《德军司令部》中的所有物体大小都是固定的,所有路径之间的角度都是直角,也就是说你只能笔直地前进或后退,这些局限在《毁灭战士》中都得到了突破。尽管游戏的关卡还是维持在2D平面上进行制作,没有“楼上楼”的概念,但墙壁的厚度可以为任意,并且路径之间的角度也可以为任意,这使得楼梯、升降平台、塔楼和户外等各种场景成为可能。

  由于Doom引擎本质上依然是二维的,因此可以做到同时在屏幕上显示大量角色而不影响游戏的运行速度,这一特点为游戏创造出了一种疯狂刺激的动作风格,在这方面迄今为止大约只有《英雄萨姆》(Serious Sam)系列能与之相比,除此之外还没有哪款3D引擎能在大批敌人向你涌来的时候依然保持游戏的流畅,这也是为什么如今市面上的大部分第一人称射击游戏都在积极地培养玩家的战术运用能力、提高玩家的射击准确率而拒绝滥砍滥杀的主要原因之一。值得一提的是,尽管Doom引擎缺乏足够的细节度,但开发者仍然在《毁灭战士》中表现出了惊人的环境效果,其纯熟的设计技巧实在令人赞叹。

  不过更值得纪念的是,Doom引擎是第一个被用于授权的引擎。1993年底,Raven公司采用改进后的Doom引擎开发了一款名为《投影者》(ShadowCaster)的游戏,这是游戏史上第一例成功的嫁接手术。1994年Raven公司采用Doom引擎开发《异教徒》(Heretic),为引擎增加了飞行的特性,成为跳跃动作的前身。1995年Raven公司采用Doom引擎开发《毁灭巫师》(Hexen),加入了新的音效技术、脚本技术以及一种类似集线器的关卡设计,使你可以在不同关卡之间自由移动。Raven公司与id Software公司之间的一系列合作充分说明了引擎的授权无论对于使用者还是开发者来说都是大有裨益的,只有把自己的引擎交给更多的人去使用才能使引擎不断地成熟起来。

  《毁灭战士》系列本身就相当成功,大约卖了350万套,而授权费又为id Software公司带来了一笔可观的收入。在此之前引擎只是作为一种自产自销的开发工具,从来没有哪家游戏商考虑过依靠引擎赚钱,Doom引擎的成功无疑为人们打开了一片新的市场。

  引擎的转变(1994年~1997年)

  在引擎的进化过程中,肯·西尔弗曼于1994年为3D Realms公司开发的Build引擎是一个重要的里程碑,Build引擎的“肉身”就是那款家喻户晓的《毁灭公爵》(Duke Nukem 3D)。《毁灭公爵》已经具备了今天第一人称射击游戏的所有标准内容,如跳跃、360度环视以及下蹲和游泳等特性,此外还把《异教徒》里的飞行换成了喷气背包,甚至加入了角色缩小等令人耳目一新的内容。在Build引擎的基础上先后诞生过14款游戏,例如《农夫也疯狂》(Redneck Rampage)、《阴影武士》(Shadow Warrior)和《血兆》(Blood)等,还有台湾艾生资讯开发的《七侠五义》,这是当时(至今依然是)国内不多的几款3D射击游戏之一。Build引擎的授权业务大约为3D Realms公司带来了一百多万美元的额外收入,3D Realms公司也由此而成为了引擎授权市场上的第一个“暴发户”。不过从总体来看,Build引擎并没有为3D引擎的发展带来任何质的变化,突破的任务最终由id Software公司的《雷神之锤》(Quake)完成了。

  《雷神之锤》紧跟在《毁灭公爵》之后发售,两者孰优孰劣一时之间成为玩家的热门话题。从内容的精彩程度来看《毁灭公爵》超过《雷神之锤》不少,但从技术的先进与否来看,《雷神之锤》是毫无疑问的赢家。Quake引擎是当时第一款完全支持多边形模型、动画和粒子特效的真正意义上的3D引擎,而不是Doom、Build那样的25D引擎。此外Quake引擎还是连线游戏的始作俑者,尽管几年前的《毁灭战士》也能通过调制解调器连线对战,但最终把网络游戏带入大众的视野之中的是《雷神之锤》,是它促成了电子竞技产业的发展。

  一年之后,id Software公司推出《雷神之锤2》,一举确定了自己在3D引擎市场上的霸主地位。《雷神之锤2》采用了一套全新的引擎,可以更充分地利用3D加速和OpenGL技术,在图像和网络方面与前作相比有了质的飞跃,Raven公司的《异教徒2》(Heretic II)和《军事冒险家》(Soldier of Fortune)、Ritual公司的《原罪》(Sin)、Xatrix娱乐公司的《首脑:犯罪生涯》(Kingpin:Life of Crime)以及离子风暴工作室去年夏天刚刚发布的《安纳克朗诺克斯》(Anachronox)都采用了Quake II引擎。

  Quake II引擎的授权模式大致如下:基本许可费从40万美元到100万美元不等,版税金视基本许可费的多少而定,40万美元的许可费大约需提取10%以上的版税金,100万美元的许可费则提取很少一部分版税金。这样算下来,《雷神之锤2》通过引擎授权所获得的收入至少有一千万美元,尽管游戏本身的销售业绩比起《毁灭战士》来要差很多,大约卖了110多万套,收入在4500万美元左右,但在授权金这一块它所获得的盈利显然要远远高于《毁灭战士》,此时的引擎已经从一种单纯的工具变成了一块令人垂涎欲滴的肥肉。

  俗话说“一个巴掌拍不响”,没有实力相当的竞争者,任何市场都无法发展起来的。正当Quake II独霸整个引擎市场的时候,Epic Megagames公司(即现在的Epic游戏公司)的《虚幻》(Unreal)问世了。毫不夸张,第一次运行这款游戏的时候,我的确被眼前的画面惊呆了,尽管当时只是在300x200的分辨率下运行的这款游戏(四大悲事之一:玩游戏机器不够劲)。除了精致的建筑物外,游戏中的许多特效即便在今天看来依然很出色,荡漾的水波,美丽的天空,庞大的关卡,逼真的火焰、烟雾和力场等效果。从单纯的画面效果来看,《虚幻》是当之无愧的佼佼者,其震撼力完全可以与人们第一次见到《德军司令部》时的感受相比。 Unreal引擎可能是使用最广的一款引擎,在推出后的两年之内就有18款游戏与Epic公司签订了许可协议,这还不包括Epic公司自己开发的《虚幻》资料片《重返纳帕利》,其中比较近的几部作品如第三人称动作游戏《北欧神符》(Rune)、角色扮演游戏《杀出重围》(Deus Ex)以及永不上市的第一人称射击游戏《永远的毁灭公爵》(Duke Nukem Forever),这些游戏都曾经或将要获得不少好评。

  Unreal引擎的应用范围不限于游戏制作,还涵盖了教育、建筑等其它领域。Digital Design公司曾与联合国教科文组织的世界文化遗产分部合作采用Unreal引擎制作过巴黎圣母院的内部虚拟演示,Zen Tao公司采用Unreal引擎为空手道选手制作过武术训练软件,另一家软件开发商Vito Miliano公司也采用Unreal引擎开发了一套名为“Unrealty”的建筑设计软件,用于房地产的演示。

  这款与《雷神之锤2》同时代的引擎经过不断的更新,至今依然活跃在游戏市场上,丝毫没有显出老迈的迹象,实属难得。

  引擎的革命(1998年~2000年)

  游戏的图像发展到《虚幻》这里已经达到了一个天花板的高度,接下去的发展方向很明显不可能再朝着视觉方面进行下去。前面说过,引擎技术对于游戏的作用并不仅局限于画面,它还影响到游戏的整体风格,例如,所有采用Doom引擎制作的游戏,无论是《异教徒》还是《毁灭巫师》,都有着相似的内容,甚至连情节设定都如出一辙。玩家开始对端着枪跑来跑去的单调模式感到厌倦,开发者们不得不从其它方面寻求突破,由此掀起了第一人称射击游戏的一个新的高潮。

  两部划时代的作品同时出现在1998年——Valve公司的《半条命》(Half-Life)和LookingGlass工作室的《神偷:暗黑计划》(Thief:The Dark Project),尽管此前的《系统震撼》(System Shock)等游戏也为引擎技术带来过许多新的特性,但没有哪款游戏能像《半条命》和《神偷》那样对后来的作品以及引擎技术的进化造成如此深远的影响。

  曾获得无数大奖的《半条命》采用的是Quake和Quake II引擎的混合体,Valve公司在这两部引擎的基础上加入了两个很重要的特性:一是脚本序列技术,这一技术可以令游戏以合乎情理的节奏通过触动事件的方式让玩家真实地体验到情节的发展,这对于诞生以来就很少注重情节的第一人称射击游戏来说无疑是一次伟大的革命;第二个特性是对人工智能引擎的改进,敌人的行动与以往相比明显有了更多的狡诈,不再是单纯地扑向枪口。这两个特点赋予了《半条命》引擎鲜明的个性,在此基础上诞生的《要塞小分队》、《反恐精英》和《毁灭之日》等优秀作品又通过网络代码的加入令《半条命》引擎焕发出了更为夺目的光芒。 在人工智能方面真正取得突破的游戏是Looking Glass工作室的《神偷:暗黑计划》,游戏的故事发生在中古年代,玩家扮演一名盗贼,任务是进入不同的场所,在尽量不引起别人注意的情况下窃取物品。《神偷》采用的是Looking Glass工作室自行开发的Dark引擎,Dark引擎在图像方面比不上《雷神之锤2》或《虚幻》,但在人工智能方面它的水准却远远高于后两者,游戏中的敌人懂得根据声音辨认你的方位,能够分辨出不同地面上的脚步声,在不同的光照环境下有不同的目力,发现同伴的尸体后会进入警戒状态,还会针对你的行动做出各种合理的反应,你必须躲在暗处不被敌人发现才有可能完成任务,这在以往那些纯粹的杀戮游戏中是根本见不到的。如今的绝大部分第一人称射击游戏都或多或少地采用了这种隐秘的风格,包括新近发布的《荣誉勋章:盟军进攻》(Medal of Honor:Allied Assault)。遗憾的是,由于Looking Glass工作室的过早倒闭,Dark引擎未能发扬光大,除了《神偷:暗黑计划》外,采用这一引擎的只有《神偷2:金属时代》(Thief 2:The Metal Age)和《系统震撼2》等少数几款游戏。

  受《半条命》和《神偷:暗黑计划》两款游戏的启发,越来越多的开发者开始把注意力从单纯的视觉效果转向更具变化的游戏内容,其中比较值得一提的是离子风暴工作室出品的《杀出重围》,《杀出重围》采用的是Unreal引擎,尽管画面效果十分出众,但在个体的人工智能方面它无法达到《神偷》系列的水准,游戏中的敌人更多的是依靠预先设定的场景脚本做出反应,例如砸碎弹药盒可能会引起附近敌人的警惕,但这并不代表他听到了什么,打死敌人后周围的同伙可能会朝你站立的位置奔过来也可能会无动于衷,这些不真实的行为即便在《荣誉勋章:盟军进攻》里也依然存在。图像的品质抵消了人工智能方面的缺陷,而真正帮助《杀出重围》在众多射击游戏中脱颖而出的则是它的独特风格,游戏含有浓重的角色扮演成分,人物可以积累经验、提高技能,还有丰富的对话和曲折的情节。同《半条命》一样,《杀出重围》的成功说明了叙事对第一人称射击游戏的重要性,能否更好地支持游戏的叙事能力成为了衡量引擎的一个新标准。 从2000年开始3D引擎朝着两个不同的方向分化,一是如《半条命》、《神偷》和《杀出重围》那样通过融入更多的叙事成分和角色扮演成分以及加强游戏的人工智能来提高游戏的可玩性,二是朝着纯粹的网络模式发展,在这一方面,id Software公司再次走到了整个行业的最前沿,他们意识到与人斗才是其乐无穷,于是在Quake II出色的图像引擎的基础上加入更多的网络成分,破天荒推出了一款完全没有单人过关模式的纯粹的网络游戏——《雷神之锤3竞技场》(Quake III Arena),它与Epic公司稍后推出的《虚幻竞技场》(Unreal Tournament)一同成为引擎发展史上的一个转折点。 随着Quake III引擎的大获成功,id Software公司在引擎授权市场上也大赚了一笔。Raven公司再次同id Software公司合作,采用Quake III引擎制作了第一人称射击游戏《星际迷航:精英部队》(Star Trek Voyager:Elite Force),此外这部引擎还被用于制作第三人称动作游戏《重金属FAKK 2》(Heavy Metal FAKK 2)和《艾丽丝漫游魔境》(American McGee’s Alice)、最近的两款二战题材的射击游戏《重返德军总部》(Return to Castle Wolfenstein)和《荣誉勋章:盟军进攻》,以及开发中的《绝地放逐者:绝地武士2》(Jedi Outcast:Jedi Knight II)。从地牢到外太空,从童话世界到二战年代,从第一人称视角到第三人称视角,充分显示了Quake III引擎的强大潜力。

  Epic公司的《虚幻竞技场》虽然比《雷神之锤3竞技场》落后了一步,但如果仔细比较一下的话,你就会发现它的表现要略高出后者一筹。从画面方面看两者差不多打成平手,但在联网模式上,它不仅提供有死亡竞赛模式,还提供有团队合作等多种激烈火爆的对战模式,而且Unreal Tournament引擎不仅可以应用在动作射击游戏中,还可以为大型多人游戏、即时策略游戏和角色扮演游戏提供强有力的3D支持。Unreal Tournament引擎在许可业务方面的表现也超过了Quake III,迄今为止采用Unreal Tournament引擎制作的游戏大约已经有20多款,其中包括《星际迷航深度空间九:坠落》(Star Trek Deep Space Nine:The Fallen)、《新传说》(New Legend)和《塞拉菲姆》(Seraphim)等。

  在1998年到2000年期间迅速崛起的另一款引擎是Monolith公司的LithTech引擎,这款引擎最初是用在机甲射击游戏《升刚》(Shogo)上的。前面说过,LithTech引擎的开发共花了整整五年时间,耗资700万美元,功夫不负有心人,1998年LithTech引擎的第一个版本推出之后立即引起了业界的主意,为当时处于白热化状态下的《雷神之锤2》vs《虚幻》之争泼了一盆冷水。

  正是由于过于高昂的开发代价,2002年Monolith公司决定单独成立一个LithTech公司,以LithTech引擎的授权许可作为主要业务,希望借此捞回一些成本。采用LithTech第一代引擎制作的游戏包括《血兆2》和《清醒》(Sanity)等。2000年LithTech公司推出了引擎的20版本和25版本,加入了骨骼动画和高级地形系统,给人留下深刻印象的《无人永生》(No One Lives Forever)以及即将上市的《全球行动》(Global Operations)采用的就是LithTech 25引擎,此时的LithTech已经从一名有益的补充者变成了一款同Quake III和Unreal Tournament平起平坐的引擎。如今LithTech引擎的30版本也已经发布,并且衍生出了“木星”(Jupiter)、“鹰爪”(Talon)、“深蓝”(Cobalt)和“探索”(Discovery)四大系统,其中“鹰爪”被用于开发《异形大战掠夺者2》(Alien Vs Predator 2),“木星”将用于《无人永生2》的开发,“深蓝”用于开发PS2版《无人永生》,“探索”则将被用来制作一款尚未公布的大型网络游戏。

  LithTech引擎除了本身的强大性能外,最大的卖点在于详尽的服务,除了LithTech引擎的源代码和编辑器外,购买者还可以获得免费的升级、迅捷的电子邮件和电话技术支持,LithTech公司甚至还会把购买者请到公司进行手把手的培训。而且LithTech引擎的平均价格也不算很高,大约在25万美元左右,同Quake III引擎的70万美元相比已经是相当低廉了。

  引擎的明天(2001年~)

  2001年有许多优秀的3D射击游戏陆续发布,其中一部分采用的是Quake III和Unreal Tournament等现成引擎,如《星际迷航深度空间九:坠落》、《重返德军总部》和《荣誉勋章:盟军进攻》,而更多的则采用的是自己开发的引擎,比较有代表性的包括网络射击游戏《部落2》(Tribes 2)、第一人称射击游戏《马科斯·佩恩》、《红色派系》(Red Faction)和《英雄萨姆》等。

  《部落2》采用的是V12引擎,这款引擎虽然无法同Quake III和Unreal Tournament相提并论,但开发者为它制定的许可模式却相当新颖,你只需花上100美元就可以获得引擎的使用权,不过天下没有免费的午餐,随之而来的一系列规定相当苛刻,例如,开发者不能把该引擎用于为其它游戏发行商、其它商业游戏站点等竞争对手制作游戏,开发出来的游戏必须在发行前交给GarageGames公司(V12引擎的所有者),不能交给任何第三方,GarageGames公司将拥有这些游戏五年的独家发行权等等。尽管如此,对于那些规模较小的独立开发者来说,这个超低价引擎仍然具有非常大的吸引力。

  《马科斯·佩恩》采用的是MAX-FX引擎,这是第一款支持辐射光影渲染技术(Radiosity Lighting)的引擎,这种技术以往只在一些高级的建筑设计软件中出现过,它能够结合物体表面的所有光源效果,根据材质的物理属性及其几何特性,准确地计算出每个点的折射率和反射率,让光线以更自然的方式传播过去,为物体营造出十分逼真的光影效果。MAX-FX引擎的另一个特点是所谓的“子弹时间”(Bullet Time),这是一种《黑客帝国》风格的慢动镜头,在这种状态下甚至连子弹的飞行轨迹都可以看得一清二楚。MAX-FX引擎的问世把游戏的视觉效果推向了一个新的高峰。

  《红色派系》采用的是Geo-Mod引擎,这是第一款可任意改变几何体形状的3D引擎,也就是说,你可以使用武器在墙壁、建筑物或任何坚固的物体上炸开一个缺口,穿墙而过,或者在平地上炸出一个弹坑躲进去。Geo-Mod引擎的另一个特点是高超的人工智能,敌人不仅仅是在看见同伴的尸体或听见爆炸声后才会做出反应,当他们发现你留在周围物体上的痕迹如弹孔时也会警觉起来,他们懂得远离那些可能对自己造成伤害而自己又无法做出还击的场合,受伤的

大地形数据加载方案

大地形加载考虑到现有的内存机制, 不可能一次性将其加入到内存中,这个问题是显而易见的,其实在游戏开发中经常遇到,比如我们常见的进度条,加载进度条的目的就是等待程序加载场景,进度条只是一个蒙板遮罩而已。大地形的加载,别无他法,只能用分块,这个是大方向,因此作为程序来说,要做的事情是如何分块?块的大小是多少?这些具体的问题我们要根据需求划分,比如飞行模拟器块大小可能就要大一些,因为俯瞰的视角比较大,场景漫游块可以小一些等等,下面我们就以游戏的经典之作——魔兽世界地形加载方案为例给读者先介绍一下它的实现原理,魔兽世界这款游戏实现的就是无缝地图的拼接,所以非常具有参考价值,先看下图所示:

魔兽世界是如何实现无限地图的?其实它也是很多的场景块拼接而成的,我们通过编辑器分析魔兽世界的地形块的大小划分,魔兽世界场景我们称为MapWorld是由一系列MapTile组成,这些MapTile的大小是1600/3 ≈ 53333m,而每个MapTile又是由 16x16 个MapChunk组成,由此可以计算出每个MapChunk≈3333m。再就是每个MapChunk又由9x9+8x8个地形顶点高度,法线,若干贴图层(一般为4层)组成的地表纹理。魔兽世界地形的大小,在这里我们就不讨论了,但它划分块的思想我们是可以借鉴的。

继续分析魔兽世界的分块方法:它们是根据矩阵的方式进行划分的,在XZ平面上进行的,每个块都会包含一定的信息数据的,比如:在XZ(3,3)位置的MapTile,每个MapTile都包含了该tile内使用的贴图、模型实例等等。所谓模型实例也就是我们的道具,可以理解成相同模型在tile内不同摆放位置、大小、角度的信息,它们都是被保存在二进制文件中的,为了节省文件尺寸,模式实例是通过index模型方式保存的,同顶点索引类似,在每个MapTile里面还有贴图信息比如贴图的名字和UV信息等等。本篇课程的分块思维方式跟魔兽世界的类似,会在后面的章节中详细介绍,块分好了以后,下面就是实现原理了。

实现原理:在任何时刻,程序总是保存着玩家所在的及其周围的3x3个MapTile,随着玩家的移动,这些MapTile会被动态更新,新的MapTile被加载以替换被卸载的旧MapTile。为了提高调度效率,魔兽引入了Cache机制,Cache中保存着最多16个MapTile数据。需要加载新的MapTile时,首先会在Cache中查找;卸载的旧MapTile也不会被立刻删除,而是保存在Cache中以备再次调用。由于一段时间内玩家的活动范围通常不会有太大变化,这一Cache策略在应用中表现的非常出色,这是无缝地图的基本原理。地形的动态加载卸载我们会使用多线程去实现,我们会整两个线程:一个线程专门用于加载地形,另一个线程专门用于卸载或隐藏地形MapTile。让我们再来回忆一下游戏的经典之作,游戏场景效果如下所示:

本篇课程实现的方法可以使用两种方式处理块的加载显示问题,一种是利用对象池的方式,预先加载分块地形,根据视距进行检测判断显示那些地块以及隐藏那些地块,在这里并不删掉它们。这样只需要一个线程就可以。另一种方式是利用多线程,起一个线程专门用于移除卸载不在视线范围内的地块,这样可以提升效率,下面介绍使用多线程的加载方案。

多线程实现大地形加载方案

多线程在PC端游戏中使用的比较多,比如可以起一个线程专门进行资源的加载,游戏服务器中同样也会有多线程的使用,下面给读者介绍多线程实现方案,多线程处理问题就是把所有的加载逻辑放到了新的进程中,和主线程做一些进程间的通信,接受主线程的加载建议,做按需加载,也会自主做一些提前预加载,放进分配的内存,就跟魔兽世界的处理方式一样,通过进程间的内存共享机制,把加载的地形数据,共享给主进程使用。主游戏进程,永远只要维护一个很小的内存即可,大量的内存数据,都在另一个进程中处理。这样就可以优化大地形块的加载,实现方式如下所示:

首先主线程会先加载九块地形,主线程只负责维护这九块地形,无论角色怎么移动,角色所在的整个区域永远是九块地形,如上图所示的,这九块可以直接使用主线程加载到内存中,剩下的16块我们通过另一个线程将其放到缓存中,角色的位置是在已经加载好的九块地形中间,也就是在A所在的位置。随着角色的移动,会有新的地形块加入进来,同时现有的地形块会被置换出去,这样一直显示九块地形,被置换的地形并不会马上卸载掉,会根据角色移动情况做预判,它会等主线程通知,按照一定的规则进行卸载地块和加载地块。其实这种实现方式就是我们通常所说的双缓存-多线程技术。实现的效果如下所示:

地形分块加载完事了后,下面就要考虑地形上面的纹理贴图问题了,地形的贴图资源也会占用大的内存,下面介绍如何加载海量贴图数据。

大地形海量的加载方案

大地形中的场景非常多,地形中的贴图至少会有四层,这么多贴图我们在加载时需要考虑的,我们分块时也需要考虑这些因素,另外场景中使用的LightMap烘培也是要考虑的问题,为了缓解内存压力,我们事先会将不同块中的地形材质以及建筑物材质进行打包,先介绍如何分块加载场景贴图?它实现方式如下所示:

该思路就是将场景中的贴图根据我们划分的块打成不同的图集,当然也可以将两个块中的贴图打成一个图集,图集大小对于PC端来说,最大是4096,在移动端最大是2048。这个也是为了避免内存频繁的加载卸载会导致很多内存碎片,不利于后面大内存的分配。在打图集之前我们需要做点事情就是需要将地形块中的纹理贴图与我们的打包图集之间建立一一对应关系,方便对号入座。因为我们打包的图集跟实际地形之间不会有任何关系,要确立二者之间的对应关系我们需要在它们中间再整一张索引文件表格,它是连接图集与实际地形纹理的桥梁,通过我们建的索引文件,我们可以找到实际地形中纹理与图集纹理之间的对应关系,我们建的索引表格是要加载到内存中的,而我们的图集是根据加载任务后期才加到内存中的,这就要求我们的索引文件尽可能的少,因为它们是常驻内存的,除了海量的加载,我们还需要处理密集建筑的加载。

- 密集建筑的加载方案

密集的建筑加载,大家试想一下,如果把场景中所有的建筑一次性加载到内存中,内存瞬间就会占满,帧数瞬间下降,这也是为什么大家在游戏场景中移动时,遇到密集的建筑就会卡顿一下的原因。以前处理方式是使用LOD处理,被遮挡的物体使用简模,这样也会加大内存的负载效果,如果角色一直在建筑物之间来回穿梭,这样不同LOD模型就需要来回切换,对内存也是一个负担,效果不理想。这些问题对于程序员面来说必须解决的问题,如何解决呢?很多人想到了合并大Mesh,这种方法行不通的,大网格并不适合做裁剪操作,试想一下,我们合并的网格,如果摄像机只看其一小部分,因为它们是一个整体这样就需要把他们一起加载到内存中,而实际上我们并不需要这么多模型数据,在合并网格时,在这里也给读者一个建议,尽量把靠的很近的模型进行合并,避免上述问题发生。其实最有效解决方案还是划分块,这个划分块可以利用地形划分的思想进行,它是与地形块紧密相关的,每个地形块中的建筑物跟随地形块一起加载。如果块中的建筑非常密集,这种方法还不能够完全解决,还需要进一步的处理,就是要加入OC遮挡算法结合LOD算法,这样就可以完全解决我们当前的问题了,这也是本篇课程

要讲解的方法,再进一步的优化方法是可以将OC遮挡算法和LOD算法放到GPU中计算,这样效率还会提升,在Siggraph2015发表了一篇文章GPU-Driven Rendering Pipelines,它的思想就是使用GPU进行遮挡裁剪处理,主要分两个阶段,使用的是DX12图形API,如下图所示:

它的思想就是第一步先做一个初略的遮挡裁剪列表,而后在此基础上再根据视线距离或者射线检测做进一步的细化裁剪操作,这个思想跟我们的碰撞检测算法类似,引擎中碰撞检测算法也是基于这个原理实现的,给读者介绍一下:实际可用的碰撞检测算法,一般要分2个阶段:

第一阶段,broad phase 快速找出潜在的碰撞物体对列表,不在这个列表里的是绝对没可能碰撞的。broad phase确定了一批需要进一步检查的物体对。

第二阶段,narrow phase 准确找出发生碰撞的物体对列表。因为上一个阶段的部分物体对实际上是没有碰撞的,需要在这个阶段剔除。

broad phase其中有一个简单算法叫sweep and prune(SAP),本质上是利用了排序算法。第一步是初始化排序列表,列表中的元素是包围盒,可以用任意排序算法完成,例如快排;之后的排序就不是用快排了,而是用冒泡排序,为什么用冒泡排序更好呢?是因为一个默认的前提:物体的运动有时间相关性(temporal coherence),即当前帧和下一帧的位置是相近的,所以在冒泡排序过程中,发生的位置交换预期都很靠近。

其实算法中有很多类似的地方,这里我们也要互相借鉴它们解决问题的思想用于解决我们的问题。笔者以前做的是端游,端游中很多优化思想同样适用于移动端,移动端跟PC端比,就是一台配置比较低的电脑而已。接着我们的遮挡裁剪继续给读者介绍,论文作者也做了一个效率测试,以250’000物体,1G的网格为例,测试效果如下所示:

是不是很酷啊!在项目开发中完全可以用它解决问题,下面我们再谈谈使用GPU去优化我们的大地形场景。

GPU大地形渲染优化解决方案

我们的大地形首先会有自己的地表贴图,常用的地表贴图是四张纹理融合,最多可以有八张贴图融合,地形纹理渲染会涉及到LOD算法,远处的地形网格可以简化一些,对应的贴图也是最低的,这就是MipMap的使用。另外肯定有草有花以及其他大量相同的物件渲染,先说说草和花的绘制,他们在游戏中会非常的多,常用的做法是引擎提供的面片或者是十字交叉,或者三张交叉,然后将带有Alpha通道的贴图映射在上面,如下图所示效果:

CPU绘制这些草或者花在PC端是可以的,因为现在的电脑都是多核的,在手机端就会影响到效率问题了。使用CPU绘制,DrawCall会非常的多,而且草或者花还需要摆动,计算量很大的,这严重影响了运行效率,CPU有难,GPU可以帮忙,我们可以将草或者花的绘制放到GPU中执行,效果如下所示:

1、进入副本的条件,包括进入等级、进入凭证、进入人数、进入申请判断(队长单独申请还是整个队伍申请)、队伍成员所在地图有无限制(例如都在同一地图方可进入)、队伍成员进入次数限制、副本时间限制、副本进入以后,再组副本外成员时是否允许该成员进入副本2、进入副本以后,测试副本正常规则,包括副本流程、副本任务等3、副本内PK模式限制、PK后果限制4、副本内死亡、掉线、回城、离开队伍等,是否有特殊需求,例如死亡复活点、掉线再上是否还在副本、回城点设置、离开队伍以后是否被自动传送出副本等5、副本进入期间,服务器正常停机、服务器非正常停机,已进入副本成员的处理,服务器开启以后是否继续在副本中,是否自动传送出副本等,遇到这种情况应该有相应的补偿机制,如果要补偿,那么需要有相关数据可以查询到玩家遇到这种现象,才能给予处理6、副本一般都会有个存活时间,否则服务器压力会很大,那么需要测试副本销毁机制,即玩家没有完成副本流程或者没有完成副本任务,而副本自动销毁时,玩家身上的副本数据是否清除,本次进入副本结果是否符合文档需求7、副本一般有动态创建和静态地图两种,如果是前者,需要考虑服务器能承受的副本个数压力,如果超出限制,是否有提醒并限制玩家进入设置。8、要测试多个队伍进入副本的情况,避免出现不符合文档设置的现象,例如文档设置1个队伍1个副本,那么需要测试多个队伍有没有可能出现在同1个副本的现象9、副本玩家死亡掉落设置、怪物死亡掉落设置、怪物智能设置、怪物数值设置等10、副本NPC的UI设置、文字描述、引导提示、系统广播、卷轴提示等11、副本所需物品的设置,例如物品描述、物品显示、物品掉落设置等12、副本地图资源设置,怪物摆放、地图框架、障碍物设置13、其他方面,例如游戏本身设置需求,某技能不能使用、某功能禁止使用等等

现在国内H5软件,比较受欢迎的就是iH5咯,功能强大嘛。

以下摘取了一篇来自HTML5行业资讯的,关于这款软件的功能测评文章,题主可以参考参考~

——————————分割线

转载自搜狐新闻,作者:HTML5行业资讯

你也许已经发现,我们正在向“人人做H5”的时代迈进。随着国内HTML5技术的成熟,越来越多H5页面制作软件崛起,H5制作不再是小众的玩物,而是互联网经济的新产物。

据不完整统计,国内市面上存活的H5页面制作软件有超过50个,说是百家争鸣一点都不夸张。但用户量最多的当属iH5和Equb360两家,功能、技术水平等方面在国内都是屈指可数的。

两者都向用户提供可视化的HTML5编辑框架,打开电脑端网页即做即用,但性能上却迥然不同。

通过阅读这两家工具的相关资料,加上反复使用测试,以四大指标对比iH5和Equb360,重点在于帮助大家更客观地认识这两款H5页面制作软件:

一、内容制作

内容制作是使用H5页面制作软件的直接目的,这里把内容制作划分为两大评测模块:编辑方便度和功能覆盖度。编辑灵活程度越高,内容制作越高效;功能覆盖度越高,内容制作越有质量。

(1)编辑灵活度

iH5的对象管理系统完善,操作灵活度高,它封装了齐全的文档对象模型(DOM),提供的组件基本是对象类型的,比如全景容器、物理引擎、数据库等。它定义了所有HTML元素的对象和属性,以及相应的访问接口,这使不同对象间有了更多联动的可能。

换句话说,它支持在对象树上自主获取、修改、添加或者删除对象,用户能对不同类型的对象组件进行灵活管理,同时支持PSD文件上传编译。

Equb360的对象管理系统差强人意,操作灵活度低。它封装的是模块化(Modularization)模型,提供的组件框架格式基本是固定且相互割裂的,比如计时器、评论组件等。这就意味着,对组件的操作很大程度局限在修改内容上,基本丢失了H5交互的意义。

受模型框架影响,并不支持PSD文件直接上传,而且当页面下多个对象重叠时,不能直接选取最底层对象,非得一层层挪开,这是最抓人的吧

(2)功能覆盖度

按市面上H5在多媒体范畴的应用,摘取常用于H5设计的功能,以此作为凭据,对比两个H5页面制作软件的功能覆盖度——

基于DOM封装开发的iH5组件功能数达到51个,比Equb360多出将近20个。另外,iH5的组件开发都基于交互基础,因此更能延伸出成千上万种复合型的交互可能,但模块导向的Equb360显然心有余而力不足。

在上图中,表单类的基础多媒体组件服务,Equb360360跟iH5很接近,但在高级多媒体组件上,远不及iH5那么全能。特别是去年行业刚兴起的全景模式,iH5的功能开发可以说是紧追流行趋势。

放眼数据应用组件,像输入框、文本框、数据提交这类底层的服务组件,Equb360虽然支持,但收费才开放似乎有些不合情理。

二、学习成本

对于初学者来说,会更倾向于选择学习成本低的H5页面制作软件,如果它的学习成本远高于学习期望值,那么注定会流失一部分没耐心的用户。

按常理来说,H5页面制作软件的功能越丰富,学习成本越高。然而,iH5比Equb360多出20个功能,学习成本却远低于Equb360。

这是为什么呢?

(1)垂直化的视频教学

iH5共收纳197个教学视频,内容垂直程度高,实用性高。教学视频涵括新手必学、进阶必备、特效使用、工具字典、案例学习五大类型。每个类型针对不同的功能,细分出不同的教学,方便用户各取所需、即学即用,比如想两分钟创建一个H5处女作,或者建立一个H5网站,都能在这里找到答案。

Equb360共收纳48个教学视频,内容较发散,实用性低。教学视频只分为“初、中、高级教程”三种,学习路线下的教学视频纯粹是功能介绍,无实质性意义,用户看完还处于云里雾里的感觉。

(1)系统化的教学闭环

iH5除了教学视频,还设有线上直播课、线下学院课堂,形成从线上到线下的教学闭环。这系统化的教学闭环,简直是为了初学者量身定做——线上课程掌握基础功能,线下课程学习案例临摹,在最短时间内进阶成H5大神,毫无压力。

Equb360除了教学视频,只剩下帮助文档和常见问题解答。想百分百掌握,还得靠自己连滚带爬地摸索

三、流量统计

针对H5工具,流量分为两种:

①网站活跃流量

②H5案例流量数据

前者反应网站有多少人浏览,即网站热度,观察网站首页的可视化数据可得;后者反应H5作品的有效数据统计,观察每个H5作品后台的数据统计结果可得。iH5跟Equb360在这两个维度上的对比尤为明显——

(1)网站活跃流量

iH5网站首页作品浏览量大部分超10万,网站热度高。iH5首页可以看成是一个完整的商业生态圈,因为iH5首页展示的作品基本属于优质营销类H5,吸引大批有深度营销需求的企业找设计师定制,形成“接单——合作——展示——接单”的闭环商业生态,创作技法越精湛的设计师,在iH5越吃香。

Equb360网站首页作品浏览量最高2万,三位数浏览量占大多数。Equb360的日活跃数不低,但网站首页浏览量却低得离谱,这可能是它这款H5页面制作软件功能短板造成的,并不能吸引到有深度推广需求的企业,因此网站的流量增长只能依靠个人用户,作品曝光率低。

(1)H5案例流量数据

iH5的数据监测更精准,以每小时为单位监测。除了浏览量总量、各打开/转发方式占比,还涵括今日/昨日、最近一周、最近30天的数据对比。除此之外,iH5还向企业用户开放精准数据统计后台——H5VALUE,为单个案例分析地域流量、终端流量、浏览时段、传播指数、活跃用户量等细分化指标,也支持多个案例对比,在精细化数据面前,刷量原形毕露,剩下的只有真材实料的推广效果。

Equb360的数据统计较粗略,只有数据总量。虽然在后台设有专门的“推广分析”栏目,但只统计了朋友圈、微信群、好友这三种H5传播方式的数据,统计效果是相形见绌的。

四、付费相关

让用户最头疼的莫过于H5页面制作软件的收费问题,明摆着一个功能,却需要付费才能使用,这是最纳闷的。以下针对个人和企业两种用户,将付费相关的评测分为三个方向——

(1)模板商城的付费

iH5针对不同场景,划分八大类共184个精美模板,价格低至1元/个,持续上新。

Equb360可复制的模板只有14个,模板复用价值低,数量少,更新慢。

(2)个人用户的付费

iH5个人用户免费使用全部组件(51个),不限定作品创建数量。iH5所提供的全部功能,比如数据库、全景模式、物理引擎等高级交互功能,个人用户都能免费使用,没有任何收费门槛,只要有灵感,随意创作。

Equb360个人用户需付费才能使用高级表单等组件,还限定10个作品创建数量。值得一提的是,它还规定储存空间为2GB,按10个作品来算,也就是说单个作品200MB,超过2MB的H5体量已经很大了,所以200M是个什么概念?这体验版的设定,有忽悠人付费的嫌疑。

(3)企业用户的付费

按账户类型分,iH5分为创业版、企业版、VIP企业版四类,VIP企业版(10账户)的年专属流量达500万次,其中去LOGO流量服务为1000元/10万次流量,微信授权费用为1元/月,无其他单独收取的费用。

Equb360分为体验版、基础版、专业版、企业标准版、企业高级版(5账户,限制储存空间),分别增收年费最高19999元,套餐外单独收取费用的项目杂多,比如绑定独立域名需一次性支付2000元开通,案例导出另外收费。

综上所述,这两个H5页面制作软件经过四个不同维度的综合评测,可以看出iH5在性能、服务上远高于Equb360。

简单地说,Equb360适合低流量曝光的轻度营销,通过HTML5的跨平台特性,弱化交互的概念,强化模板式展示,凭借H5页面制作软件的壳,把传统离线PPT转换到手机上展示。

而iH5以交互作为开发目的,让交互功能间的组合更具复合性和创造性,更适合高流量的深度营销,极大程度压缩开发成本的同时,干掉前端,取代程序员在H5页面开发中的角色。

问题一:局域网的基本拓扑结构主要有哪几种 局域网的主要特点有: 1、覆盖的地理范围较小,一般为 10 m~10 km(如一幢办公楼,一个企业内等),通常为一个单位所拥有。 2、具有较高的数据传输率(通常为1~20Mbps,高速局域网可达100Mbps)。 3、具有较低的误码率,一般在10-8到10-11之间。 4、具有较低的时延。 5、通常多个站共享一个传输媒体(同轴电缆,双绞线,光纤)。 6、通常使用分组交换技术。 7、通常使用的拓扑结构为总线型、环型或树型。 8、可支持的工作站数可达几千个,各工作站间地位平等而非主从关系。 9、支持多种媒体访问协议(令牌环、令牌总线和 CSMA/CD)。 10、能进行广播(一站发所有站收)或组播(一站发一组站收)。 局域网常用的拓扑结构有: 1、星形网络拓扑结构; 2、总线形网络拓扑结构; 3、环形网络拓扑结构; 4、网状网络拓扑结构。

问题二:什么是计算机网络的拓扑结构?常见的拓扑结构有哪几种? 就是网络的物理结构!

总线 星形 扩展星形 环形

具体解释:

计算机网络的物理连接形式叫做网络的物理拓扑结构。连接在网络上的计算机、大容量的外存、高速打印机等设备均可看作是网络上的一个节点,也称为工作站。计算机网络中常用的拓扑结构有总线型、星型、环型等。

①总线拓扑结构

总线拓扑结构是一种共享通路的物理结构。这种结构中总线具有信息的双向传输功能,普遍用于局域网的连接,总线一般采用同轴电缆或双绞线。

总线拓扑结构的优点是:安装容易,扩充或删除一个节点很容易,不需停止网络的正常工作,节点的故障不会殃及系统。由于各个节点共用一个总线作为数据通路,信道的利用率高。但总线结构也有其缺点:由于信道共享,连接的节点不宜过多,并且总线自身的故障可以导致系统的崩溃。

②星型拓扑结构

星型拓扑结构是一种以中央节点为中心,把若干外围节点连接起来的辐射式互联结构。这种结构适用于局域网,特别是近年来连接的局域网大都采用这种连接方式。这种连接方式以双绞线或同轴电缆作连接线路。

星型拓扑结构的特点是:安装容易,结构简单,费用低,通常以集线器(Hub)作为中央节点,便于维护和管理。中央节点的正常运行对网络系统来说是至关重要的。

③环型拓扑结构

环型拓扑结构是将网络节点连接成闭合结构。信号顺着一个方向从一台设备传到另一台设备,每一台设备都配有一个收发器,信息在每台设备上的延时时间是固定的。

这种结构特别适用于实时控制的局域网系统。

环型拓扑结构的特点是:安装容易,费用较低,电缆故障容易查找和排除。有些网络系统为了提高通信效率和可靠性,采用了双环结构,即在原有的单环上再套一个环,使每个节点都具有两个接收通道。环型网络的弱点是,当节点发生故障时,整个网络就不能正常工作。

④树户拓扑结构

树型拓扑结构就像一棵“根”朝上的树,与总线拓扑结构相比,主要区别在于总线拓扑结构中没有“根”。这种拓扑结构的网络一般采用同轴电缆,用于军事单位、 部门等上、下界限相当严格和层次分明的部门。

树型拓扑结构的特点:优点是容易扩展、故障也容易分离处理,缺点是整个网络对根的依赖性很大,一旦网络的根发生故障,整个系统就不能正常工作。

问题三:局域网的基本拓扑结构主要有哪几种 拓扑结构可以分为四类:星形、总线、环形、混合型。

问题四:在计算机局域网中,网络的拓扑结构主要有哪三种 总线型拓扑结构、星型拓扑结构、环型拓扑结构

问题五:局域网常用的拓扑结构各有何特点 星形网的特点:

(1)网络结构简单,便于管理(集中式);

(2)每台入网机均需物理线路与处理机互连,线路利用率低;

(3)处理机负载重(需处理所有的服务),因为任何两台入网机之间交换信息,都必须通过中心处理机;

(4)入网主机故障不影响整个网络的正常工作,中心处理机的故障将导致网络的瘫痪。

适用场合:局域网、广域网。

总线形网络拓扑结构:

所有入网设备共用一条物理传输线路,所有的数据发往同一条线路,并能够由附接在线路上的所有设备感知。入网设备通过专用的分接头接入线路。总线网拓扑是局域网的一种组成形式。

总线网的特点:

(1)多台机器共用一条传输信道,信道利用率较高;

(2)同一时刻只能由两台计算机通信;

(3)某个结点的故障不影响网络的工作;

(4)网络的延伸距离有限,结点数有限。

适用场合:局域网,对实时性要求不高的环境。

环形网络拓扑结构:

入网设备通过转发器接入网络,每个转发器仅与两个相邻的转发器有直接的物理线路。环形网的数据传输具有单向性,一个转发器发出的数据只能被另一个转发器接收并转发。所有的转发器及其物理线路构成了一个环状的网络系统。

环形 点:

(1)实时性较好(信息在网中传输的最大时间固定);

(2)每个结点只与相邻两个结点有物理链路;

(3)传输控制机制比较简单;

(4)某个结点的故障将导致物理瘫痪;

(5)单个环网的结点数有限。

适用场合:局域网,实时性要求较高的环境。

网状网络拓扑结构:

利用专门负责数据通信和传输的结点机构成的网状网络,入网设备直接接入结点机进行通信。网状网络通常利用冗余的设备和线路来提高网络的可靠性,因此,结点机可以根据当前的网络信息流量有选择地将数据发往不同的线路。

适用场合:

主要用于地域范围大、入网主机多(机型多)的环境,常用于构造广域网络。

问题六:局域网常用的基本拓扑结构有环型和星型还有什么型? 它的结构主要有星型结构、环型结构、总线结构、分布式结构、树型结构、网状结构、蜂窝状结构等。

星型拓扑结构

星型结构是最古老的一种连接方式,大家每天都使用的电话属于这种结构。星型结构是指各工作站以星型方式连接成网。网络有中央节点,其他节点(工作站、服务器)都与中央节点直接相连,这种结构以中央节点为中心,因此又称为集中式网络。

这种结构便于集中控制,因为端用户之间的通信必须经过中心站。由于这一特点,也带来了易于维护和安全等优点。端用户设备因为故障而停机时也不会影响其它端用户间的通信。同时它的网络延迟时间较小,传输误差较低。但这种结构非常不利的一点是,中心系统必须具有极高的可靠性,因为中心系统一旦损坏,整个系统便趋于瘫痪。对此中心系统通常采用双机热备份,以提高系统的可靠性。

环型网络拓扑结构

环型结构在LAN中使用较多。这种结构中的传输媒体从一个端用户到另一个端用户,直到将所有的端用户连成环型。数据在环路中沿着一个方向在各个节点间传输,信息从一个节点传到另一个节点。这种结构显而易见消除了端用户通信时对中心系统的依赖性。

环行结构的特点是:每个端用户都与两个相临的端用户相连,因而存在着点到点链路,但总是以单向方式操作,于是便有上游端用户和下游端用户之称;信息流在网中是沿着固定方向流动的,两个节点仅有一条道路,故简化了路径选择的控制;环路上各节点都是自举控制,故控制软件简单;由于信息源在环路中是串行地穿过各个节点,当环中节点过多时,势必影响信息传输速率,使网络的响应时间延长;环路是封闭的,不便于扩充;可靠性低,一个节点故障,将会造成全网瘫痪;维护难,对分支节点故障定位较难。

总线拓扑结构

总线结构是使用同一媒体或电缆连接所有端用户的一种方式,也就是说,连接端用户的物理媒体由所有设备共享,各工作站地位平等,无中心节点控制,公用总线上的信息多以基带形式串行传递,其传递方向总是从发送信息的节点开始向两端扩散,如同广播电台发射的信息一样,因此又称广播式计算机网络。各节点在接受信息时都进行地址检查,看是否与自己的工作站地址相符,相符则接收网上的信息。

使用这种结构必须解决的一个问题是确保端用户使用媒体发送数据时不能出现冲突。在点到点链路配置时,这是相当简单的。如果这条链路是半双工操作,只需使用很简单的机制便可保证两个端用户轮流工作。在一点到多点方式中,对线路的访问依靠控制端的探询来确定。然而,在LAN环境下,由于所有数据站都是平等的,不能采取上述机制。对此,研究了一种在总线共享型网络使用的媒体访问方法:带有碰撞检测的载波侦听多路访问,英文缩写成CSMA/CD。

这种结构具有费用低、数据端用户入网灵活、站点或某个端用户失效不影响其它站点或端用户通信的优点。缺点是一次仅能一个端用户发送数据,其它端用户必须等待到获得发送权;媒体访问获取机制较复杂;维护难,分支节点故障查找难。尽管有上述一些缺点,但由于布线要求简单,扩充容易,端用户失效、增删不影响全网工作,所以是LAN技术中使用最普遍的一种。

分布式拓扑结构

分布式结构的网络是将分布在不同地点的计算机通过线路互连起来的一种网络形式。

分布式结构的网络具有如下特点:由于采用分散控制,即使整个网络中的某个局部出现故障,也不会影响全网的操作,因而具有很高的可靠性;网中的路径选择最短路径算法,故网上延迟时间少,传输速率高,但控制复杂;各个节点间均可以直接建立数据链路,信息流程最短;便于全网范围内的资源共享。缺点为连接线路用电缆长,造价高;网络管理软件复杂;报文分组交>>

问题七:局域网常用的几种网络拓扑结构及其特点。 1、星形网络拓扑结构:

以一台中心处理机(通信设备)为主而构成的网络,其它入网机器仅与该中心处理机之间有直接的物理链路,中心处理机采用分时或轮询的方法为入网机器服务,所有的数据必须经过中心处理机。

星形网的特点:

(1)网络结构简单,便于管理(集中式);

(2)每台入网机均需物理线路与处理机互连,线路利用率低;

(3)处理机负载重(需处理所有的服务),因为任何两台入网机之间交换信息,都必须通过中心处理机;

(4)入网主机故障不影响整个网络的正常工作,中心处理机的故障将导致网络的瘫痪。

适用场合:局域网、广域网。

2、总线形网络拓扑结构:

所有入网设备共用一条物理传输线路,所有的数据发往同一条线路,并能够由附接在线路上的所有设备感知。入网设备通过专用的分接头接入线路。总线网拓扑是局域网的一种组成形式。

总线网的特点:

(1)多台机器共用一条传输信道,信道利用率较高;

(2)同一时刻只能由两台计算机通信;

(3)某个结点的故障不影响网络的工作;

(4)网络的延伸距离有限,结点数有限。

适用场合:局域网,对实时性要求不高的环境。

3、环形网络拓扑结构:

入网设备通过转发器接入网络,每个转发器仅与两个相邻的转发器有直接的物理线路。环形网的数据传输具有单向性,一个转发器发出的数据只能被另一个转发器接收并转发。所有的转发器及其物理线路构成了一个环状的网络系统。

环形 点:

(1)实时性较好(信息在网中传输的最大时间固定);

(2)每个结点只与相邻两个结点有物理链路;

(3)传输控制机制比较简单;

(4)某个结点的故障将导致物理瘫痪;

(5)单个环网的结点数有限。

适用场合:局域网,实时性要求较高的环境。

4、网状网络拓扑结构:

利用专门负责数据通信和传输的结点机构成的网状网络,入网设备直接接入结点机进行通信。网状网络通常利用冗余的设备和线路来提高网络的可靠性,因此,结点机可以根据当前的网络信息流量有选择地将数据发往不同的线路。

适用场合:

主要用于地域范围大、入网主机多(机型多)的环境,常用于构造广域网络。

好了,就这么多最少给我加50吧

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 3D游戏制作原理? 懂得进!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情