上一节了解了 Piccolo 中两种不同的渲染路径的具体实现,这一节我们使用 RenderDoc 帧调试工具来验证整个渲染流程。
开发环境:VS 2022 + QT 5.12.3
第三方库:glm 数学库
编译说明:需要在 VS 中安装 Qt Visual Studio Tools 插件并配置 QT 路径,之后正常编译即可
这一节讨论 Vulkan 的资源绑定和状态管理机制,过程中可以加深对 Pipeline、Pipeline layout、Descriptor、Descriptor Set、Descriptor set layout、Descriptor binding 等概念的理解。
本篇总结 Vulkan 常用组件之间的关系,以便于后续关于 Vulkan 多线程渲染、内存管理、资源绑定、状态管理等部分的讨论。下图展示了 Vulkan 中重要的组件及其工作流程,我们在之后还会反复见到这张图。
上一次我们了解了 Piccolo 引擎中渲染的基本流程,包括 Logic Tick 和 Render Tick 的数据交换和 RenderTick 的大致过程,这一节我们来详细看这些过程都是如何实现的,在此基础上下一节尝试为整个渲染流程加入一个 Color Grading Pass。
物理系统是游戏引擎中最重要的逻辑系统,也是游戏引擎中极为复杂和庞大的系统,物理决定了游戏世界是否符合人对真实世界的认知,好的物理系统能让游戏可玩性大幅提升,这一节来简单了解游戏引擎中的物理系统和简单的碰撞检测思路。因为物理系统非常复杂,因此我们先学习基础的概念和思想,之后如果有必要会在专门的物理专题中进一步学习详细的算法和实现。