解剖游戏引擎︰ Unity3D 的案例外文翻译资料

 2022-11-06 15:17:18

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


解剖游戏引擎︰ Unity3D 的案例

法鲁克Messaoudi Gwendal西蒙 Adlen克森蒂尼

IRT Blt;gt;Com 电信布列塔尼大学雷恩 1 – IRISA

farouk.messaoudi@b-com.com gwendal.simon@telecom-bretagne.eu adlen.ksentini@irisa.fr

摘要— — 最近的趋势,对如何玩视频游戏一直在推动需要修改游戏引擎的体系结构。事实上,游戏玩家有更多的移动,使用智能手机和平板电脑缺少 CPU 资源相比,pc 机和专用框。两个新的解决办法,云游戏和计算卸载,将代表改善游戏玩家体验的下一个步骤。后果,解剖和分析游戏引擎性能将有助于更好地理解如何将移动到这些新的方向,这是到目前为止失踪在文献中。在本文中,我们通过分析和评估其中一个最受欢迎的游戏引擎,即 Unity3D 填补这一空白。首先,我们解剖的 Unity3D 体系结构和模块。一个基准被用于评价不同的模块构成 Unity3D,为五个代表游戏的 CPU 和 GPU 性能。

一、 介绍

今天的游戏创作者依靠游戏引擎开发他们的游戏软件的主件。一个游戏引擎提供方便,再加上游戏运行的硬件和操作系统抽象,从而简化了程序员的任务。一个游戏引擎的目的也是为了充分利用宿主机器的能力,以便玩家可以获得最身临其境的游戏体验可能。但今天的游戏引擎必须不断演进,解决两个趋势︰ 云计算和移动性。

第一,这一概念的云游戏收到越来越多的关注,因为在控制数据中心中运行游戏带来了多个机会。不过,尽管在虚拟化多媒体任务的进展,同时可以在一个给定的机器运行的游戏的数量似乎仍然低 [1]。整合的缺乏限制了可扩展性和增加云游戏服务的成本。为服务更多玩家从一个给定的数据中心,游戏引擎必须 (i) 允许不同的游戏实例间的资源共享和 (ii) 分发,可以更好地利用数据中心的资源,尤其是通过区分需要特定的图形处理单元 (GPU) 硬件,可以容纳任何中央处理单元 (CPU) 配置的简单化的尖端模块。不幸的是,先进的云游戏平台 [2] [3] 仍然考虑每个正在运行游戏作为一个单独的黑框。

第二,游戏玩家玩在移动设备上,例如智能手机、 平板电脑和虚拟现实 (VR) 耳机。这些设备有两个主要限制︰ 低的计算能力,尤其是 GPU,期望,和电池由于利用率高、 硬件资源的消耗。一个解决方法是卸载游戏计算附近强大、 堵塞在机器上 (例如桌面和集 topboxes) [4]。远程图形渲染不是一个新话题 [5] 但没有现有的解决方案符合对快速呈现的高清晰度,复杂,3D 图像的期望。此外,我们所知,没有以前的工作已解决卸载非图形组件的一个游戏引擎,例如物理模块和对象的行为脚本。

虽然需要重新探讨游戏引擎是高的科学界没有抓住论文剖析和评价艺术的国家,,当前的游戏引擎。文学与游戏引擎相关的身体是 surprinsingly 小游戏产业的重要意义。尽管两份立场文件,呼吁为研究游戏引擎架构 [6] [7] 的架构和从来没有正式分析现代游戏引擎的性能。我们所知,相关的工作的重点是运用游戏引擎到严肃游戏 [8]、 [9] 研究和 VR 严重应用 [8],[10] [11] 等特定领域。

在本文中,我们通过分析在市场上,即 Unity3D 最受欢迎的游戏引擎做的游戏引擎的理解的第一步 [12]。我们进行一次评价的五个代表游戏不同等级的品质与性能。我们分析 CPU 和 GPU 的时间来生成框架的性能。我们然后按模块,根据类型和模块在游戏引擎中的功能分析处理消费。最后,我们提取的 Unity3D 游戏引擎职能与不同模块之间的调用生成的一帧。我们的主要研究结果如下︰

bull; 将生成一个帧的时间差别很大,即使在一个给定的游戏。这高的可变性是一个关于云合并的缺点。此外,消费也有不同的时间为两个不同的质量级别的一个类似的游戏,所以资源消费很难预测。

