iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0

太好了!主線都完成了,接下來可以做些「把技術真正長到肌肉裡」的延伸專題。我把題目分門別類、每題都給「你會學到什麼 → 核心重點 → 驗收成果 → 常見坑」。可以挑幾個做成番外篇或期末專題。


1) 顏色管理 & Tone Mapping(入門升級|⭐~⭐⭐)

你會學到:Linear vs sRGB、HDR/曝光、ACES Filmic 曲線。
重點:在 shader 內以線性空間計算,輸出前做 tone mapping(如 ACES)、最後再轉 sRGB。
驗收:做一個「曝光滑桿 + ACES/Filmic/Linear 對比」的小面板。
常見坑:把 sRGB 貼圖當線性用;亮部斷階;忘了在 WebGPU/Vulkan 上處理畫布格式與 gamma。


2) IBL 與 PBR 進階(環境光照)(⭐⭐~⭐⭐⭐)

你會學到:環境貼圖→diffuse irradiance(卷積),specular prefilter(Roughness MIP)、BRDF LUT(split-sum)。
重點:一鍵把任何 HDR 天空盒變成 PBR 所需的三件套(irradiance、prefilter、BRDF LUT)。
驗收:金屬球/塑膠球在不同 HDR 下的對比圖。
常見坑:取樣座標接縫、Roughness 對應 MIP 的公式、BRDF LUT 的 UV 範圍。


3) 陰影技術大全(PCF/PCSS/CSM/Moment)(⭐⭐~⭐⭐⭐)

你會學到

  • PCF:方形/旋轉 Poisson 取樣
  • PCSS:接觸硬化陰影(根據 blocker 距離調 kernel)
  • CSM:分段陰影貼圖(戶外場景)
  • VSM/EVSM:用矩測試減少鋸齒
    驗收:同一個場景四種陰影並列。
    常見坑:深度偏移(Peter-panning/Shadow acne)、CSM split 的過渡、VSM 光暈。

4) 螢幕空間效果(SSAO/SSR/TAA)(⭐⭐~⭐⭐⭐)

你會學到

  • SSAO:隨機核 + 旋轉噪聲 + 半解析度 + Blur
  • SSR:基於 GBuffer 的反射 + 历史重投影
  • TAA:Halton 抖動 + Motion Vectors + History Clamp
    驗收:開關 SSAO/SSR/TAA 的效果與幀時間對比。
    常見坑:TAA 鬼影、SSR 光線行進中斷、AO 過度發黑(要做 bent normal/曲率衰減)。

5) 延遲著色與分塊/叢集打光(⭐⭐⭐)

你會學到:GBuffer(位置/法線/ORM)、tiled/clustered light culling(compute 先把光分桶)。
驗收:1000 盞點光仍流暢;Profiler 顯示像素階段成本下降。
常見坑:GBuffer 吃頻寬;位置重建精度;Tile/Cluster 的 Z 分箱。


6) 粒子系統(全 GPU)(⭐⭐~⭐⭐⭐)

你會學到:Compute 更新(位置/速度/壽命)、DrawIndirect + instancing、深度排序(bitonic/radix)。
驗收:十萬粒子(重力/噴泉/爆炸)在 60 FPS。
常見坑:與透明排序衝突、原子計數器的競爭、buffer ping-pong。


7) 物理導向動畫:布料/柔體/流體(⭐⭐⭐~⭐⭐⭐⭐)

你會學到:PBD(Position-Based Dynamics)/XPBD、SPH(流體),共享記憶體 tiling 與鄰居搜尋。
驗收:旗幟/披風/小水槽 demo。
常見坑:時間步長穩定性、約束序列與迭代次數、鄰居網格散佈不均。


8) GPU-Driven Rendering(Frustum/Occlusion + Indirect)(⭐⭐⭐)

你會學到:Compute 做視錐/包圍盒裁切、Hi-Z 遮擋預測、drawIndexedIndirect/multiDraw、bindless/descriptor indexing。
驗收:上千物件在 CPU 幾乎零開銷切換材質。
常見坑:資源綁定策略(bindless 的限制)、間接參數寫入同步、可見性結果延遲一幀。


9) Vulkan 進階工程化(⭐⭐~⭐⭐⭐)

