一、笔者前言
笔者大学期间涉猎过Unity的Gameplay游戏逻辑开发、Shader开发、Blender建模,也啃过Vulkan API实时硬件光追、渲染管线和一些图形学知识。近期希望能够系统学习引擎开发的知识,于是有了这个笔记博文系列。欢迎志同道合的大佬前来交流,笔记中如有错误和疏漏,敬请指正!
二、引擎架构分层
游戏引擎自顶向下分为:
-
工具层(各种编辑器的操作)
-
功能层(渲染、动画、物理、交互、脚本AI、状态机)——最为庞大复杂
-
资源层(文件、数据)
-
核心层(复用的底层代码,包含数学库、数据结构等)
-
平台层(不同用户平台)
所有层都可以植入第三方库/中间件
工具层
编辑器、DCC数字内容创建(Houdini MAYA 3dsmax blender)
资源层
Asset
资源层导入各种外部资源(模型、贴图等)时,需要转换成统一的形式以降低时空代价(例如通过删除原始资源的一些编辑信息节约空间),称为Asset。
GUID
对每个Asset设置的全体唯一识别号
Runtime Asset Manager
实时运行的Asse