按阶段拆解,告诉你每个阶段要写哪些 Demo,逐步从三角形走到完整渲染器。
🔹 第一阶段:入门(Hello Vulkan)
目标:跑通 Vulkan 的最小化程序,理解基本对象。
要做的 Demo:
创建窗口(GLFW/SDL)并初始化
VkInstance
。选择物理设备,创建逻辑设备
VkDevice
和VkQueue
。创建 Swapchain 并获取
VkImageView
。建立 Render Pass + Framebuffer。
编译 简单 Shader,创建 Graphics Pipeline。
创建 Command Buffer + Command Pool,提交绘制三角形。
使用 Fence + Semaphore 完成同步。
产出:一个能显示彩色三角形的程序。
🔹 第二阶段:基础渲染
目标:能绘制基本几何体,并把数据传入 GPU。
要做的 Demo:
顶点缓冲(Vertex Buffer)+ 索引缓冲(Index Buffer),绘制方块/立方体。
Uniform Buffer + Descriptor Set:传 MVP 矩阵,完成模型旋转。
深度缓冲(Depth Buffer):正确绘制 3D 模型。
加载纹理(Image + Sampler):给模型贴图。
简单光照(Lambert / Phong),练习 Shader 输入输出。
产出:能加载并绘制一个带纹理和光照的模型(比如立方体)。
🔹 第三阶段:进阶渲染
目标:掌握 Vulkan 的内存管理和同步机制,完成小型渲染器雏形。
要做的 Demo:
多帧渲染 (Double / Triple Buffering):解决 GPU 等待问题。
图像布局转换 + Pipeline Barrier:理解同步与资源状态切换。
帧缓冲附件(多 render target),准备做延迟渲染。
Offscreen Rendering(离屏渲染):绘制到纹理,再做后处理(模糊/灰度)。
摄像机系统(FPS / Orbital),加载外部 3D 模型(OBJ/GLTF)。
产出:一个小型 Demo,能加载 3D 场景,支持相机自由移动。
🔹 第四阶段:效果与性能优化
目标:把 Vulkan 用起来做真实的游戏/引擎效果。
要做的 Demo:
延迟渲染(G-Buffer + 光照 Pass)。
阴影贴图(Shadow Mapping)。
实例化渲染(Instancing),绘制成百上千个模型。
后处理效果:Bloom、HDR、Gamma 校正、FXAA。
多线程 Command Buffer 构建:利用多核 CPU 加速。
产出:一个基础引擎级别的渲染器,能显示场景 + 动态光照 + 后处理。
🔹 第五阶段:专家级(扩展与高级特性)
目标:理解 Vulkan 的扩展和下一代图形管线。
可以尝试:
Vulkan Memory Allocator (VMA) 管理内存。
动态渲染 (VK_KHR_dynamic_rendering),简化 Render Pass。
Mesh Shader、Task Shader。
Vulkan Ray Tracing:实现光线追踪 Demo。
Descriptor Indexing:更灵活的资源绑定。
产出:可扩展的渲染框架,支持现代图形 API 的新特性。
⚡ 总结:
入门:三角形
基础:立方体 + MVP + 纹理 + 光照
进阶:加载模型 + 摄像机 + 后处理
高级:延迟渲染 + 阴影 + 实例化 + 多线程
专家:VMA + 动态渲染 + RTX + Mesh Shader