????????按階段拆解,告訴你每個階段要寫哪些 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