游戏引擎分层和笔记导航的区别,你知道吗?

游戏引擎分层和笔记导航的区别,你知道吗?

Games104笔记---LE2--基础架构1:引擎架构分层整体Pipeline

目录

游戏引擎分层:

游戏引擎本身【五层架构】:

为什么要分层?

工具层:

核心功能:

功能层:

功能层功能:

这里注释的作者给出了Unity循环的一个例子:

资源层:

将资源转化为资产:

这里笔记的作者举了一个Unity的资源导入的例子:

Unity 导入资源工作流程

核心层:

核心功能:

这里笔记的作者给出了UE核心层循环的例子:

平台层:

核心功能:

迷你发动机飞行员

学习材料:

注意导航:

LE7--渲染系统4:渲染管线、后处理:

LE6--渲染系统3:地形/天空/云彩渲染 游戏中的渲染:LE6--渲染系统3:哟地形/天空/云彩渲染_这里是MX的博客-CSDN博客

LE5--渲染系统2:光照、材质、阴影:Games104笔记---LE5--渲染系统2:光照、材质、阴影_这是MX的博客-CSDN博客

LE4--渲染系统一:渲染基础:Games104笔记---LE4--渲染系统一:渲染基础_这是MX的博客-CSDN博客_渲染系统

LE3--基础设施2:数据组织与管理:Games104笔记---LE3--基础设施2:数据组织与管理_这是MX的博客-CSDN博客

LE2--基础架构一:引擎架构分层整体Pipeline:Games104笔记---LE2--基础架构一:引擎架构分层整体Pipeline_这是MX的博客-CSDN博客

LE1--现代游戏引擎介绍:Games104笔记---LE1--现代游戏引擎介绍_这里是MX的博客-CSDN博客

游戏引擎分层:游戏引擎本身【五层架构】:

工具层--功能层--资源层--核心层--平台层

还有第三方库

为什么要分层?

这实际上是个好主意。 主要目的是解耦,降低复杂度,让下层独立于上层,方便管理。而且层与层之间的调用一般只允许上层调用下层的接口,不允许下层调用上层接口。

工具层: 核心功能:

是为了更好的让开发者开发游戏,提高生成效率。 比如地形编辑器、UI编辑器、Shader编辑器。

该层的另一个重要功能是DCC游戏引擎架构 豆瓣,它允许将其他软件的资产无损地导入到我们的引擎中。 我们需要创建一个资产出口商和一个资产进口商。

功能层: 功能层的功能:

核心功能是让世界移动游戏引擎架构 豆瓣,起点是tick点(ue:tick,unity:update)

现代游戏引擎也需要考虑多线程,但是会有依赖关系,所以这种引擎架构不容易实现,但绝对是未来的趋势。

这里笔记的作者给出了Unity循环的一个例子:资源层:

核心功能是管理资产的生命周期。

将资源转化为资产:

通过定义元资源文件格式(例如ast)来统一文件访问。Pass

通过导入预处理更快地访问资产。

构建复合资产文件以引用所有资产。

guid 是一种额外的引用保护。

这里笔记的作者给出了Unity中资源导入的例子:Unity导入资源工作流程

1.Unity为资源分配唯一的ID。 2.Unity创建一个.meta文件。 3.Unity处理资源。

为资源分配唯一 ID

Unity将检测到添加了新文件,并为新添加的文件分配唯一的ID。 ID 使 Unity 可以轻松引用资源而不破坏任何内容。

除了分配给资源的唯一 ID 之外,.meta 文件还包含当您在“项目”窗口中选择资源时在“检查器”窗口中看到的所有导入设置的值。 对于纹理,这包括纹理类型、环绕模式、滤镜模式和 Aniso 级别导入设置。

如果您更改资产的导入设置,这些新设置将保存到资产随附的 .meta 文件中。 然后,Unity 将根据更新的设置重新导入资源地图场景,并更新项目 Library 文件夹中相应导入的“游戏就绪”数据。

创建 .meta 文件

.meta 文件必须与其相关资源文件位于同一位置,因为它包含资源的 ID。 如果资源丢失其 .meta 文件(例如,如果资源在 Unity 的项目窗口之外移动或重命名,但其 .meta 文件除外),则对该资源的任何引用都会被破坏,并且 Unity 会为该资源生成一个新的 .meta 文件丢失再生后,丢失的引用必须由脚本手动重新分配给游戏对象。

流程资源

Unity 读取并处理您添加到 Assets 文件夹中的任何文件音乐,将文件内容转换为可直接在游戏中使用的内部数据。 资源文件本身保持不变,内部数据存储在项目的Library文件夹中。

核心层: 核心功能:

游戏引擎必须有一个数学库,这个数学库需要高效,比如卡马克的1/sqrt(x)计算。 我们经常要考虑SIMD(单指令多数据)

游戏引擎有自己的内存管理。 首先,您需要有一个自定义的数据结构和容器来减少内存碎片、减少缓存未命中并执行内存对齐。

并且要求代码质量非常好。

这里笔记的作者给出了UE核心层循环的例子:

这四百行代码(不包括调用代码)他做了什么? 【参考香香果博客】

平台层: 核心功能:

平台层的核心是使其平台无关。

创建一层Render Hardware Interface,这样高水平的同学在写代码的时候就不需要考虑Graphics API的差异了。

并且需要统一的硬件架构。

Mini Engine-Pilot学习资料:

游戏104

统一文档

源代码

渴望男人的博客

文章来源:http://www.kaotop.com/it/899970.html