bull; CPU 绝大多数消费和大部分的 GPU 消费与渲染模块。这些模块紧密耦合的系列的调用,使去掉部分的吸引力在当前游戏引擎代码的机会。

我们首先在第二节给一些关于游戏引擎的背景信息。然后,我们描述在第三节中我们建立了测量的基于 Unity3D 的游戏性能的实验平台。然后,我们在第四节提出我国绩效评估。最后,我们讨论的结果,并在第五节中打开观点关于下一代游戏引擎的第一步。

二、背景: 游戏引擎

我们区分游戏的创作者,作为一种框架的游戏引擎和游戏引擎作为一块代码为游戏玩家。一方面,游戏引擎是的工具集

(包括低层次的库,用户界面编辑器和游戏多媒体管理工具),促进工作的过程中创建一个新的游戏一个游戏开发者。游戏开发者社区因此认为作为一个框架或平台的游戏引擎。我们将使用在本文的'框架'。该框架提供的游戏内容 (多媒体内容和主脚本) 与底层硬件抽象层。像 Unity3D 最受欢迎的框架是跨平台的,一个给定的游戏引擎可以在各种操作系统和各种硬件配置上运行。

另一方面,游戏引擎是一整套软件以及最终提供给最终用户游戏设备运行的数据。游戏玩家社区认为一段代码作为一个游戏引擎。已由 Unity3D 框架创建的所有游戏都有着相似之处,使它们成为一致 Unity3D 游戏引擎。我们在本文专注于典型的 Unity3D 软件,我们称之为游戏引擎。

A.主要模块

一个游戏引擎由各种模块组成。对于一个给定的游戏,其中一些主要写游戏创建者︰

人工智能 (AI) — — 管理的非玩家角色 (NPC) 被通过一些特定的模块,预先计算场景中混入生成上--飞以给人错觉的情报的行为。

物理引擎 — — 这些模块的目的是使游戏世界无论决定由玩家 (为主要的字符),并由 AI 模块 (用于 Npc) 事件尽可能切合实际。这些模块还模拟的物理定律的世界的可动部件的行为。

脚本 — — 这些模块包含到游戏本身。从捕获的输入 (通过特定的模块),游戏开发人员详细介绍了系列的游戏内容和事件脚本语言的系统,这是特定于每个框架。

一些其他模块大多是使用一个给定的框架创建的每一场比赛的共同点。这些模块代表的抽象层,防止游戏的创作者,在低级的问题上花费时间。特别是︰

输入 — — 捕获从玩家命令 (例如、 游戏杆、 键盘和现在 VR 传感器) 都集中在一组模块。这些模块需要最低重新编码从游戏的创造者。

多媒体渲染 — — 这些模块是游戏的负责生成图形和音频元素。关于图形,呈现模块必须生成一个新帧每 x 毫秒 (ms) 在哪里 x 通常介于 10 和 30。此外请注意,这些模块的输出是通常原始的视频,需要为遥远的显示输出 [13] 编码。

网络 — — 这些模块实现通信例程和多人游戏和 serverbased 游戏协议。游戏玩家的要求,网络模块应必须快速、 防欺诈。

B.呈现管道

我们现在描述的游戏引擎,和最具体的统一的 3D 渲染管线。我们开始与管道的图书馆,在哪些统一的 3D 生成图形元素上的 Windows 操作系统,Mac 和 Linux,统一使用 OpenGL 图书馆,和外地的嵌入像 Android 和 iOS,低级 DirectX 的简短说明和 web,统一分别使用 OPenGl ES 和 WebGL。有关这些库的更多详细信息,请参阅此链接[1]。然后,我们展示如何统一的 3D 实现这条管线。更多的信息可以发现在 [14]。

渲染管线是组合的多个阶段或生成基于给定的几何描述的 3D 场景和面向虚拟摄像机的 2D 图像所需的步骤。这个 DirectX 管道是一系列行动,发生在连续的步骤,如下所示。

首先,输入的汇编程序读取数据 (顶点和索引) 的 3D 对象从内存和接近的三角形网格。更多的三角形,更好的近似值,但更多的处理能力。每个对象然后放入其自己的方向和大小的本地坐标系统。最后,所有对象在这里都聚首全球的坐标系统中的应用几何转换。

第二步是与相机有关。查看空间是其中的虚拟摄像机平移到世界空间的原点的坐标系统。然后是可以区分的正面和背面的对象。后双方都不是由相机,因为所有的背面多边形是扑杀.

