-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
防疫期間 門市僅限取書, 不開放參觀
並提早到6點打烊, 星期日公休
6/17 新書到! 6/8 新書到! 6/1 新書到! 5/25 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Unity ShaderLab 新手寶典

( 簡體 字)
作者:唐福幸類別:1. -> 多媒體 -> 遊戲引擎 -> Unity
譯者:
出版社:清華大學出版社Unity ShaderLab 新手寶典 3dWoo書號: 54215
詢問書籍請說出此書號!

有庫存
NT定價: 445
折扣價: 418

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

譯者序:

前言:

本書的寫作背景
相信很多人在玩游戲的過程中,在體驗游戲劇情的同時,也會被游戲中精美的畫面所吸引。因此我猜想,肯定會有很多人跟我一樣,有一種想要制作一款畫質精美的游戲的沖動。然而想要實現精美畫質的視覺效果,往往需要編寫多種多樣的Shader。但對于一些毫無編程經驗的人來說,想要入門Unity Shader比較困難。這是因為,一方面國內關于Unity Shader的書少之又少,而目前市面僅有的幾本也是針對Unity 5版本編寫的,并不完全適用于Unity 2019版; 另一方面網上關于Unity Shader的教程,很多都是一上來直接講代碼,很少有真正從基礎開始講解的。于是筆者萌生了一個念頭: 寫一本面向零基礎Unity Shader愛好者的入門指南。
本書的獨特之處
本書采用由易到難、層層深入的講解方法,帶領毫無Shader編程基礎的讀者逐漸掌握這門技術。對于一些理論性的知識和使用方法,本書不會灌入式地硬性講解,而是會從內在邏輯開始講起,從而使讀者徹底理解。

為了方便讀者理解Shader效果實現的內在邏輯,本書插入了大量流程圖、匯總表格等。對于一些專有名詞或者語法關鍵詞,本書在編寫的過程中使用了“中文+英文”的方式,方便讀者理解以及后期查找或者閱讀其他資料。
筆者一直認為,Shader的學習達到一定程度之后,其實就是在學習數學算法。Shader的程序代碼本身并不重要,重要的是里邊的邏輯和算法。很多人總是會好奇“這段代碼為什么能夠實現這樣的效果”,相信這是學習Shader的人最想弄清楚的。而涉及邏輯類的數學思想有時候很難用文字表達出來,所以本人在案例講解部分會借助可視化Shader編輯器“Amplify Shader Editor”來幫助讀者理解其中的內在邏輯。
需要提前掌握的知識
作為一本計算機圖形專業書籍,建議讀者在閱讀本書之前掌握如下知識:
(1) Unity的基本操作,比如導入資源、創建對象、添加組件等。
(2) 平面數學。
(3) 空間幾何基礎。
(4) 三角函數。
(5) 基礎編程知識,比如理解變量、函數、運算操作等。
本書的源文件
為了方便讀者編寫測試,本書會附贈課程所涉及的所有Shader文件以及項目資源,讀者將Package文件導入Unity項目之后,在Assets/ Unity ShaderLab Tutorial路徑下即可看到所有的資源。
特別鳴謝
在這里我要特別感謝我的未婚妻,正是在她的鼓勵下,我才有了編寫本書的動力。記得在正式開始撰寫本書之前,當我一直在為后續的出版事宜發愁時,她告訴我: “先邁出第一步,后面自然會有路。”因此我把出版問題全部拋擲腦后,專心寫完了這本書。同時,本書從編寫到出版的整個過程也讓我深刻認識到: 萬事開頭難,但只要克服恐懼,勇敢地邁出第一步并持之以琚A一切皆會水到渠成。后來,每當我遇到事情猶豫不前的時候,我總會想起這句話: “先邁出第一步,后面自然會有路。”

本書大部分配圖是使用Edraw制作而成的,這款軟件使得我在配圖制作方面節省了大量的時間,因此本人對這款圖例制作軟件表示鄭重的感謝。
本書能夠順利出版,還要感謝清華大學出版社, 在該出版社相關編輯的幫助下,本書得以順利面世。
最后,本書若有疏漏和不足之處,懇請讀者批評指正。
于廣州
2020年7月
內容簡介:

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