你會學到:VMA 記憶體配置、timeline semaphore、barrier 正確性、multi-threaded command recording、pipeline cache、frame graph。
驗收:Frame graph 自動管理 transient RT/依賴,CPU 多執行緒建包速度明顯提升。
常見坑:Barrier 亂用導致執行/快取 flush 過多;描述符生命週期管理。


10) 光線追蹤(DXR/VulkanRT)(⭐⭐⭐⭐)

你會學到:BLAS/TLAS、Raygen/Miss/Closest-hit、Shadow/Reflection rays、混合 raster+RT、SVGF/DLSS/FSR2 去噪與重建。
驗收:軟陰影/反射 demo;與栅格版視覺對比。
常見坑:AS 更新與建置成本、ray budget、去噪器暫留(history 管理)。


11) WebGPU 進階 Compute(⭐⭐)

你會學到:Prefix sum/scan、並行排序、storage texture、atomics、workgroup 記憶體。把 compute 結果直接餵 render。
驗收:WebGPU 版 tiled light culling / 粒子 / 影像濾鏡。
常見坑:WGSL 對齊(避免 vec3)、讀回 staging 流程、管線附件相容性。


12) CUDA ↔ Vulkan/WebGPU 互通(跨域工作流)(⭐⭐⭐⭐)

你會學到:外部記憶體/信號量共享(CUDA–Vulkan)、用 CUDA 做重型數值(排序/模擬),再由 Vulkan 繪製。
驗收:CUDA 做粒子/布料、Vulkan 畫結果,零拷貝。
常見坑:跨 API 同步、格式/對齊、TDR/Watchdog。


13) 行動裝置最佳化(Tile-Based GPU)(⭐⭐)

你會學到:帶寬優先、避免 overdraw、FB fetch/resolve 成本、半精度、壓縮貼圖(ASTC/ETC2)、Android GPU Inspector。
驗收:相同場景在手機上幀時間減半。
常見坑:過多的混色/透明、無 mipmap、過大 RT 格式。


14) 資產管線 & glTF/KTX2(⭐⭐)

你會學到:glTF 2.0(金屬粗糙度、法線、切線 MikkTSpace、ORM 打包)、KTX2/Basis Universal、sRGB/Linear 管理。
驗收:自動管線:HDRI → IBL 三件套模型 → 壓縮貼圖 + 切線
常見坑:法線貼圖 Y 向(OpenGL vs DirectX)、色域/色彩空間混用。


15) 體積與大氣(⭐⭐⭐)

你會學到:體積霧(單次散射 + 錐追蹤)、多層雲、Nishita/Bruneton 大氣散射。
驗收:日出日落 + 體積光柱 demo。
常見坑:步長與噪點、半解析度與 temporal 穩定度、能量守恆。


16) 渲染編輯器 & 即時調參(⭐⭐)

你會學到:熱重載 shader、材質面板(uniform 反射/綁定)、frame capture 快捷鍵、螢幕對比測試(golden image)。
驗收:一個可存檔的「小編輯器」,可視化調 Roughness/Metalness/IBL。
常見坑:多平台路徑、shader 編譯快取、熱重載同步。


17) 單元測試與回歸(⭐⭐)

你會學到:GPU timestamp 統計、螢幕截圖比對(容差)、離線 shader 單元測試(BRDF/積分 LUT)。
驗收:CI 報表列出關鍵 Pass 的 ms 與影像 diff。
常見坑:非決定性雜訊導致假陽性,需要降噪/固定種子/歷史 clamp。


推薦學習順序(兩條路線)

  • 視覺質感路線:#1 → #2 → #3 → #4 → #15
  • 效能工程路線:#5 → #8 → #9 →(行動 #13)→ #10/#12

小貼士(做專題更順)

  • 每做一題都先量再改(RenderDoc / Nsight / GPA),保留 before/after 圖與幀時間。
  • 產出最終對比頁:左:技術關閉,右:技術開啟 + 參數;再附「成本(ms)」。
  • 盡量做成可重用模組(IBL baker、Shadow 模組、PostFX 管線、Frame Graph),下一個專題直接接上去。

上一篇
延伸:AVX-512 入門|給完全沒基礎的人
下一篇
延伸:MPI入門 叢集式運算
系列文
渲染與GPU編程31
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言