-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Unity 3D ShaderLab 開發實戰詳解(第2版)

( 簡體 字)
作者:郭浩瑜類別:1. -> 多媒體 -> 遊戲引擎 -> Unity
譯者:
出版社:人民郵電出版社Unity 3D ShaderLab 開發實戰詳解(第2版) 3dWoo書號: 41669
詢問書籍請說出此書號!

缺書
NT售價: 345

出版日:5/1/2015
頁數:322
光碟數:1
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787115386243
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

  本書全面講解了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的組織和復用。本書還包含你必須知道的渲染概念及基于渲染路徑的優化、移動平臺上的優化等實戰內容,是不可多得的實戰教程。
本書適合移動開發者、游戲開發者、程序員閱讀,可作為大專院校相關專業的師生用書,也可當作培訓學校的教材。
目錄:

第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渲染路徑
序: