內(nèi)容介紹
《Unity Shader入門精要》不僅要教會讀者如何使用Unity Shader,更重要的是要幫助讀者學(xué)習(xí)Unity中的一些渲染機制以及如何使用Unity Shader實現(xiàn)各種自定義的渲染效果,希望這本書可以為讀者打開一扇新的大門,讓讀者離制作心目中杰出游戲的心愿更近一步。本《Unity Shader入門精要》主要內(nèi)容為:第1章講解了學(xué)習(xí)Unity Shader應(yīng)該從哪里著手;第2章講解了現(xiàn)代GPU是如何實現(xiàn)整個渲染流水線的,這對理解Shader的工作原理有著非常重要的作用;第3章講解Unity Shader的實現(xiàn)原理和基本語法;第4章學(xué)習(xí)Shader所需的數(shù)學(xué)知識,幫助讀者克服學(xué)習(xí)Unity Shader時遇到的數(shù)學(xué)障礙;第5章通過實現(xiàn)一個簡單的頂點/片元著色器案例,講解常用的輔助技巧等;第6章學(xué)習(xí)如何在Shader中實現(xiàn)基本的光照模型;第7章講述了如何在Unity Shader中使用法線紋理、遮罩紋理等基礎(chǔ)紋理;第8章學(xué)習(xí)如何實現(xiàn)透明度測試和透明度混合等透明效果;第9章講解復(fù)雜的光照實現(xiàn);第10章講解在Unity Shader中使用立方體紋理、渲染紋理和程序紋理等高級紋理;第11章學(xué)習(xí)用Shader實現(xiàn)紋理動畫、頂點動畫等動態(tài)效果;第12章講解了屏幕后處理效果的屏幕特效;第13章使用深度紋理和法線紋理實現(xiàn)更多屏幕特效;第14章講解非真實感渲染的算法,如卡通渲染、素描風(fēng)格的渲染等;第15章講解噪聲在游戲渲染中的應(yīng)用;第16章介紹了常見的優(yōu)化技巧;第17章介紹用表面著色器實現(xiàn)渲染;第18章講解基于物理渲染的技術(shù);第19章講解在升級Unity 5時可能出現(xiàn)的問題,并給出解決方法;第20章介紹許多非常有價值的學(xué)習(xí)資料,以幫助讀者進行更深入的學(xué)習(xí)。
本書適合Unity初學(xué)者、游戲開發(fā)者、程序員,也可以作為大專院校相關(guān)專業(yè)師生的學(xué)習(xí)用書,以及培訓(xùn)學(xué)校的培訓(xùn)教材。
章節(jié)目錄
第1篇 基礎(chǔ)篇 第1章 歡迎來到Shader的世界 2 1.1 程序員的三大浪漫 2 1.2 本書結(jié)構(gòu) 3 第2章 渲染流水線 5 2.1 綜述 5 2.1.1 什么是流水線 5 2.1.2 什么是渲染流水線 6 2.2 CPU和GPU之間的通信 7 2.2.1 把數(shù)據(jù)加載到顯存中 7 2.2.2 設(shè)置渲染狀態(tài) 8 2.2.3 調(diào)用Draw Call 8 2.3 GPU流水線 9 2.3.1 概述 9 2.3.2 頂點著色器 10 2.3.3 裁剪 11 2.3.4 屏幕映射 11 2.3.5 三角形設(shè)置 12 2.3.6 三角形遍歷 13 2.3.7 片元著色器 13 2.3.8 逐片元操作 14 2.3.9 總結(jié) 17 2.4 一些容易困惑的地方 18 2.4.1 什么是OpenGL/DirectX 18 2.4.2 什么是HLSL、GLSL、CG 19 2.4.3 什么是Draw Call 20 2.4.4 什么是固定管線渲染 22 2.5 那么,你明白什么是Shader了嗎 23 2.6 擴展閱讀 23 第3章 Unity Shader基礎(chǔ) 24 3.1 Unity Shader概述 25 3.1.1 一對好兄弟:材質(zhì)和Unity Shader 25 3.1.2 Unity中的材質(zhì) 26 3.1.3 Unity中的Shader 26 3.2 Unity Shader的基礎(chǔ):ShaderLab 28 3.3 Unity Shader的結(jié)構(gòu) 29 3.3.1 給我們的Shader起個名字 29 3.3.2 材質(zhì)和Unity Shader的橋梁:Properties 29 3.3.3 重量級成員:SubShader 31 3.3.4 留一條后路:Fallback 33 3.3.5 ShaderLab還有其他的 語義嗎 33 3.4 Unity Shader的形式 33 3.4.1 Unity的寵兒:表面著色器 34 3.4.2 最聰明的孩子:頂點/片元著 色器 35 3.4.3 被拋棄的角落:固定函數(shù)著 色器 35 3.4.4 選擇哪種Unity Shader形式 36 3.5 本書使用的Unity Shader形式 36 3.6 答疑解惑 36 3.6.1 Unity Shader != 真正的Shader 36 3.6.2 Unity Shader和CG/HLSL之間的關(guān)系 37 3.6.3 我可以使用GLSL來寫嗎 38 3.7 擴展閱讀 38 第4章 學(xué)習(xí)Shader所需的數(shù)學(xué)基礎(chǔ) 39 4.1 背景:農(nóng)場游戲 39 4.2 笛卡兒坐標(biāo)系 40 4.2.1 二維笛卡兒坐標(biāo)系 40 4.2.2 三維笛卡兒坐標(biāo)系 41 4.2.3 左手坐標(biāo)系和右手坐標(biāo)系 42 4.2.4 Unity使用的坐標(biāo)系 44 4.2.5 練習(xí)題 45 4.3 點和矢量 45 4.3.1 點和矢量的區(qū)別 46 4.3.2 矢量運算 47 4.3.3 練習(xí)題 53 4.4 矩陣 54 4.4.1 矩陣的定義 54 4.4.2 和矢量聯(lián)系起來 55 4.4.3 矩陣運算 55 4.4.4 特殊的矩陣 57 4.4.5 行矩陣還是列矩陣 60 4.4.6 練習(xí)題 61 4.5 矩陣的幾何意義:變換 62 4.5.1 什么是變換 62 4.5.2 齊次坐標(biāo) 63 4.5.3 分解基礎(chǔ)變換矩陣 63 4.5.4 平移矩陣 64 4.5.5 縮放矩陣 64 4.5.6 旋轉(zhuǎn)矩陣 65 4.5.7 復(fù)合變換 66 4.6 坐標(biāo)空間 67 4.6.1 為什么要使用這么多不同的坐標(biāo)空間 68 4.6.2 坐標(biāo)空間的變換 68 4.6.3 頂點的坐標(biāo)空間變換過程 72 4.6.4 模型空間 73 4.6.5 世界空間 73 4.6.6 觀察空間 75 4.6.7 裁剪空間 77 4.6.8 屏幕空間 83 4.6.9 總結(jié) 85 4.7 法線變換 86 4.8 Unity Shader的內(nèi)置變量(數(shù)學(xué)篇) 87 4.8.1 變換矩陣 87 4.8.2 攝像機和屏幕參數(shù) 88 4.9 答疑解惑 89 4.9.1 使用3×3還是4×4的 變換矩陣 89 4.9.2 CG中的矢量和矩陣類型 89 4.9.3 Unity中的屏幕坐標(biāo):ComputeScreenPos/VPOS/ WPOS 90 4.10 擴展閱讀 93 4.11 練習(xí)題答案 93 第2篇 初級篇 第5章 開始Unity Shader學(xué)習(xí)之旅 100 5.1 本書使用的軟件和環(huán)境 100 5.2 一個最簡單的頂點/片元著色器 100 5.2.1 頂點/片元著色器的基本 結(jié)構(gòu) 101 5.2.2 模型數(shù)據(jù)從哪里來 103 5.2.3 頂點著色器和片元著色器之間如何通信 104 5.2.4 如何使用屬性 105 5.3 強大的援手:Unity提供的內(nèi)置文件和變量 107 5.3.1 內(nèi)置的包含文件 107 5.3.2 內(nèi)置的變量 109 5.4 Unity提供的CG/HLSL語義 109 5.4.1 什么是語義 109 5.4.2 Unity支持的語義 110 5.4.3 如何定義復(fù)雜的變量類型 110 5.5 程序員的煩惱:Debug 111 5.5.1 使用假彩色圖像 111 5.5.2 利用神器:Visual Studio 113 5.5.3 最新利器:幀調(diào)試器 113 5.6 小心:渲染平臺的差異 115 5.6.1 渲染紋理的坐標(biāo)差異 115 5.6.2 Shader的語法差異 116 5.6.3 Shader的語義差異 117 5.6.4 其他平臺差異 117 5.7 Shader整潔之道 117 5.7.1 float、half還是fixed 117 5.7.2 規(guī)范語法 118 5.7.3 避免不必要的計算 118 5.7.4 慎用分支和循環(huán)語句 119 5.7.5 不要除以0 119 5.8 擴展閱讀 120 第6章 Unity中的基礎(chǔ)光照 121 6.1 我們是如何看到這個世界的 121 6.1.1 光源 121 6.1.2 吸收和散射 122 6.1.3 著色 122 6.1.4 BRDF光照模型 123 6.2 標(biāo)準(zhǔn)光照模型 123 6.2.1 環(huán)境光 123 6.2.2 自發(fā)光 124 6.2.3 漫反射 124 6.2.4 高光反射 124 6.2.5 逐像素還是逐頂點 125 6.2.6 總結(jié) 125 6.3 Unity中的環(huán)境光和自發(fā)光 126 6.4 在Unity Shader中實現(xiàn)漫反射光照 模型 126 6.4.1 實踐:逐頂點光照 126 6.4.2 實踐:逐像素光照 129 6.4.3 半蘭伯特模型 130 6.5 在Unity Shader中實現(xiàn)高光反射 光照模型 131 6.5.1 實踐:逐頂點光照 132 6.5.2 實踐:逐像素光照 134 6.5.3 Blinn-Phong光照模型 135 6.6 召喚神龍:使用Unity內(nèi)置的 函數(shù) 136 第7章 基礎(chǔ)紋理 139 7.1 單張紋理 140 7.1.1 實踐 140 7.1.2 紋理的屬性 142 7.2 凹凸映射 146 7.2.1 高度紋理 146 7.2.2 法線紋理 146 7.2.3 實踐 148 7.2.4 Unity中的法線紋理類型 154 7.3 漸變紋理 155 7.4 遮罩紋理 158 7.4.1 實踐 159 7.4.2 其他遮罩紋理 161 第8章 透明效果 162 8.1 為什么渲染順序很重要 163 8.2 Unity Shader的渲染順序 164 8.3 透明度測試 165 8.4 透明度混合 169 8.5 開啟深度寫入的半透明效果 171 8.6 ShaderLab的混合命令 173 8.6.1 混合等式和參數(shù) 173 8.6.2 混合操作 174 8.6.3 常見的混合類型 175 8.7 雙面渲染的透明效果 176 8.7.1 透明度測試的雙面渲染 176 8.7.2 透明度混合的雙面渲染 176 第3篇 中級篇 第9章 更復(fù)雜的光照 180 9.1 Unity的渲染路徑 180 9.1.1 前向渲染路徑 182 9.1.2 頂點照明渲染路徑 185 9.1.3 延遲渲染路徑 186 9.1.4 選擇哪種渲染路徑 188 9.2 Unity的光源類型 188 9.2.1 光源類型有什么影響 189 9.2.2 在前向渲染中處理不同的 光源類型 190 9.3 Unity的光照衰減 195 9.3.1 用于光照衰減的紋理 196 9.3.2 使用數(shù)學(xué)公式計算衰減 196 9.4 Unity的陰影 196 9.4.1 陰影是如何實現(xiàn)的 197 9.4.2 不透明物體的陰影 198 9.4.3 使用幀調(diào)試器查看陰影繪制過程 202 9.4.4 統(tǒng)一管理光照衰減和陰影 204 9.4.5 透明度物體的陰影 206 9.5 本書使用的標(biāo)準(zhǔn)Unity Shader 209 第10章 高級紋理 210 10.1 立方體紋理 210 10.1.1 天空盒子 210 10.1.2 創(chuàng)建用于環(huán)境映射的立方體 紋理 212 10.1.3 反射 213 10.1.4 折射 215 10.1.5 菲涅耳反射 217 10.2 渲染紋理 219 10.2.1 鏡子效果 219 10.2.2 玻璃效果 220 10.2.3 渲染紋理 vs. GrabPass 224 10.3 程序紋理 225 10.3.1 在Unity中實現(xiàn)簡單的程序 紋理 225 10.3.2 Unity的程序材質(zhì) 228 第11章 讓畫面動起來 230 11.1 Unity Shader中的內(nèi)置變量 (時間篇) 230 11.2 紋理動畫 230 11.2.1 序列幀動畫 230 11.2.2 滾動的背景 233 11.3 頂點動畫 234 11.3.1 流動的河流 234 11.3.2 廣告牌 236 11.3.3 注意事項 239 第4篇 高級篇 第12章 屏幕后處理效果 244 12.1 建立一個基本的屏幕后處理腳本 系統(tǒng) 244 12.2 調(diào)整屏幕的亮度、飽和度和 對比度 246 12.3 邊緣檢測 249 12.3.1 什么是卷積 249 12.3.2 常見的邊緣檢測算子 249 12.3.3 實現(xiàn) 250 12.4 高斯模糊 253 12.4.1 高斯濾波 253 12.4.2 實現(xiàn) 254 12.5 Bloom效果 259 12.6 運動模糊 263 12.7 擴展閱讀 266 第13章 使用深度和法線紋理 267 13.1 獲取深度和法線紋理 267 13.1.1 背后的原理 267 13.1.2 如何獲取 269 13.1.3 查看深度和法線紋理 271 13.2 再談運動模糊 272 13.3 全局霧效 276 13.3.1 重建世界坐標(biāo) 276 13.3.2 霧的計算 278 13.3.3 實現(xiàn) 278 13.4 再談邊緣檢測 283 13.5 擴展閱讀 287 第14章 非真實感渲染 288 14.1 卡通風(fēng)格的渲染 288 14.1.1 渲染輪廓線 288 14.1.2 添加高光 289 14.1.3 實現(xiàn) 290 14.2 素描風(fēng)格的渲染 293 14.3 擴展閱讀 296 14.4 參考文獻 297 第15章 使用噪聲 298 15.1 消融效果 298 15.2 水波效果 302 15.3 再談全局霧效 305 15.4 擴展閱讀 309 15.5 參考文獻 309 第16章 Unity中的渲染優(yōu)化技術(shù) 310 16.1 移動平臺的特點 310 16.2 影響性能的因素 311 16.3 Unity中的渲染分析工具 312 16.3.1 認(rèn)識Unity 5的渲染統(tǒng)計 窗口 312 16.3.2 性能分析器的渲染區(qū)域 313 16.3.3 再談幀調(diào)試器 313 16.3.4 其他性能分析工具 314 16.4 減少draw call數(shù)目 314 16.4.1 動態(tài)批處理 315 16.4.2 靜態(tài)批處理 316 16.4.3 共享材質(zhì) 318 16.4.4 批處理的注意事項 318 16.5 減少需要處理的頂點數(shù)目 319 16.5.1 優(yōu)化幾何體 319 16.5.2 模型的LOD技術(shù) 319 16.5.3 遮擋剔除技術(shù) 320 16.6 減少需要處理的片元數(shù)目 320 16.6.1 控制繪制順序 320 16.6.2 時刻警惕透明物體 321 16.6.3 減少實時光照和陰影 321 16.7 節(jié)省帶寬 322 16.7.1 減少紋理大小 322 16.7.2 利用分辨率縮放 323 16.8 減少計算復(fù)雜度 323 16.8.1 Shader的LOD技術(shù) 323 16.8.2 代碼方面的優(yōu)化 323 16.8.3 根據(jù)硬件條件進行縮放 324 16.9 擴展閱讀 324 第5篇 擴展篇 第17章 Unity的表面著色器探秘 328 17.1 表面著色器的一個例子 328 17.2 編譯指令 330 17.2.1 表面函數(shù) 330 17.2.2 光照函數(shù) 330 17.2.3 其他可選參數(shù) 331 17.3 兩個結(jié)構(gòu)體 332 17.3.1 數(shù)據(jù)來源:Input結(jié)構(gòu)體 332 17.3.2 表面屬性:SurfaceOutput 結(jié)構(gòu)體 333 17.4 Unity背后做了什么 334 17.5 表面著色器實例分析 336 17.6 Surface Shader的缺點 341 第18章 基于物理的渲染 342 18.1 PBS的理論和數(shù)學(xué)基礎(chǔ) 342 18.1.1 光是什么 343 18.1.2 雙向反射分布函數(shù) (BRDF) 344 18.1.3 漫反射項 345 18.1.4 高光反射項 346 18.1.5 Unity中的PBS實現(xiàn) 347 18.2 Unity 5的Standard Shader 348 18.2.1 它們是如何實現(xiàn)的 348 18.2.2 如何使用Standard Shader 349 18.3 一個更加復(fù)雜的例子 352 18.3.1 設(shè)置光照環(huán)境 352 18.3.2 放置反射探針 355 18.3.3 調(diào)整材質(zhì) 356 18.3.4 線性空間 356 18.4 答疑解惑 357 18.4.1 什么是全局光照 357 18.4.2 什么是伽馬校正 358 18.4.3 什么是HDR 361 18.4.4 那么,PBS適合什么樣的 游戲 362 18.5 擴展閱讀 363 18.6 參考文獻 363 第19章 Unity 5更新了什么 365 19.1 場景“更亮了” 365 19.2 表面著色器更容易“報錯了” 365 19.3 當(dāng)家做主:自己控制非統(tǒng)一縮放的 網(wǎng)格 366 19.4 固定管線著色器逐漸退出舞臺 366 第20章 還有更多內(nèi)容嗎 368 20.1 如果你想深入了解渲染的話 368 20.2 世界那么大 369 20.3 參考文獻 369
使用說明
1、下載并解壓,得出pdf文件2、如果打不開本文件,請務(wù)必下載pdf閱讀器
3、安裝后,在打開解壓得出的pdf文件
4、雙擊進行閱讀試讀
- 下載地址
發(fā)表評論
1人參與,1條評論- 第1樓北京市聯(lián)通網(wǎng)友發(fā)表于: 2022-09-28 17:27:09
- 好評!0蓋樓(回復(fù))
軟件排行榜
熱門推薦
- 南方Plus電腦版 v11.8.027.22M / 簡體中文
- 有柿電腦版 v11.5.684.06M / 簡體中文
- 網(wǎng)易新聞電腦版 v112.697.63M / 簡體中文
- 吉利博瑞用戶手冊 pdf高清版57.89M / 簡體中文
- 京東讀書電腦版 v1.13.4官方版1.98M / 簡體中文
- cnki全球?qū)W術(shù)快報電腦版 v0.2.3495.79M / 簡體中文
- 未公開的Oracle數(shù)據(jù)庫秘密 迪貝斯pdf掃描版34.69M / 簡體中文
- PHP語言精粹電子書 pdf掃描版25.72M / 簡體中文
- linux常用命令大全 chm版1.48M / 簡體中文
- docker入門實戰(zhàn) pdf完整版1.38M / 簡體中文