查看原文
其他

Rust 生态蜜蜂|「Bevy 源码阅读」Part 5: ECS 架构初探之UI与渲染

张汉东 觉学社 2022-10-13
前言
因觉学,求绝学。Rust 生态蜜蜂,是觉学社公众号开启的一个付费专栏。生态蜜蜂,顾名思义,是从 Rust 生态的中,汲取养分,供我们成长。计划从2022年7月第二周开始,到2022年12月最后一周结束。预计至少二十篇周刊,外加一篇Rust年度报告总结抢读版。本专栏可以在公众号菜单「生态蜜蜂」中直接进入。海外用户可以去 https://rustbee.zhubai.love/ 订阅。

在上一篇文章里,我们学习了 Bevy 的 插件(Plugin)系统,今天我们来学习一下 UI 和 渲染相关的知识,然后把整个打字游戏的源码进行全面解读。

友情提示:本文较长,适合慢慢阅读。

我们参考Bevy Jam [1] 游戏开发第一次比赛中的一个打字游戏[2],来学习 Bevy ECS 的应用实践,从而为后面阅读 ECS 库源码打基础。源码在 GitHub 开源[3],已经升级到 Bevy 0.8。这款游戏模仿的是 《Flappy Bird》(飞扬的小鸟)这款游戏,但是控制小鸟上下飞是通过打字完成的。

本文目录

  • 通用背景
    • 硬件绘图基础
    • 游戏引擎基本架构
    • 渲染引擎工作原理
  • Bevy UI 与 渲染引擎源码架构介绍
    • Bevy 游戏引擎架构概要
    • Bevy UI 概要
    • Bevy 渲染引擎概要
  • 打字游戏源码全解
    • main 主流程
    • Cylinder 障碍物渲染
    • Ground 物理渲染
    • 打字与事件
    • UI 界面
    • 碰撞检测
  • 小结
  • 延伸阅读

通用背景

如果你对此背景知识有一定了解可以跳过。我们这部分内容的目的只是对渲染流程建立宏观模型,以便帮助我们理解 Bevy 相关代码,涉及更多细节可以自行查阅相关资料。

涉及Bevy UI 和 渲染之前,我们需要了解一些通用背景知识,包括硬件绘图的基本原理、游戏引擎的基本架构、渲染引擎的基本流程等知识。因为 Bevy 并不是要造空中楼阁,它依然是基于这些基础知识所构建的游戏引擎。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存