首页 > 其他分享 >Lecture 02 Layered Architecture of Game Engine

Lecture 02 Layered Architecture of Game Engine

时间:2024-09-01 14:14:33浏览次数:9  
标签:02 Engine Layer Architecture Game 内存 asset

Lecture 02 Layered Architecture of Game Engine

渲染只是游戏引擎中不大的一部分

  • Tool Layer 工具层

    这部分不是实时的,所有可以允许多种实现方法(C++/C#开发等等)

    • DCC Digital Content Creation

      将不同文件导入成Assets·

  • Function Layer 功能层

    • 每个tick依次做完所有内容
    • 多线程完成不同系统
      • 早期是单核运行
      • 后来将不同类型任务分配到不同核
      • 当前主流的是将Thread Fork/Join到不同核
      • 未来趋势:将任务打碎成原子称作Job,比如Unity DOTS的Job System
      • 任务之间存在依赖关系
  • Resource Layer 资源层

    • 由外部格式转换成引擎内部的高效格式,这个过程叫import,转换后的文件称为asset

    • composed asset:定义asset之间关系的脚本

      每个asset会有一个唯一识别号guid

    • 不同资源有不同生命周期

    • 内存有限,所以需要尽可能释放加载的资源

    • 关键特性:垃圾回收、延迟加载

  • Core Layer 核心层

    • 要求运算效率

      要满足实时渲染,时间要求苛刻

      • SIMD
    • 内存管理

      • 游戏引擎的主要性能瓶颈

        • 内存池

        • 减少缓存未命中

        • 内存对齐

      • Polymorphic Memory Resource (PMR)

        • 将数据放在一起
        • 按顺序访问数据
        • 按块申请和删除
  • Platform Layer 平台层

    • RHI Render Hardware Interface

      重新定义一层Graphics API,将各个SDK封装起来

  • 第三方库

  • 总结

    • 引擎是分层结构
    • 下层需要稳定,绝对的安全、稳定
    • 上层需要可客制化,开放、灵活
    • 虚拟世界是由ticks组成的

标签:02,Engine,Layer,Architecture,Game,内存,asset
From: https://www.cnblogs.com/Tellulu/p/18391251

相关文章

  • Lecture 03 How to build a Game World
    Lecture03HowtobuildaGameWorldEverythingisaGameObject(GO)面向对象的方式有些GO之间并没有清晰的继承关系Unreal中的UObject、Unity中的Object并不是这里讲的GameObject概念,而是更类似如C#中的Object,用于确定任何对象的生命周期需要的句柄Unreal中的GameOb......
  • 基于SpringBoot+Vue的时尚美妆电商网站设计与实现(2024年最新,原创项目)
    文章目录1.前言2.详细视频演示3.论文参考4.项目运行截图5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue6.可行性分析7.系统测试7.1系统测试的目的7.2系统功能测试8.数据库表设计9.代码参考10.数据库脚本11.作者推荐项目12.为什么选择我?13.获取源......
  • 基于SpringBoot+Vue的毕业生就业推荐系统(2024最新,原创项目)
    文章目录1.前言2.详细视频演示3.论文参考4.项目运行截图5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue6.可行性分析7.系统测试7.1系统测试的目的7.2系统功能测试8.数据库表设计9.代码参考10.数据库脚本11.作者推荐项目12.为什么选择我?13.获取源......
  • Lecture 02 Recap of CG Basics
    Lecture02RecapofCGBasicsGraphicsPipeline光栅化、深度测试、Blinn-Phong模型、纹理映射&插值OpenGL总结:每一个pass定义物体、相机、MVP定义帧缓冲区、输入输出纹理定义VertexShader/FragmentShader渲染其他的多趟pass如ShadowMapShadingLanguages......
  • 打卡信奥刷题(676)用Scratch图形化工具信奥B3867[普及组/提高组] [GESP202309 三级] 小
    [GESP202309三级]小杨的储蓄题目描述小杨共有NNN个储蓄罐,编号从00......
  • 20240901_113250 python 知识点列表
    开发环境20240901_113224python环境依赖的备份与导入_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/1188873020240901_114639填空题环境的备份与导入_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/11888767......
  • CohereForAI更新企业级开源模型 c4ai-command-r-08-2024和c4ai-command-r-plus-08-202
    C4AICommandR08-2024是一个350亿参数高性能生成模型的研究版本。CommandR08-2024是一个大型语言模型,采用开放式权重,针对推理、总结和问题解答等各种用例进行了优化。CommandR08-2024具备多语言生成功能,曾在23种语言上进行过训练,并在10种语言上进行过评估......
  • [蓝桥杯 2020 省 A1] 超级胶水--题解
    题目再现:链接跳转:[蓝桥杯2020省A1]超级胶水-洛谷#[蓝桥杯2020省A1]超级胶水##题目描述小明有$n$颗石子,按顺序摆成一排,他准备用胶水将这些石子粘在一起。 每颗石子有自己的重量,如果将两颗石子粘在一起,将合并成一颗新的石子,重量是这两颗石子的重量之和。为......
  • 20240901_113224 python 环境依赖的备份与导入
    20240830_173845python当前环境依赖包导出到文件中_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/1187710920240830_183845python从依赖包记录文件中批量安装包_鲸鱼编程pyhui的技术博客_51CTO博客https://blog.51cto.com/u_13137233/11877185......
  • 「NOI2022 D2T2 冒泡排序」题解
    题意uoj768构造长为\(n\)的序列\(a\),满足\(m\)条限制:\(\min_{j=L_i}^{R_i}\{a_j\}=V_i\),要求逆序对数最少题解21pts暴力先进行一些观察:逆序对只关心相对大小,所以\(\foralla_j\)必然\(\in\{V_i\}\),可以完全离散化经典结论:若\(i<j,a_i>a_j\)且交换后合法,则交换......