課程介紹:
Shader在游戲中的作用非常重要,然而學習shader的路卻不是那么容易,它涉及到方方面面的知識和基礎, 比如:3D數學,計算機圖形學甚至硬件。很多朋友為了達到一種特別的功能,往往在互聯網上四處搜索別人的shader,最后卻找不到適合自己需求的東西。與其糾結在無法理解和改良別人shader的痛苦中,不如放棄盲目和被動,轉而從頭學習這種“代碼的藝術”。
本教程“授人以漁”,為大家帶來零起點的shader教學,從圖形硬件的發展史開始,講GPU可編程管線,講現代shader language的發展歷程,讓大家能從一個縱深的過程中宏觀的了解這種技術的前世今生。教程以Unity引擎為環境 ,重點放在Cg語言的學習和經典光照的計算上。 為了突破難點,作者鋪助了大量圖文課件進行講解3D數學和圖形學知識,手把手在unity環境下進行逐行代碼的coding教學,期望幫助大家進入Shader編程的大門,最終能在實際的工程實踐中有些創造和創新。
課程大綱:
- 初級課時
- 圖形硬件簡史與可編程管線
- Shader和渲染管線
- 三大主流編程語言 HLSL/GLSL/ Cg
- Unity shader 的組織形式 (Shaderlab)
- 固定管線shader (Fixed function shader)_1
- 固定管線shader (Fixed function shader)_2
- Surface shader 1
- Surface shader 2
- Cg 語言入門 1 輸入輸出和語義
- Cg 語言入門 3 profile和基本數據類型
- Cg 語言入門 4數據類型和swizzle操作
- Cg 語言入門 5流程控制
- Cg 語言入門 6Cg 函數 1
- Cg 語言入門 6Cg 函數 2
- 3D數學基礎 1 – 坐標系
- 3D數學基礎 2 – 向量
- 3D數學基礎 3 – 矩陣
- 3D數學基礎 4 – 矩陣和行列式
- 3D數學基礎 5 – 矩陣的逆
- 3D數學基礎 6 – 矩陣和變換
- 3D數學基礎實例- C# 矩陣變換與三維渲染 1
- 3D數學基礎實例- C# 矩陣變換與三維渲染 2
- 3D數學基礎實例- C# 矩陣變換與三維渲染 3
- 3D數學基礎實例- C# 矩陣變換與三維渲染 4
- 3D數學基礎實例- C# 矩陣變換與三維渲染 5
- 3D數學基礎實例- C# 矩陣變換與三維渲染 6
- Vertex Shader – 頂點數據的輸入與輸出 1
- Vertex Shader – 頂點數據的輸入與輸出 2
- Vertex Shader – 更好的數據組織方式struct
- Vertex Shader – Uniform 與 properties屬性
- Vertex Shader – 幾何變換 —MVP矩陣變換 1
- Vertex Shader – 幾何變換 —MVP矩陣變換 2
- Vertex Shader – 幾何變換 —頂點顏色變換 1
- Vertex Shader – 幾何變換 —頂點顏色變換 2
- Vertex Shader – 幾何變換 —頂點位移
- Vertex Shader – 幾何變換 —扭曲
- Vertex Shader – 幾何變換 —波
- 圖形學入門 – 法向量與光照
- 基礎實例 – C# 光照渲染 1
- 基礎實例- C# 光照渲染 2
- 基礎實例- C# 光照渲染 3
- 基礎實例- C# 光照渲染 4
- 圖形學入門 – 實現漫反射 Diffuse shader 1
- 圖形學入門 – 實現漫反射 Diffuse shader 2
- 圖形學入門 – 反射向量與Cg reflect函數
- 圖形學入門 – 實現phong 光照
- 圖形學入門 – 半角向量與BlinnPhong
- Fragment shader – 片段級光照 1
- Fragment shader – 片段級光照 2
- Fragment shader – 片段級光照 3
- Fragment shader – 片段顏色混合
- Fragment shader – 邊緣泛光shader 1
- Fragment shader – 邊緣泛光shader 2
- Fragment shader – 片段級模型動態變色 1
- Fragment shader – 片段級模型動態變色 2
- Fragment shader – 片段級模型動態變色 3
- Fragment shader – 2D紋理采樣 1
- Fragment shader – 2D紋理采樣 2
- Fragment shader – 2D紋理采樣 3
- Fragment shader – UV動畫 1
- Fragment shader – UV動畫 2
- Fragment shader – UV動畫 3
- Fragment shader –紋理混合動畫 1
- Fragment shader –紋理混合動畫 2
- Fragment shader – 程序紋理
- Fragment shader – 程序紋理水波仿真1
- Fragment shader – 程序紋理水波仿真2
- Fragment shader – 程序紋理水波仿真3
- Fragment shader – 程序紋理水波仿真4
- Fragment shader – Alpha 與 blend 運算
- Fragment shader 7 – 實現半透明著色 1
- Fragment shader 7 – 實現半透明著色 2
- Fragment shader – 紋理法線與凹凸貼圖 1
- Fragment shader – 紋理法線與凹凸貼圖 2
- Fragment shader – 紋理法線與凹凸貼圖 3
- Fragment shader – 紋理法線與凹凸貼圖 4
- Fragment shader – Cube紋理采樣
- Fragment shader – 實現高效的reflection shader






