課程介紹:
? ? Shader在游戲中的作用非常重要,然而學(xué)習(xí)shader的路卻不是那么容易轻局,它涉及到方方面面的知識和基礎(chǔ)梧却, 比如:3D數(shù)學(xué)迹蛤,計算機圖形學(xué)甚至硬件民珍。很多朋友為了達到一種特別的功能,往往在互聯(lián)網(wǎng)上四處搜索別人的shader盗飒,最后卻找不到適合自己需求的東西嚷量。與其糾結(jié)在無法理解和改良別人shader的痛苦中,不如放棄盲目和被動箩兽,轉(zhuǎn)而從頭學(xué)習(xí)這種“代碼的藝術(shù)”津肛。
? ? 本教程“授人以漁”,為大家?guī)砹闫瘘c的shader教學(xué)章喉,從圖形硬件的發(fā)展史開始汗贫,講GPU可編程管線,講現(xiàn)代shader language的發(fā)展歷程秸脱,讓大家能從一個縱深的過程中宏觀的了解這種技術(shù)的前世今生落包。教程以Unity引擎為環(huán)境 ,重點放在Cg語言的學(xué)習(xí)和經(jīng)典光照的計算上摊唇。 為了突破難點咐蝇,作者鋪助了大量圖文課件進行講解3D數(shù)學(xué)和圖形學(xué)知識,手把手在unity環(huán)境下進行逐行代碼的coding教學(xué)巷查,期望幫助大家進入Shader編程的大門有序,最終能在實際的工程實踐中有些創(chuàng)造和創(chuàng)新。
課程大綱:
初級課時
圖形硬件簡史與可編程管線
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和基本數(shù)據(jù)類型
Cg 語言入門 4數(shù)據(jù)類型和swizzle操作
Cg 語言入門 5流程控制
Cg 語言入門 6Cg 函數(shù)??1
Cg 語言入門 6Cg 函數(shù)??2
3D數(shù)學(xué)基礎(chǔ) 1 - 坐標系
3D數(shù)學(xué)基礎(chǔ) 2 - 向量
3D數(shù)學(xué)基礎(chǔ) 3 - 矩陣
3D數(shù)學(xué)基礎(chǔ) 4 - 矩陣和行列式
3D數(shù)學(xué)基礎(chǔ) 5 - 矩陣的逆? ?
3D數(shù)學(xué)基礎(chǔ) 6 - 矩陣和變換? ?
3D數(shù)學(xué)基礎(chǔ)實例-??C# 矩陣變換與三維渲染??1
3D數(shù)學(xué)基礎(chǔ)實例-??C# 矩陣變換與三維渲染??2
3D數(shù)學(xué)基礎(chǔ)實例-??C# 矩陣變換與三維渲染??3
3D數(shù)學(xué)基礎(chǔ)實例-??C# 矩陣變換與三維渲染??4
3D數(shù)學(xué)基礎(chǔ)實例-??C# 矩陣變換與三維渲染??5
3D數(shù)學(xué)基礎(chǔ)實例-??C# 矩陣變換與三維渲染??6
Vertex Shader??- 頂點數(shù)據(jù)的輸入與輸出??1
Vertex Shader??- 頂點數(shù)據(jù)的輸入與輸出??2
Vertex Shader??- 更好的數(shù)據(jù)組織方式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??- 幾何變換 —波
圖形學(xué)入門??- 法向量與光照
基礎(chǔ)實例 -??C# 光照渲染??1
基礎(chǔ)實例-??C# 光照渲染??2
基礎(chǔ)實例-??C# 光照渲染??3
基礎(chǔ)實例-??C# 光照渲染??4
圖形學(xué)入門??-??實現(xiàn)漫反射 Diffuse??shader??1
圖形學(xué)入門??-??實現(xiàn)漫反射 Diffuse??shader??2
圖形學(xué)入門??-? ?反射向量與Cg reflect函數(shù)
圖形學(xué)入門??–??實現(xiàn)phong 光照
圖形學(xué)入門??-? ?半角向量與BlinnPhong
Fragment shader??- 片段級光照??1
Fragment shader??- 片段級光照??2
Fragment shader??- 片段級光照??3
Fragment shader??- 片段顏色混合
Fragment shader??- 邊緣泛光shader 1
Fragment shader??- 邊緣泛光shader 2
Fragment shader??- 片段級模型動態(tài)變色 1
Fragment shader??- 片段級模型動態(tài)變色 2
Fragment shader??- 片段級模型動態(tài)變色 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 - 實現(xiàn)半透明著色??1
Fragment shader 7 - 實現(xiàn)半透明著色??2
Fragment shader??- 紋理法線與凹凸貼圖 1
Fragment shader??- 紋理法線與凹凸貼圖 2
Fragment shader??- 紋理法線與凹凸貼圖 3
Fragment shader??- 紋理法線與凹凸貼圖 4
Fragment shader??- Cube紋理采樣
Fragment shader??- 實現(xiàn)高效的reflection shader