[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)。每个引擎都有某种形式的资产调节管道。"

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泥烟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值