iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

因為 AI 看不懂老舊程式,只好乖乖從零開始學 DirectX 12 與 HLSL 系列

記錄自己學習 DX12 與 HLSL 的過程,同時參考多個遊戲引擎、技術書籍與教學資源,最終目標是實作並展示基礎 Shader 功能與基本的即時渲染引擎架構。

參賽天數 23 天 | 共 23 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11:基本 HLSL 介紹

在前面的章節,只有介紹 DX 如何設定 Shader pipeline 跟部份的 Shader 程式,在這篇會更詳細介紹 HLSL 本身的寫法與相關功能。 Sh...

2026-09-11 ‧ 由 tina70245 分享
DAY 12

Day 12:StructuredBuffer

前面有個舉例顏色格子的例子,這邊就用這例子來介紹 StructuredBuffer StructuredBuffer 是什麼 基本上來說,一般傳遞資料都是一筆一...

2026-09-12 ‧ 由 tina70245 分享
DAY 13

Day 13 : 天空背景

其實因為前面的彩格範例是突然想到的,所以今天才開始弄接下來主題想要做到的內容。今天是畫天空的顏色。 common.hlsl // 根據 Vertex ID 取...

2026-09-13 ‧ 由 tina70245 分享
DAY 14

Day 14:太陽

今天是太陽的部分,主要註解跟太陽有關的實作。 // 定義 Vertex Shader 傳給 Pixel Shader 的資料 struct VSOutput {...

2026-09-14 ‧ 由 tina70245 分享
DAY 15

Day 15:Model View Projection

到目前為止,都還是最簡單 2D 平面上的顯示方式,像是之前在太陽時出現的這段 float2 positions[3] = { float2(-1.0f,...

2026-09-15 ‧ 由 tina70245 分享
DAY 16

Day 16:Pass / Rendering Pipeline

當然看過前面的程式後,除了有重複的程式外,也開始會發現有順序問題。像是太陽光最強的地方會蓋過天空色、在漸漸減弱時天空色會再次顯現、甚至後面範例的雲會混合更多的色...

2026-09-16 ‧ 由 tina70245 分享
DAY 17

Day 17:體積雲概覽

因為在寫得當下其實還有蠻多前提知識不太理解的,所以實際結果跟自己的想法有不少出入,這邊先已記錄為主,之後慢慢修。 雖然雲看起來很單純,不過其實一朵雲就可以包...

2026-09-17 ‧ 由 tina70245 分享
DAY 18

Day 18:Compute Pipeline 介紹

前面提到了很多 DX 與 Shader 的設定,但現在遊戲的畫面越來越精緻,不可能每一幀都只計算一個 function。 所以這時 GPU 最重要的能力就出來了...

2026-09-18 ‧ 由 tina70245 分享
DAY 19

Day 19 : ImGui

因為雲的數學與參數相比前面的複雜非常多,這邊會安裝 ImGui 來方便後面的數值變化展示。 ImGui 是什麼 在 C++ 既有 UI 相關的函式庫中,Qt 是...

2026-09-19 ‧ 由 tina70245 分享
DAY 20

Day 20:Compute Shader、RWStructuredBuffer

講完 DX 那端的 Compute pipeline 設定後,這篇就是正式要開始用到 Compute Shader 了。 前面有提到 StructuredBuf...

2026-09-20 ‧ 由 tina70245 分享