第1章3D數學基礎
1.1坐標與坐標系
1.1.1坐標及坐標系的概念
1.1.23D中的坐標系
1.1.3左右手坐標系
1.2向量
1.2.1向量的幾種表示方法
1.2.2向量的計算方法
1.2.3相反向量
1.2.4向量的模
1.2.5標準化向量
1.3向量運算
1.3.1向量的加法運算
1.3.2向量的減法運算
1.3.3向量的縮放
1.3.4向量的點積運算
1.3.5向量的叉積運算
1.3.6向量的運算法則
1.4矩陣
1.4.1矩陣的表示方法
1.4.2方陣和單位矩陣
1.4.3轉置矩陣
1.5矩陣運算
1.5.1標量與矩陣相乘
1.5.2矩陣之間的乘法
1.5.3矩陣與向量相乘
1.5.4矩陣的運算法則
1.6使用矩陣進行變換
1.6.1矩陣變換向量的原理
1.6.2旋轉矩陣
1.6.3縮放矩陣
1.6.4平移矩陣
1.7矩陣的深入講解
1.7.1矩陣的行列式
1.7.2余子式和代數余子式
1.7.3通過代數余子式計算行列式
1.7.4逆矩陣
1.7.5正交矩陣
1.7.6逆矩陣的運算法則


