栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

[Games104笔记]3/21 基础架构1 『引擎架构分层,整体Pipeline』

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[Games104笔记]3/21 基础架构1 『引擎架构分层,整体Pipeline』

笔记结合了游戏引擎架构 Game Engine Architecture by Jason Gregory 第二版

仅为个人学习整理,


目录

平台层

核心层

资源层

功能层

工具层



工具层

功能层

资源层

核心层 core

平台层 platform


功能调用基本上是自上而下(上层调用下层)


"如同所有软件系统,游戏引擎也是以软件层(software layer)构建的。通常上层依赖下层,下层不依赖上层。当下层依赖上层时,称为循环依赖(circular dependency)。在任何软件系统中,循环依赖都要极力避免,不然会导致系统间复杂的耦合(coupling),也会使软件难以测试,并妨碍代码重用。对于大型软件系统,如游戏引擎,此问题尤其重要。"

平台层

上层的架构庞大而复杂, 而用户的使用环境/设备多种多样(PC/MAC...   键鼠/手柄/体感...)

因此平台层需要保证可移植性


核心层

 游戏引擎以及其他大规模复杂C++应用软件,都需要一些有用的实用软件, 这类软件称为核心系统(core system)。

常见功能:

 

 游戏引擎对于底层的效率非常高, STL并不足以满足, 设计者往往会写一套适配的数据结构


资源层

 unity资源工作流程:

Unity - Manual: Asset Workflow (unity3d.com)https://docs.unity3d.com/Manual/AssetWorkflow.html


功能层

从tick入手,

UE:tick / Unity:update

多线程将成为趋势 

unity的循环流程

 


工具层

 DCC

"DCC应用软件所使用的数据格式,鲜有适合直接用于游戏中的,原因有二。
1. DCC 软件在内存中的数据模型,通常比游戏所需的复杂得多。例如,Maya的场景节点,以有向无环图(directed acyclic graph, DAG)存储,包含复杂的互相连接的网络。Maya还存储了该文件的所有编辑历史记录。Maya场景中每个物体的位置、方向、比例,都以完整的三维变换表示,此变换又由平移(translation)、旋转(rotation)、缩放(scale)、切变(shear)所组成。游戏引擎通常只需这些信息的一小部分就能在游戏中渲染模型。


2.在游戏中读取DCC 软件格式的文件,其速度通常过慢。而有些格式更是不公开的专有格式。
因此,用DCC 软件制作的数据,通常要导出为容易读取的标准格式或自定义格式,以便在游戏中使用。


        当数据自DCC 软件导出后,有时必须经过再处理,才能放在游戏引擎里使用。若工作室要为游戏开发多个平台,这些中间文件必须按平台做不同处理。例如,三维网格(3D mesh)数据可能导出为某中间文件格式,如XML 或简单的二进制格式;之后,可能会合并相同材质的网格,或把太大的网格分割成引擎允许的大小;最后,为方便每个平台读取,用最适合的方式组织网格数据,并包装成内存影像。
        从 DCC 到游戏引擎的管道,有时候被称为资产调节管道(asset conditioning pipeline)。每个引擎都有某种形式的资产调节管道。"

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/951331.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号