游戏引擎分层架构与总体管线

devtools/2025/2/3 5:50:55/
资源层

管理游戏引擎生态的资源池分配 每个资产的实时生命周期

Resource 各种文件格式的资源 转换importing Asset 资产(高效数据)

引擎中最重要的是资产之间的关联 reference

GUID :游戏资产的唯一识别号

运行中资产管理器 Runtime Asset Manager:读取路径文件,handle system管理文件关联

资产管理生命周期:不同资产有不同生命周期,有限的内存需要释放资源,垃圾回收和延迟加载时很严峻的特征

功能层

一个tick里,先Tick logic 逻辑

再Tick render 绘制

多核并行架构,dependency管理

未来的引擎一定是多核并行架构

核心层

数学库

Real time application 导致引擎对效率要求很高

需要重写数学库

SIMD

SSE CPU并行向量计算

数据结构和容器

STL在高频增删数据时,会出现大量空洞,以及内存不受管理

需要自己重写数据结构

内存管理

平台层

掩盖平台差异度

RHI Render Hardware Interface:重新定义图形api,封装硬件SDK

工具层

允许别人创造游戏的内容

DCC Digital Content Creation数字内容创造

外部编辑工具资产与引擎的编辑工具通过asset conditionning pipeline 变成游戏资产

游戏分层原因

通过分层解构复杂度

应对增长的需求

越往上灵活性越强,往下稳定

迷你游戏引擎项目


http://www.ppmy.cn/devtools/155642.html

相关文章

Deepseek智能AI--国产之光

以下是以每个核心问题为独立章节的高质量技术博客整理,采用学术级论述框架并增强可视化呈现: 大型语言模型深度解密:从哲学思辨到系统工程 目录 当服务器关闭:AI的终极告解与技术隐喻情感计算:图灵测试未触及的认知深…

Java 分布式与微服务架构:现代企业应用开发的新范式

Java学习资料 Java学习资料 Java学习资料 一、引言 在当今数字化时代,企业应用面临着越来越高的性能、可扩展性和灵活性要求。传统的单体架构在应对大规模用户访问、复杂业务逻辑和频繁的功能迭代时,逐渐暴露出诸多问题。Java 分布式与微服务架构应运…

【Elasticsearch】中数据流需要配置索引模板吗?

是的,数据流需要配置索引模板。在Elasticsearch中,数据流(Data Streams)是一种用于处理时间序列数据的高级结构,它背后由多个隐藏的索引组成,这些索引被称为后备索引(Backing Indices&#xff0…

反向代理模块。。

1 概念 1.1 反向代理概念 反向代理是指以代理服务器来接收客户端的请求,然后将请求转发给内部网络上的服务器,将从服务器上得到的结果返回给客户端,此时代理服务器对外表现为一个反向代理服务器。 对于客户端来说,反向代理就相当于…

自适应细粒度通道注意力机制FCA详解及代码复现

机制定义 自适应细粒度通道注意(FCA)机制是一种创新的深度学习技术,旨在提高模型在图像处理任务中的性能。它通过 捕捉全局和局部信息之间的交互 ,优化特征权重分配,从而提升模型的表现。 FCA机制的核心在于其独特的设计原理: 利用相关矩阵捕捉信息 :FCA通过构建相关矩阵…

机器学习--概览

一、机器学习基础概念 1. 定义 机器学习(Machine Learning, ML):通过算法让计算机从数据中自动学习规律,并利用学习到的模型进行预测或决策,而无需显式编程。 2. 与编程的区别 传统编程机器学习输入:规…

出现 Error processing condition on org.springframework.cloud.openfeign 解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 1. 问题所示 执行代码时,出现如下提示: 2025-01-26 15:32:29.241 INFO 5784 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Fin…

python学习——常用的内置函数汇总

文章目录 类型转换函数数学函数常用的迭代器操作函数常用的其他内置函数 类型转换函数 数学函数 常用的迭代器操作函数 实操: from cv2.gapi import descr_oflst [55, 42, 37, 2, 66, 23, 18, 99]# (1) 排序操作 asc_lst sorted(lst) # 升序 desc_lst sorted(l…