注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)Unity 3D ShaderLab 開發(fā)實戰(zhàn)詳解(第2版)

Unity 3D ShaderLab 開發(fā)實戰(zhàn)詳解(第2版)

Unity 3D ShaderLab 開發(fā)實戰(zhàn)詳解(第2版)

定 價:¥69.00

作 者: 郭浩瑜
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115386243 出版時間: 2015-05-01 包裝:
開本: 16開 頁數(shù): 322 字?jǐn)?shù):  

內(nèi)容簡介

  《Unity 3D ShaderLab 開發(fā)實戰(zhàn)詳解(第2版)》全面講解了Unity Shader渲染的實戰(zhàn)技術(shù),全書分為5篇共33章,主要內(nèi)容為:Shader在3D游戲中的作用、Shader的實例化、Shader的實現(xiàn)語言等;Unity中Shader的形態(tài)、SubShader的重要標(biāo)簽、可編程Shader、Surface Shader;Shader中用到的各種空間的概念和Shader中的投影矩陣;基本的光照模型;第一個被執(zhí)行的Pass,包括渲染路徑和Pass的LightMode標(biāo)簽;VertexLit渲染路徑,包括頂點照明和Unity存放光源的方式;Forward渲染路徑;基于光照貼圖的烘焙照明;NDC的驗證;基于LightProbes的照明;平面陰影;球體陰影;體積陰影;映射陰影;內(nèi)置的陰影;Pass的通用指令開關(guān);Blend操作;Stencil蒙版;固定管線;Surface Shader;凹凸材質(zhì);卡通材質(zhì);鏡面材質(zhì);半透明材質(zhì);制作透明材質(zhì);體積霧;Wrap Model新解;用Shader切割物體;面積光;體積光;材質(zhì)替代渲染;自定義材質(zhì)編輯器;后期效果;地形;投影;Shader的組織和復(fù)用。本書還包含你必須知道的渲染概念及基于渲染路徑的優(yōu)化、移動平臺上的優(yōu)化等實戰(zhàn)內(nèi)容,是不可多得的實戰(zhàn)教程?!禪nity 3D ShaderLab 開發(fā)實戰(zhàn)詳解(第2版)》適合移動開發(fā)者、游戲開發(fā)者、程序員閱讀,可作為大專院校相關(guān)專業(yè)的師生用書,也可當(dāng)作培訓(xùn)學(xué)校的教材。

作者簡介

  郭浩瑜,資深的程序員,在Android、iOS開發(fā)平臺上開發(fā)了許多應(yīng)用,特別擅長Unity 3D游戲開發(fā)中的渲染技術(shù),現(xiàn)為某著名游戲公司的項目經(jīng)理。

圖書目錄

