注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)游戲設(shè)計(jì)Unity ShaderLab新手寶典

Unity ShaderLab新手寶典

Unity ShaderLab新手寶典

定 價(jià):¥89.00

作 者: 唐福幸 著
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302571575 出版時間: 2021-03-01 包裝: 平裝
開本: 16 頁數(shù): 342 字?jǐn)?shù):  

內(nèi)容簡介

  本書是一部系統(tǒng)講解Unity ShaderLab語言與編程方法的入門教程(包含紙質(zhì)圖書、Unity美術(shù)資源、Shader源代碼)。 本書共分14章,第1、2章,主要為了給讀者普及3D數(shù)學(xué)相關(guān)的基礎(chǔ)知識以及GPU渲染流水線的基本概念,為本書后面的內(nèi)容提供基礎(chǔ)知識的儲備。第3~11章,主要講解了Shader的語法結(jié)構(gòu)、兩種不同的編寫方式(Vertex Fragment Shader和Surface Shader)、光照模型、后期處理、自定義材質(zhì)設(shè)置面板。這一部分內(nèi)容是本書的主要部分,讀者朋友們一定要認(rèn)真閱讀。第12章,主要講解Unity Shader可視化編輯插件——Amplify Shader Editor,方便讀者在編寫Shader之前梳理邏輯或者前期驗(yàn)證效果的時候使用。第13、14章,通過對不同經(jīng)典案例的分析和講解,使讀者進(jìn)一步加深對Unity Shader的理解,并且能夠更加高效地編寫出可以應(yīng)用于真實(shí)項(xiàng)目的Shader效果。 本書主要以3D美術(shù)人員的視角進(jìn)行效果描述和邏輯講解的,因此非常適合毫無程序編寫經(jīng)驗(yàn)的3D美術(shù)人員作為Unity Shader的入門之選。并且本書同樣也適用于各大培訓(xùn)機(jī)構(gòu)、高等院校作為Unity Shader課程教材使用。 當(dāng)然,從事Unity程序開發(fā)的朋友也可以閱讀本書,從3D 美術(shù)人員的視角開始切入,或許可以幫助你更好的理解Unity Shader,畢竟Shader也是一種視覺效果的設(shè)計(jì)。

作者簡介

  唐福幸資深3D美術(shù)師,從事3D行業(yè)已有六年,先后在多家公司擔(dān)任3D美術(shù)主管、3D技術(shù)美術(shù)師,擅長一切從零開始:開創(chuàng)團(tuán)隊(duì)、制定流程、人員培訓(xùn)、效果把控。樂于鉆研技術(shù),并與人溝通分享。能夠熟練使用Maya、ZBrush、Substance Painter、Substance Designer、Unity、Unreal等30余款3D專業(yè)軟件,目前在有車以后公司擔(dān)任“高級技術(shù)美術(shù)師”。

圖書目錄


目錄



第1章3D數(shù)學(xué)基礎(chǔ)

1.1坐標(biāo)與坐標(biāo)系

1.1.1坐標(biāo)及坐標(biāo)系的概念

1.1.23D中的坐標(biāo)系

1.1.3左右手坐標(biāo)系

1.2向量

1.2.1向量的幾種表示方法

1.2.2向量的計(jì)算方法

1.2.3相反向量

1.2.4向量的模

1.2.5標(biāo)準(zhǔn)化向量

1.3向量運(yùn)算

1.3.1向量的加法運(yùn)算

1.3.2向量的減法運(yùn)算

1.3.3向量的縮放

1.3.4向量的點(diǎn)積運(yùn)算

1.3.5向量的叉積運(yùn)算

1.3.6向量的運(yùn)算法則

1.4矩陣

1.4.1矩陣的表示方法

1.4.2方陣和單位矩陣

1.4.3轉(zhuǎn)置矩陣

1.5矩陣運(yùn)算

1.5.1標(biāo)量與矩陣相乘

1.5.2矩陣之間的乘法

1.5.3矩陣與向量相乘

1.5.4矩陣的運(yùn)算法則

1.6使用矩陣進(jìn)行變換

1.6.1矩陣變換向量的原理

1.6.2旋轉(zhuǎn)矩陣

1.6.3縮放矩陣

1.6.4平移矩陣

1.7矩陣的深入講解

1.7.1矩陣的行列式

1.7.2余子式和代數(shù)余子式

1.7.3通過代數(shù)余子式計(jì)算行列式

1.7.4逆矩陣

1.7.5正交矩陣

1.7.6逆矩陣的運(yùn)算法則





第2章渲染流水線與Shader概念

2.1渲染流水線概念

2.23D圖形渲染完整流水線

2.3空間變換

2.3.1模型空間與世界空間

2.3.2攝像機(jī)空間

2.3.3裁切空間

2.3.4屏幕空間

2.3.5多個坐標(biāo)空間存在的意義

2.4現(xiàn)代GPU渲染流水線

2.5Shader概念

2.5.1什么是Shader

2.5.2Shader和材質(zhì)的關(guān)系與區(qū)別

第3章ShaderLab語法基礎(chǔ)

3.1Shader的組織結(jié)構(gòu)

3.2Shader的名稱

3.3Properties

3.3.1數(shù)值類屬性

3.3.2顏色和向量類屬性

3.3.3紋理貼圖類屬性

3.3.4所有類型屬性匯總

3.4SubShader

3.4.1SubShader的標(biāo)簽

3.4.2Pass的渲染狀態(tài)

3.5Fallback

第4章頂點(diǎn)片段著色器基礎(chǔ)

4.1Shader編碼工具

4.2創(chuàng)建和使用Shader

4.3Shader的編寫方式

4.4CG語法基礎(chǔ)

4.4.1編譯指令

4.4.2著色器函數(shù)

4.4.3語義

4.4.4在CG中調(diào)用屬性變量

4.4.5結(jié)構(gòu)體

第5章Unity的包含文件

5.1包含文件的使用語法

5.2UnityCG.cginc

5.2.1頂點(diǎn)著色器輸入結(jié)構(gòu)體

5.2.2頂點(diǎn)變換函數(shù)

5.2.3向量變換函數(shù)

5.2.4燈光輔助函數(shù)

5.2.5視角向量函數(shù)

5.2.6其他輔助函數(shù)和宏

5.3UnityShaderVariables.cginc

5.3.1空間變換矩陣

5.3.2時間變量

5.4其他包含文件

5.5使用包含文件簡化Shader

第6章Shader中的光照模型

6.1Lambert光照模型

6.1.1Lambert光照模型理論

6.1.2在Shader中獲取燈光變量

6.1.3基于Lambert光照模型的Shader

6.2CG標(biāo)準(zhǔn)庫函數(shù)

6.3HalfLambert光照模型

6.4Phong光照模型

6.4.1Phong光照模型理論

6.4.2在Shader中獲取環(huán)境光變量

6.4.3基于Phong光照模型的Shader

6.5逐像素光照

6.6BlinnPhong光照模型

6.6.1BlinnPhong光照模型理論

6.6.2BlinnPhong光照模型的Shader

6.7燈光陰影

6.7.1渲染路徑

6.7.2Pass標(biāo)簽

6.7.3內(nèi)置的multi_compile

6.7.4實(shí)現(xiàn)陰影效果

第7章透明效果

7.1不透明物體的渲染順序

7.2透明物體的渲染順序

7.3混合透明效果

7.3.1混合指令

7.3.2混合系數(shù)

7.3.3混合操作

7.3.4混合透明的使用方法

7.3.5混合透明效果

7.3.6半透明物體的雙面渲染

7.4透明測試效果

7.4.1透明測試的使用方法

7.4.2透明測試效果

7.4.3透明測試抗鋸齒

7.5模板測試

7.5.1模板測試的計(jì)算流程

7.5.2模板測試的使用語法

7.5.3比較方法

7.5.4模板操作

7.5.5延遲渲染路徑中的模板測試

7.5.6模板測試透明效果

第8章表面著色器的基礎(chǔ)概念

8.1為什么不先學(xué)習(xí)表面著色器

8.2表面著色器的組織結(jié)構(gòu)

8.3編譯指令中的可選參數(shù)

8.3.1透明效果相關(guān)指令

8.3.2陰影和細(xì)分相關(guān)指令

8.3.3代碼生成選項(xiàng)

8.3.4其他選項(xiàng)

8.4表面函數(shù)的語法結(jié)構(gòu)

8.4.1表面函數(shù)輸入結(jié)構(gòu)體

8.4.2表面函數(shù)輸出結(jié)構(gòu)體

第9章編寫表面著色器

9.1最簡單的表面著色器

9.2在表面著色器中使用法線貼圖

9.3表面著色器中的其他函數(shù)

9.3.1頂點(diǎn)修改函數(shù)

9.3.2自定義光照函數(shù)

9.3.3最終顏色修改函數(shù)

9.4曲面細(xì)分函數(shù)

9.4.1固定數(shù)量的曲面細(xì)分

9.4.2基于邊長的曲面細(xì)分

9.4.3視錐剔除曲面細(xì)分

9.4.4基于距離的曲面細(xì)分

9.4.5Phong曲面細(xì)分

9.5透明效果

9.5.1混合透明效果

9.5.2透明測試效果

第10章Image Effect

10.1GrabPass

10.1.1語法結(jié)構(gòu)

10.1.2GrabPass Shader

10.1.3測試效果

10.2C#基礎(chǔ)語法

10.2.1C#腳本的基本結(jié)構(gòu)

10.2.2Properties

10.2.3C#中的常用函數(shù)

10.2.4基于Shader資源創(chuàng)建材質(zhì)

10.2.5通過腳本往Material中傳遞變量

10.2.6C#中的數(shù)學(xué)函數(shù)

10.2.7其他功能

10.3PostProcessing

10.3.1后期處理的工作流程

10.3.2后期處理Shader

10.3.3后期處理腳本

10.4后期處理堆棧

10.4.1安裝Post Processing包

10.4.2設(shè)置Layer和Volume

10.4.3編寫Shader

10.4.4編寫C#腳本

第11章自定義材質(zhì)面板

11.1不同類型的DrawerClass

11.1.1Toggle

11.1.2Enum

11.1.3KeywordEnum

11.1.4在編譯指令中定義關(guān)鍵詞

11.1.5PowerSlider

11.1.6IntRange

11.2屬性的特性和Drawer

11.3裝飾性PropertyDrawer

11.3.1SpaceDecorator

11.3.2HeaderDecorator

11.4完整PropertyDrawer示例

第12章Amplify Shader Editor

12.1相同功能的其他插件

12.1.1Shader Forge

12.1.2Shader Graph

12.2ASE的使用流程

12.3Shader屬性設(shè)置

12.3.1General

12.3.2Blend Mode

12.3.3Stencil Buffer

12.3.4Tessellation

12.3.5Output

12.4常用節(jié)點(diǎn)

12.4.1常數(shù)和屬性類節(jié)點(diǎn)

12.4.2紋理和坐標(biāo)類節(jié)點(diǎn)

12.4.3數(shù)學(xué)運(yùn)算類節(jié)點(diǎn)

12.4.4向量運(yùn)算相關(guān)節(jié)點(diǎn)

12.4.5圖像處理相關(guān)節(jié)點(diǎn)

12.4.6攝像機(jī)和屏幕相關(guān)節(jié)點(diǎn)

12.4.7頂點(diǎn)數(shù)據(jù)類節(jié)點(diǎn)

12.4.8表面數(shù)據(jù)類節(jié)點(diǎn)

12.4.9時間節(jié)點(diǎn)

12.5使用ASE創(chuàng)建標(biāo)準(zhǔn)Shader

12.5.1Albedo

12.5.2Normal

12.5.3Emission

12.5.4Specular

12.5.5Ambient Occlusion

12.5.6Texture Coordinate

12.5.7屬性排序及最終效果

第13章初級案例

13.1流光效果

13.1.1實(shí)現(xiàn)邏輯

13.1.2使用ASE實(shí)現(xiàn)效果

13.1.3測試Shader效果

13.1.4編寫Shader

13.1.5使用擴(kuò)展

13.2描邊效果

13.2.1實(shí)現(xiàn)邏輯

13.2.2編寫Shader

13.2.3效果測試

13.3遮擋半透效果

13.3.1實(shí)現(xiàn)邏輯

13.3.2編寫Shader

13.3.3效果測試

13.4TriPlanar Mapping效果

13.4.1實(shí)現(xiàn)邏輯

13.4.2使用ASE實(shí)現(xiàn)效果

13.4.3編寫Shader

13.4.4測試Shader效果

13.5MatCap效果

13.5.1實(shí)現(xiàn)邏輯

13.5.2使用ASE實(shí)現(xiàn)效果

13.5.3編寫Shader

13.5.4測試Shader效果

13.6物體切割效果

13.6.1實(shí)現(xiàn)邏輯

13.6.2使用ASE實(shí)現(xiàn)效果

13.6.3C#腳本

13.6.4測試效果

13.6.5編寫Shader

第14章進(jìn)階案例

14.1消融效果

14.1.1實(shí)現(xiàn)邏輯

14.1.2資源準(zhǔn)備

14.1.3使用ASE實(shí)現(xiàn)效果

14.1.4使用擴(kuò)展

14.1.5編寫Shader

14.2動態(tài)液體效果

14.2.1實(shí)現(xiàn)邏輯

14.2.2模型準(zhǔn)備

14.2.3使用ASE實(shí)現(xiàn)效果

14.2.4測試Shader

14.2.5編寫Shader

14.3Billboard效果

14.3.1實(shí)現(xiàn)邏輯

14.3.2使用ASE實(shí)現(xiàn)雪花效果

14.3.3測試Shader

14.3.4編寫Shader

14.4序列幀動畫

14.4.1實(shí)現(xiàn)邏輯

14.4.2使用ASE實(shí)現(xiàn)效果

14.4.3測試Shader

14.4.4編寫Shader

14.5卡通風(fēng)格效果

14.5.1資源準(zhǔn)備

14.5.2使用ASE實(shí)現(xiàn)效果

14.5.3編寫Shader

14.6夜視儀后期處理

14.6.1Shader講解

14.6.2完整Shader代碼

14.6.3C#腳本講解

14.6.4完整腳本代碼

14.6.5測試最終效果

14.6.6使用ASE編輯后期處理Shader

寫在最后

參考文獻(xiàn)

本目錄推薦

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