第2章渲染流水線與Shader概念
2.1渲染流水線概念
2.23D圖形渲染完整流水線
2.3空間變換
2.3.1模型空間與世界空間
2.3.2攝像機空間
2.3.3裁切空間
2.3.4屏幕空間
2.3.5多個坐標空間存在的意義
2.4現代GPU渲染流水線
2.5Shader概念
2.5.1什么是Shader
2.5.2Shader和材質的關系與區別
第3章ShaderLab語法基礎
3.1Shader的組織結構
3.2Shader的名稱
3.3Properties
3.3.1數值類屬性
3.3.2顏色和向量類屬性
3.3.3紋理貼圖類屬性
3.3.4所有類型屬性匯總
3.4SubShader
3.4.1SubShader的標簽
3.4.2Pass的渲染狀態
3.5Fallback
第4章頂點Q片段著色器基礎
4.1Shader編碼工具
4.2創建和使用Shader
4.3Shader的編寫方式
4.4CG語法基礎
4.4.1編譯指令
4.4.2著色器函數
4.4.3語義
4.4.4在CG中調用屬性變量
4.4.5結構體
第5章Unity的包含文件
5.1包含文件的使用語法
5.2UnityCG.cginc
5.2.1頂點著色器輸入結構體
5.2.2頂點變換函數
5.2.3向量變換函數
5.2.4燈光輔助函數
5.2.5視角向量函數
5.2.6其他輔助函數和宏
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標準庫函數
6.3HalfQLambert光照模型
6.4Phong光照模型
6.4.1Phong光照模型理論
6.4.2在Shader中獲取環境光變量
6.4.3基于Phong光照模型的Shader
6.5逐像素光照
6.6BlinnQPhong光照模型
6.6.1BlinnQPhong光照模型理論
6.6.2BlinnQPhong光照模型的Shader
6.7燈光陰影
6.7.1渲染路徑
6.7.2Pass標簽
6.7.3內置的multi_compile
6.7.4實現陰影效果
第7章透明效果
7.1不透明物體的渲染順序
7.2透明物體的渲染順序
7.3混合透明效果
7.3.1混合指令
7.3.2混合系數
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模板測試的計算流程
7.5.2模板測試的使用語法
7.5.3比較方法
7.5.4模板操作
7.5.5延遲渲染路徑中的模板測試
7.5.6模板測試透明效果
第8章表面著色器的基礎概念
8.1為什么不先學習表面著色器
8.2表面著色器的組織結構
8.3編譯指令中的可選參數
8.3.1透明效果相關指令
8.3.2陰影和細分相關指令
8.3.3代碼生成選項
8.3.4其他選項
8.4表面函數的語法結構
8.4.1表面函數輸入結構體
8.4.2表面函數輸出結構體
第9章編寫表面著色器
9.1最簡單的表面著色器
9.2在表面著色器中使用法線貼圖
9.3表面著色器中的其他函數
9.3.1頂點修改函數
9.3.2自定義光照函數
9.3.3最終顏色修改函數
9.4曲面細分函數
9.4.1固定數量的曲面細分
9.4.2基于邊長的曲面細分
9.4.3視錐剔除曲面細分
9.4.4基于距離的曲面細分
9.4.5Phong曲面細分
9.5透明效果
9.5.1混合透明效果
9.5.2透明測試效果
第10章ImageEffect
10.1GrabPass
10.1.1語法結構
10.1.2GrabPassShader
10.1.3測試效果
10.2C#基礎語法
10.2.1C#腳本的基本結構
10.2.2Properties
10.2.3C#中的常用函數
10.2.4基于Shader資源創建材質
10.2.5通過腳本往Material中傳遞變量
10.2.6C#中的數學函數
10.2.7其他功能
10.3PostQProcessing
10.3.1后期處理的工作流程
10.3.2后期處理Shader
10.3.3后期處理腳本
10.4后期處理堆棧
10.4.1安裝PostProcessing包
10.4.2設置Layer和Volume
10.4.3編寫Shader
10.4.4編寫C#腳本
第11章自定義材質面板
11.1不同類型的DrawerClass
11.1.1Toggle
11.1.2Enum
11.1.3KeywordEnum
11.1.4在編譯指令中定義關鍵詞
11.1.5PowerSlider
11.1.6IntRange
11.2屬性的特性和Drawer
11.3裝飾性PropertyDrawer
11.3.1SpaceDecorator
11.3.2HeaderDecorator
11.4完整PropertyDrawer示例
第12章AmplifyShaderEditor
12.1相同功能的其他插件
12.1.1ShaderForge
12.1.2ShaderGraph
12.2ASE的使用流程
12.3Shader屬性設置
12.3.1General
12.3.2BlendMode
12.3.3StencilBuffer
12.3.4Tessellation
12.3.5Output
12.4常用節點
12.4.1常數和屬性類節點
12.4.2紋理和坐標類節點
12.4.3數學運算類節點
12.4.4向量運算相關節點
12.4.5圖像處理相關節點
12.4.6攝像機和屏幕相關節點
12.4.7頂點數據類節點
12.4.8表面數據類節點
12.4.9時間節點
12.5使用ASE創建標準Shader
12.5.1Albedo
12.5.2Normal
12.5.3Emission
12.5.4Specular
12.5.5AmbientOcclusion
12.5.6TextureCoordinate
12.5.7屬性排序及最終效果
第13章初級案例
13.1流光效果
13.1.1實現邏輯
13.1.2使用ASE實現效果
13.1.3測試Shader效果
13.1.4編寫Shader
13.1.5使用擴展
13.2描邊效果
13.2.1實現邏輯
13.2.2編寫Shader
13.2.3效果測試
13.3遮擋半透效果
13.3.1實現邏輯
13.3.2編寫Shader
13.3.3效果測試
13.4TriQPlanarMapping效果
13.4.1實現邏輯
13.4.2使用ASE實現效果
13.4.3編寫Shader
13.4.4測試Shader效果
13.5MatCap效果
13.5.1實現邏輯
13.5.2使用ASE實現效果
13.5.3編寫Shader
13.5.4測試Shader效果
13.6物體切割效果
13.6.1實現邏輯
13.6.2使用ASE實現效果
13.6.3C#腳本
13.6.4測試效果
13.6.5編寫Shader
第14章進階案例
14.1消融效果
14.1.1實現邏輯
14.1.2資源準備
14.1.3使用ASE實現效果
14.1.4使用擴展
14.1.5編寫Shader
14.2動態液體效果
14.2.1實現邏輯
14.2.2模型準備
14.2.3使用ASE實現效果
14.2.4測試Shader
14.2.5編寫Shader
14.3Billboard效果
14.3.1實現邏輯
14.3.2使用ASE實現雪花效果
14.3.3測試Shader
14.3.4編寫Shader
14.4序列幀動畫
14.4.1實現邏輯
14.4.2使用ASE實現效果
14.4.3測試Shader
14.4.4編寫Shader
14.5卡通風格效果
14.5.1資源準備
14.5.2使用ASE實現效果
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
寫在最后
參考文獻
序: