Games104游戏引擎
- 游戏引擎分层
- 工具层
- 功能层
- 控制游戏时间的推荐,进行逻辑和渲染更新(每一帧)
- 游戏生命周期控制
- 资源层
- 导入资源,并将不同格式(软件)的资源转化为通用高效的引擎资产
- 除了资产文件外,引擎还生成了文件用于存储资产之间的关系,以及游戏资产的 id
- 负责资源的生命周期的管理,加载与释放
- 核心层
- 数学库(强调效率)
- 为上层提供基础服务
- 各种数据结构(类似 STL)
- 内存管理、资源分配
- 平台层
- 适配不同操作系统、设备
- 让上层写代码时可以无视平台的差异(如文件路径、图形 api)
渲染
- 可渲染物体组成:
- 点:位置、法线、uv 等
- 面:三角形顶点序号组成
- 材质贴图
- 一个物体可能会使用不同的材质,可以据此进行嗯个位 submesh,每个子部分独立进行处理
- 为了避免同一模型重复存储,数据只存储一根,每个模型仅存储一个指向对应数据的 id
- 为了提高渲染效率,可以按照材质排序,顺序渲染使用相同材质的物体,减少 IO 消耗
- 可见性裁剪
- 使用包围盒等判断,减少视野之外的不必要的渲染开销

- 进行区域划分,只处理周边区域(也可以依据区域进行数据加载释放)
- 纹理压缩
- 游戏引擎需要可以随机访问,因此 jpeg 等压缩算法并不适用