第1篇 初識廬山真面目——Unity 3D Shader
第1章 虛擬世界的“魔法”——Shader(著色器)的概念和在3D游戲中的作用 2
1.1 Shader的概念 2
1.1.1 虛擬世界中的光明和色彩 2
1.1.2 游戲開發(fā)人員的終點 2
1.1.3 Shader(著色器)簡史 2
1.2 Shader的實例化 3
1.3 Shader的實現(xiàn)語言 3
1.3.1 GPU上的編程 3
1.3.2 Unity中的著色器編程 3
第2章 Unity中Shader(著色器)的形態(tài) 4
2.1 Unity通過ShaderLab來組織Shader 4
2.1.1 關(guān)鍵字Shader 4
2.1.2 使用SubShader組織Shader的不同實現(xiàn) 4
2.1.3 SubShader的重要標(biāo)簽 4
2.1.4 SubShader中的Pass塊 5
2.1.5 Pass塊的標(biāo)簽及其名字的意義 5
2.1.6 使用FallBack保證Shader的廣泛適應(yīng)性 6
2.2 Unity的ShaderLab所支持的Shader編程語言 6
2.3 Unity中Shader的3種形態(tài) 6
2.3.1 固定管線 6
2.3.2 可編程Shader 7
2.3.3 ShaderLab的驕傲:
Surface Shader 8
2.4 Shader的數(shù)據(jù)接口:屬性和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中進(jìn)出模型空間 11
3.2 世界坐標(biāo)空間 11
3.2.1 統(tǒng)一表達(dá):世界坐標(biāo)空間 11
3.2.2 在腳本和Shader中進(jìn)出世界坐標(biāo)空間 12
3.3 視空間 12
3.3.1 渲染的需要:視空間 12
3.3.2 在腳本和Shader中進(jìn)出視空間 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之后發(fā)生的事情 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篇 讓你的應(yīng)用更炫彩——Unity中的照明
第5章 第一個被執(zhí)行的Pass 20
5.1 不同的LightMode被選擇的順序 20
5.1.1 渲染路徑和Pass的LightMode標(biāo)簽 20
5.1.2 設(shè)計可以檢測渲染路徑的材質(zhì) 20
5.1.3 設(shè)計便于檢測渲染路徑的場景 23
5.1.4 VertexLit渲染路徑下Pass的執(zhí)行 23
5.1.5 Forward渲染路徑下Pass的執(zhí)行 23
5.1.6 Deferred渲染路徑下Pass的執(zhí)行 23
5.1.7 不同渲染路徑下的Pass執(zhí)行規(guī)則總結(jié) 24
5.2 3個渲染路徑之外 24
5.2.1 LightMode的其他值 24
5.2.2 設(shè)計檢測用的材質(zhì) 24
5.2.3 Always類型的Pass在3種渲染路徑下的執(zhí)行 26
5.2.4 LightMode的默認(rèn)值及其在3種渲染路徑下的執(zhí)行 27
第6章 VertexLit渲染路徑 28
6.1 頂點照明 28
6.1.1 什么是頂點照明 28
6.1.2 存取光源的變量 28
6.2 頂點照明和Unity存放光源的第一種方式 29
6.2.1 用于調(diào)試輸出的材質(zhì) 29
6.2.2 設(shè)計用于檢測的場景 29
6.2.3 在Vertex Pass中的檢測結(jié)果 30
6.2.4 效數(shù)據(jù) 30
6.3 頂點照明和Unity存放光源的第二種方式 31
6.3.1 用于調(diào)試輸出的材質(zhì) 31
6.3.2 設(shè)計用于檢測的場景 32
6.3.3 在Vertex Pass中的檢測結(jié)果 32
6.4 頂點照明和Unity存放光源的第三種方式 33
6.4.1 Unity為Vertex Pass準(zhǔn)備的光源 33
6.4.2 設(shè)計用于檢測的場景 33
6.4.3 頂點照明中的點光源 33
6.4.4 計算頂點照明的ShadeVertexLights函數(shù) 34
6.4.5 頂點照明中的Pixel光源 34
6.4.6 頂點照明中的平行光 35
6.4.7 頂點照明中的燈光信息小結(jié) 37
6.4.8 一個頂點照明的實現(xiàn)例子 37
第7章 Forward渲染路徑 39
7.1 渲染物體——ForwardBase和ForwardAdd 39
7.1.1 設(shè)計檢測用的場景和材質(zhì) 39
7.1.2 ForwardBase和ForwardAdd的表現(xiàn) 41
7.2 Forward渲染路徑下的重要光源 41
7.2.1 設(shè)計檢測用的材質(zhì) 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光源小結(jié) 43
7.3 重要光源在ForwardAdd內(nèi)的執(zhí)行 43
7.3.1 設(shè)計用來檢測Pixel光源的材質(zhì) 43
7.3.2 設(shè)計檢測用的場景 46
7.3.3 檢測結(jié)果:ForwardAdd如何被執(zhí)行 46
7.4 ForwardBase和Unity存放光源的第一種方式 47
7.4.1 設(shè)計檢測用的材質(zhì) 47
7.4.2 第一種方式內(nèi)的Vertex點光源 48
7.4.3 第一種方式內(nèi)的平行光 48
7.4.4 第一種方式內(nèi)的重要Pixel點光源 48
7.4.5 只有ForwardBase時的情況總結(jié) 49
7.4.6 ForwardAdd對ForwardBase內(nèi)光源的影響 49
7.4.7 有ForwardAdd時存放光源數(shù)據(jù)第一種方式的總結(jié) 51
7.5 ForwardAdd和Unity存放光源的第一種方式 51
7.5.1 設(shè)計檢測用的材質(zhì) 51
7.5.2 設(shè)計檢測用的場景 52
7.5.3 ForwardAdd內(nèi)的Pixel光源 52
7.5.4 ForwardAdd內(nèi)的平行光 53
7.5.5 數(shù)組變量unity_4LightPos的使用情況分析 53
7.6 Forward渲染路徑和Unity存放光源的第三種方式 53
7.6.1 檢測ForwardBase內(nèi)情況的材質(zhì) 53
7.6.2 檢測結(jié)果:第三種方式不包含對ForwardBase有效的數(shù)據(jù) 54
7.6.3 檢測結(jié)果:第三種方式不包含對ForwardAdd有效的數(shù)據(jù) 54
7.7 Forward渲染路徑總結(jié) 55
7.7.1 Forward渲染路徑下材質(zhì)的適應(yīng)性 55
7.7.2 Unity如何為Forward渲染路徑設(shè)置光源 55
第8章 基于光照貼圖的烘焙照明 56
8.1 單光照貼圖和VertexLit渲染路徑 56
8.1.1 測試烘焙的場景 56
8.1.2 烘焙場景中使用的材質(zhì) 57
8.1.3 烘焙的前提:靜態(tài)物體 57
8.1.4 如何在烘焙中使用自發(fā)光材質(zhì) 57
8.1.5 烘焙之后靜態(tài)物體和非靜態(tài)物體的實時照明 59
8.1.6 應(yīng)用光照貼圖到VertexLit渲染路徑下的材質(zhì)中 59
8.1.7 通過自己的材質(zhì)改變實時光源對烘焙后物體的照明 61
8.2 在效果和性能間進(jìn)行權(quán)衡 62
8.2.1 影響全局的Resolution選項 62
8.2.2 影響單個物體的Scale In Lightmap選項 63
8.3 單光照貼圖和Forward渲染路徑 64
8.3.1 單光照貼圖在VertexLit和Forward下面的不同表現(xiàn) 64
8.3.2 準(zhǔn)備可應(yīng)用于烘焙的自發(fā)光材質(zhì) 64
8.3.3 在ForwardBase內(nèi)計算光照貼圖 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渲染路徑

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號