照明的一步是产生场景真实感的一个关键步骤。光源是简单对象,定义在世界空间中,两者的颜色、 强度、 方向、 重点和位置。此步骤还包括重复的吸收和反射光的过程,根据各种参数 (例如、 平滑度和材料的表面和入射角)。扑杀步然后实现来决定哪些对象应从视图截锥的计算根据现场丢弃。对象内 (尊重。 外) 锥截体保持在 (尊重。 从完全扑杀) 的场景,而是两个内和外锥截体的对象部分扑杀。

最后,场景呈现基于透视投影的拖到 2D 投影窗口内锥截体的三维顶点。顶点坐标转换将 2D 场景放入矩形窗口在屏幕上,称为视口缩放和翻译的。这一阶段的产出是像素。栅格化将这些像素转换成屏幕坐标形成的三角形,应检查和彩色列表。

统一的 3D 使用 DirectX 作为默认渲染管线,但这种发动机采用四结合的主输油管道发生的附加呈现活动。我们此后不久描述他们。

正向渲染管道的那些对象,不受灯光、 用于不透明物体,光通和灯光和透明物体的颜色被结合到其他不透明的物体颜色的透明度通分离环境通。

递延底纹管道基于几何缓冲区 [15],首先计算几何,然后应用照明智能管理。

预渲染管道解决不同材质着色器在延迟着色限制的使用。照明光预渲染,从而提高了光照模型计算后存储在一个新的缓冲区。

最后,点燃的顶点渲染是其中发展最快。这个过程是完成一次,其中每个对象呈现与照明计算从所有光源对象的顶点上。然而,这种解决方案不支持 perpixel 的效果,如阴影、 光的饼干,正常映射和高度详细的高光。

三、实验平台

为了评价框架 Unity3D 所生成的不同游戏引擎的性能,我们跑去 Unity3D 版本 5.02 在使用 d3d11 作为 DirectX 库呈现管道的 Windows 操作系统 (赢 7 专业) 上运行的一台笔记本电脑。笔记本电脑是戴尔精度 M4800 与计时 2.8 ghz 英特尔酷睿 i7 处理器。Nvidia Quadro K2100M (与 2 GB 和 16 GB) GPU 卡的笔记本电脑已有所改善。

我们选择了五个不同的游戏从'资产存储库'的 Unity3D,具有不同的特点,针对在市场的最具代表性的奥运会报道。我们总结表 I.时类型中的每一场比赛的主要特点、 维度和游戏玩家给一个想法上的游戏的类型、 渲染、 物理和统一的脚本的 CPU 消耗的更多有关其他参数。有关这些游戏的更多详细信息,请参阅资产存储库。

为我们生成的每场比赛超过,10 000两种质量类型的帧︰ 好质量与合理的游戏节奏,这里 30 帧每秒 (fps) 和快捷优质的游戏速度是最大。发动机达到这两种品质取决于像素光计数、 纹理质量、 消除锯齿、 软颗粒和实时渲染,阴影分辨率,阴影距离,阴影投影,阴影级联的阴影,反射探测等几个参数和其他参数像混合权重最大的 LOD 级别,V 同步计数。

2 https://www.assetstore.unity3d.com/en/# ! 内容/29140

3 https://www.assetstore.unity3d.com/en/# ! 内容/11228 4https://www.assetstore.unity3d.com/en/# ! 内容/7677

5 https://www.assetstore.unity3d.com/en/# ! 内容/40756

6 https://www.assetstore.unity3d.com/en/# ! 内容/20749

这些帧生成的测试,对于每个质量,34 次不同位置使用不同的球员行为同样的景象。从每个测试,我们得到了 298 帧 (由于我们不能使更多的统一事件探查器)。因此,我们取得 34times;2 测试每个游戏。

我们使用统一的探查器来获取 CPU 和 GPU 的能耗统计。探查器在日志文件中以二进制格式保存这些统计。不幸的是,我们所知,只有统一引擎可以读取该文件。由于日志文件的非可读性,我们开发了一个脚本来获得统一的序列化程序,所以从它,可以直接读取结果。因此我们推出了游戏在窗口模式下,会自动启动统一探查器,针对在日志文件中写入数据。由于我们获得至少 298 帧 (在事件探查器窗口上看到),我们已经停止该游戏和重新统一编辑

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[139321],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。