發表於2024-12-29
《Unity 3D ShaderLab 開發實戰詳解(第2版)》全麵講解瞭Unity Shader渲染的實戰技術,全書分為5篇共33章,主要內容為:Shader在3D遊戲中的作用、Shader的實例化、Shader的實現語言等;Unity中Shader的形態、SubShader的重要標簽、可編程Shader、Surface Shader;Shader中用到的各種空間的概念和Shader中的投影矩陣;基本的光照模型;一個被執行的Pass,包括渲染路徑和Pass的LightMode標簽;VertexLit渲染路徑,包括頂點照明和Unity存放光源的方式;Forward渲染路徑;基於光照貼圖的烘焙照明;NDC的驗證;基於LightProbes的照明;平麵陰影;球體陰影;體積陰影;映射陰影;內置的陰影;Pass的通用指令開關;Blend操作;Stencil濛版;固定管綫;Surface Shader;凹凸材質;卡通材質;鏡麵材質;半透明材質;製作透明材質;體積霧;Wrap Model新解;用Shader切割物體;麵積光;體積光;材質替代渲染;自定義材質編輯器;後期效果;地形;投影;Shader的組織和復用。本書還包含你必須知道的渲染概念及基於渲染路徑的優化、移動平颱上的優化等實戰內容,是不可多得的實戰教程。
《Unity 3D ShaderLab 開發實戰詳解(第2版)》適閤移動開發者、遊戲開發者、程序員閱讀,可作為大專院校相關專業的師生用書,也可當作培訓學校的教材。
郭浩瑜,資深的程序員,在Android、iOS開發平颱上開發瞭許多應用,特彆擅長Unity 3D遊戲開發中的渲染技術,現為某著名遊戲公司的項目經理。
第1篇 初識廬山真麵目——Unity 3D Shader
第1章 虛擬世界的“魔法”——Shader(著色器)的概念和在3D遊戲中的作用 2
1.1 Shader的概念 2
1.1.1 虛擬世界中的光明和色彩 2
1.1.2 遊戲開發人員的終點 2
1.1.3 Shader(著色器)簡史 2
1.2 Shader的實例化 3
1.3 Shader的實現語言 3
1.3.1 GPU上的編程 3
1.3.2 Unity中的著色器編程 3
第2章 Unity中Shader(著色器)的形態 4
2.1 Unity通過ShaderLab來組織Shader 4
2.1.1 關鍵字Shader 4
2.1.2 使用SubShader組織Shader的不同實現 4
2.1.3 SubShader的重要標簽 4
2.1.4 SubShader中的Pass塊 5
2.1.5 Pass塊的標簽及其名字的意義 5
2.1.6 使用FallBack保證Shader的廣泛適應性 6
2.2 Unity的ShaderLab所支持的Shader編程語言 6
2.3 Unity中Shader的3種形態 6
2.3.1 固定管綫 6
2.3.2 可編程Shader 7
2.3.3 ShaderLab的驕傲:
Surface Shader 8
2.4 Shader的數據接口:屬性和uniform變量 8
2.4.1 在Properties塊中定義屬性 8
2.4.2 通過圖形界麵操作屬性 9
2.4.3 通過腳本操控屬性 9
2.4.4 矩陣:不能在屬性塊定義的變量 10
2.4.5 在Cg代碼中使用屬性 10
第3章 Shader(著色器)中用到的各種空間概念 11
3.1 模型空間 11
3.1.1 為什麼用模型空間 11
3.1.2 在腳本和Shader中進齣模型空間 11
3.2 世界坐標空間 11
3.2.1 統一錶達:世界坐標空間 11
3.2.2 在腳本和Shader中進齣世界坐標空間 12
3.3 視空間 12
3.3.1 渲染的需要:視空間 12
3.3.2 在腳本和Shader中進齣視空間 12
3.4 空間的一塊:視錐體 12
3.5 剪切空間 13
3.5.1 投影 13
3.5.2 腳本和Shader中的投影矩陣 13
3.5.3 驗證NDC 14
3.6 NDC之後 14
3.6.1 NDC之後發生的事情 14
第4章 基本的光照模型 16
4.1 光源對物體照明的分類 16
4.1.1 間接照明 16
4.1.2 直接照明 16
4.2 照明的計算方式:光照模型 16
4.2.1 漫反射和Lambert 16
4.2.2 鏡麵高光和Phong 17
4.2.3 半角嚮量和BlinnPhong 18
第2篇 讓你的應用更炫彩——Unity中的照明
第5章 第一個被執行的Pass 20
5.1 不同的LightMode被選擇的順序 20
5.1.1 渲染路徑和Pass的LightMode標簽 20
5.1.2 設計可以檢測渲染路徑的材質 20
5.1.3 設計便於檢測渲染路徑的場景 23
5.1.4 VertexLit渲染路徑下Pass的執行 23
5.1.5 Forward渲染路徑下Pass的執行 23
5.1.6 Deferred渲染路徑下Pass的執行 23
5.1.7 不同渲染路徑下的Pass執行規則總結 24
5.2 3個渲染路徑之外 24
5.2.1 LightMode的其他值 24
5.2.2 設計檢測用的材質 24
5.2.3 Always類型的Pass在3種渲染路徑下的執行 26
5.2.4 LightMode的默認值及其在3種渲染路徑下的執行 27
第6章 VertexLit渲染路徑 28
6.1 頂點照明 28
6.1.1 什麼是頂點照明 28
6.1.2 存取光源的變量 28
6.2 頂點照明和Unity存放光源的第一種方式 29
6.2.1 用於調試輸齣的材質 29
6.2.2 設計用於檢測的場景 29
6.2.3 在Vertex Pass中的檢測結果 30
6.2.4 效數據 30
6.3 頂點照明和Unity存放光源的第二種方式 31
6.3.1 用於調試輸齣的材質 31
6.3.2 設計用於檢測的場景 32
6.3.3 在Vertex Pass中的檢測結果 32
6.4 頂點照明和Unity存放光源的第三種方式 33
6.4.1 Unity為Vertex Pass準備的光源 33
6.4.2 設計用於檢測的場景 33
6.4.3 頂點照明中的點光源 33
6.4.4 計算頂點照明的ShadeVertexLights函數 34
6.4.5 頂點照明中的Pixel光源 34
6.4.6 頂點照明中的平行光 35
6.4.7 頂點照明中的燈光信息小結 37
6.4.8 一個頂點照明的實現例子 37
第7章 Forward渲染路徑 39
7.1 渲染物體——ForwardBase和ForwardAdd 39
7.1.1 設計檢測用的場景和材質 39
7.1.2 ForwardBase和ForwardAdd的錶現 41
7.2 Forward渲染路徑下的重要光源 41
7.2.1 設計檢測用的材質 41
7.2.2 不存在Pixel光源時的情況 42
7.2.3 存在Pixel平行光時的情況 42
7.2.4 存在Pixel點光源時的情況 42
7.2.5 有多種類型的Pixel光源時的情況 43
7.2.6 Forward渲染路徑下的Pixel光源小結 43
7.3 重要光源在ForwardAdd內的執行 43
7.3.1 設計用來檢測Pixel光源的材質 43
7.3.2 設計檢測用的場景 46
7.3.3 檢測結果:ForwardAdd如何被執行 46
7.4 ForwardBase和Unity存放光源的第一種方式 47
7.4.1 設計檢測用的材質 47
7.4.2 第一種方式內的Vertex點光源 48
7.4.3 第一種方式內的平行光 48
7.4.4 第一種方式內的重要Pixel點光源 48
7.4.5 隻有ForwardBase時的情況總結 49
7.4.6 ForwardAdd對ForwardBase內光源的影響 49
7.4.7 有ForwardAdd時存放光源數據第一種方式的總結 51
7.5 ForwardAdd和Unity存放光源的第一種方式 51
7.5.1 設計檢測用的材質 51
7.5.2 設計檢測用的場景 52
7.5.3 ForwardAdd內的Pixel光源 52
7.5.4 ForwardAdd內的平行光 53
7.5.5 數組變量unity_4LightPos的使用情況分析 53
7.6 Forward渲染路徑和Unity存放光源的第三種方式 53
7.6.1 檢測ForwardBase內情況的材質 53
7.6.2 檢測結果:第三種方式不包含對ForwardBase有效的數據 54
7.6.3 檢測結果:第三種方式不包含對ForwardAdd有效的數據 54
7.7 Forward渲染路徑總結 55
7.7.1 Forward渲染路徑下材質的適應性 55
7.7.2 Unity如何為Forward渲染路徑設置光源 55
第8章 基於光照貼圖的烘焙照明 56
8.1 單光照貼圖和VertexLit渲染路徑 56
8.1.1 測試烘焙的場景 56
8.1.2 烘焙場景中使用的材質 57
8.1.3 烘焙的前提:靜態物體 57
8.1.4 如何在烘焙中使用自發光材質 57
8.1.5 烘焙之後靜態物體和非靜態物體的實時照明 59
8.1.6 應用光照貼圖到VertexLit渲染路徑下的材質中 59
8.1.7 通過自己的材質改變實時光源對烘焙後物體的照明 61
8.2 在效果和性能間進行權衡 62
8.2.1 影響全局的Resolution選項 62
8.2.2 影響單個物體的Scale In Lightmap選項 63
8.3 單光照貼圖和Forward渲染路徑 64
8.3.1 單光照貼圖在VertexLit和Forward下麵的不同錶現 64
8.3.2 準備可應用於烘焙的自發光材質 64
8.3.3 在ForwardBase內計算光照貼圖 66
8.3.4 Forward渲染路徑下烘焙之後的實時照明 67
8.4 單光照貼圖在Deferred渲染路徑下的實時陰影 69
8.5 雙光照貼圖和Deferred渲染路徑 69
8.5.1 全局GI、間接照明以及雙光照貼圖 69
8.5.2 混閤雙光照貼圖和實時照明 69
8.5.3 觀察混閤過程 71
8.5.4 雙光照貼圖的使用限製 72
8.6 雙光照貼圖和Forward渲染路徑
Unity 3D ShaderLab 開發實戰詳解(第2版) 下載 mobi pdf epub txt 電子書 格式 2024
Unity 3D ShaderLab 開發實戰詳解(第2版) 下載 mobi epub pdf 電子書不錯的書,仔細看看,有收獲
評分正版書,質量很不錯的
評分shader熟悉的可以看看
評分很好!
評分還是有點用處,但是還是優先推薦unity shader入門精要
評分沒有問題。
評分現在還用的Unity 4.x版本,太舊瞭,不過該書作者正籌劃齣第三版將使用Unity 2017.x,敬請期待。
評分恩過還可以!
評分希望齣書的人,多少考慮一下初學者的狀態。如果學習者是一個精通shader的人,或者shader至少有一定的編寫能力,那他買你的書何用?
Unity 3D ShaderLab 開發實戰詳解(第2版) mobi epub pdf txt 電子書 格式下載 2024