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

Unity Universal RP 內置Shader解析

( 簡體 字)
作者:唐福幸類別:1. -> 多媒體 -> 遊戲引擎 -> Unity
譯者:
出版社:清華大學出版社Unity Universal RP 內置Shader解析 3dWoo書號: 55296
詢問書籍請說出此書號!

缺書
NT售價: 245

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

譯者序:

前言:

寫作背景
2020年5月,筆者所在公司啟動了基于Unity引擎開發的3D汽車展示項目,使用戶能夠在手機上通過3D的方式查看市面上的所有汽車。考慮移動設備性能方面的問題,團隊在技術路線上首選了Unity的Universal Render Pipeline(簡稱URP)。
隨著功能開發的逐漸推進,筆者也逐漸發現這樣一個問題: 雖然Unity的可編程渲染流水線已經推出兩年多了,但是其官方文檔仍然沒有補充完整,而僅有的幾個文檔也是點到即止,對于新手來說并不能起到很好的指導作用。雖然互聯網上有很多關于這方面的文章分享,但至今沒有發現系統講解URP的,市面上更是沒有一本關于這方面的書籍。
于是,筆者一邊在網上查閱資料,一邊翻看Shader的源碼,然后在項目應用中不斷測試并驗證自己的假設,這一路走來,實屬不易。想到肯定還有跟我一樣的人正在或將要重走一遍這樣的路,為了給他們提供一些幫助,筆者特地將自己的經驗和成果總結下來,編輯成冊。
雖然本書中仍然存在很多未研究透的知識點,但是讀完本書之后,在Unity 的URP項目中自己編寫Shader已經完全不成問題。
適用群體
本書適合有Unity Shader基礎的讀者作為自學和研究URP的參考書,也適合目前使用傳統渲染流水線做項目,打算往URP轉換的讀者用于技術預研的教程。
如果讀者毫無Unity Shader編寫經驗,建議先閱讀筆者的第一本書《Unity ShaderLab 新手寶典》,這本書可以幫助你快速從“對Unity Shader一無所知”的狀態變成“完全掌握Unity Shader”。
需要提前掌握的技能
作為一本Unity Shader的專業書籍,建議讀者在閱讀本書之前掌握如下技能:
(1) Unity的基本操作,例如添加物體、創建Shader文件、創建材質資源等。
(2) ShaderLab基礎語法,例如定義屬性變量、設置渲染狀態等。
(3) Cg或HLSL基礎語法,例如定義函數、聲明變量等。
(4) 3D數學或空間幾何相關知識,例如理解向量、矩陣、點乘運算等。
本書應該如何閱讀
本書是按照筆者研究源碼的思路進行編寫的,引導讀者從一個內置的Shader(Lit shader)開始逐步了解URP項目中完整的Shader框架,所以強烈建議讀者在閱讀本書的時候能夠坐在計算機前,啟動Unity,按照書中的引導打開并閱讀源碼。
Unity為了實現模塊化將Shader框架按照不同功能拆分成不同的文件,然后以包含文件的形式進行整合,因此在閱讀源代碼的過程中需要來回翻閱多個不同的文件,所以建議讀者一次性閱讀較多的篇幅,切勿在中間章節停下,否則前面講解的內容很可能會遺忘。
某些Shader文件的代碼量非常大,讀者在閱讀后面的代碼時很容易就會忘記前面的代碼,因此建議讀者在閱讀源代碼的過程中養成添加注釋的習慣。
特別鳴謝
在此非常感謝廣大Unity愛好者能夠積極分享自己對于Unity最新技術的理解,你們作為技術的“先行者”,為后面的“追趕者”提供了豐富的知識儲備,如果沒有你們的貢獻,Unity技術的學習之路將會變得更加坎坷。
此外,我還要感謝我目前就職的公司——廣州市有車以后信息科技有限公司,這是一家愉快、包容且充滿激情的公司。感謝公司給我提供機會,使我能夠從事自己喜歡的工作,并全身心投入技術研究當中。正是我所從事的工作,激發了這本書的寫作靈感。
本書能夠順利出版,還要感謝清華大學出版社,在該出版社相關編輯的幫助下,本書才能得以順利面世。
最后,本書是筆者在一邊探索一邊應用的狀態下編寫而成的,倘若有疏漏和不足之處,懇請讀者批評指正。

2021年8月
內容簡介:

本書是一部系統講解Unity Universal Render Pipeline內置shader的應用型圖書,旨在使讀者能夠了解URP與傳統渲染流水線shader的不同之處,讓讀者盡快在URP項目中編寫出項目所需的shader。
本書主要分為三大部分:
第一部分包含第1至2章,主要為了給讀者普及Universal RP的基本知識、項目的配置方法、內置shader的不同用途以及Package中不同包含文件的作用,使之前沒有接觸過URP的讀者在學習之前能夠全方面的了解UPR。
第二部分包含第3至5章、第7章,主要講解了URP中最復雜的內置shader——Lit,以及shader中用到的包含文件、函數和宏定義。
第三部分包含第6章和第8章,第6章編寫并講解了Unlit類型的shader,第8章編寫并講解了PBR類型的Car Paint shader,用于鞏固前面章節所學到的內容,并加深對于URP shader的理解。
目錄:

第1章初識URP
1.1URP與HDRP
1.2創建URP項目
1.2.1創建新的URP項目
1.2.2升級舊項目為URP項目
1.3URP內置Shader
1.3.1Lit
1.3.2SimpleLit
1.3.3BakedLit
1.3.4Unlit
1.4手寫Shader的必要性
1.5Shader文件所在路徑
1.6Packages中的其他文件
1.6.1CoreRPLibrariy
1.6.2UniversalRP
1.7常用文件之間的包含關系
第2章Lit.shader
2.1Lit主文件
2.1.1Properties代碼塊
2.1.2SubShader代碼塊
2.1.3FallBack
2.1.4代碼結構
2.2ForwardLitPass
2.2.1Pass標簽
2.2.2編譯指令
2.2.3聲明關鍵詞
2.2.4包含指令
2.3包含文件的定義及使用
2.3.1包含文件的定義方式
2.3.2包含文件的使用方式



第3章LitInput.hlsl
3.1聲明屬性變量
3.2紋理采樣
3.2.1采樣函數的宏定義
3.2.2金屬和高光采樣函數
3.2.3AO采樣函數
3.3SurfaceInput.hlsl
3.3.1SurfaceData結構體
3.3.2透明度函數
3.3.3Albedo紋理采樣函數
3.3.4法線貼圖采樣函數
3.3.5自發光貼圖采樣函數
3.4表面數據初始化函數
3.5函數和宏定義總結
第4章LitForwardPass.hlsl
4.1GPU實例
4.2結構體
4.2.1頂點函數輸入結構體
4.2.2頂點函數輸出結構體
4.3Common.hlsl
4.3.1規范
4.3.2函數
4.4輸入數據初始化函數
4.4.1Input.hlsl
4.4.2初始化函數第1部分
4.4.3SpaceTransforms.hlsl
4.4.4初始化函數第2部分
4.5頂點函數
4.5.1頂點函數第1部分
4.5.2頂點函數第2部分
4.5.3頂點函數第3部分
4.5.4頂點函數第4部分
4.6片段函數
4.7函數和宏定義總結
4.8UnlitShader案例
4.8.1完整Shader代碼
4.8.2代碼解析
第5章其余四個Pass
5.1ShadowCasterPass
5.1.1Pass代碼塊
5.1.2ShadowCasterPass.hlsl
5.2DepthOnlyPass
5.2.1Pass代碼塊
5.2.2DepthOnlyPass.hlsl
5.3MetaPass
5.3.1Pass代碼塊
5.3.2MetaPass.hlsl
5.4Universal2DPass
5.4.1Pass代碼塊
5.4.2Universal2D.hlsl
第6章ShaderGraph
6.1ShaderGraph介紹
6.2使用流程
6.3常用節點
6.3.1數據輸入類節點
6.3.2數學計算類節點
6.3.3向量處理類節點
6.3.4視覺調整類節點
第7章車漆Shader案例
7.1設計邏輯
7.2使用ShaderGraph梳理邏輯
7.2.1創建屬性變量
7.2.2Albedo部分節點
7.2.3Occlusion部分節點
7.2.4ClearCoat部分節點
7.2.5Flake部分節點
7.2.6Specular和Smoothness部分節點
7.2.7完整節點連接
7.3測試Shader效果
7.4編寫車漆Shader代碼
7.4.1CarPaint.shader文件
7.4.2CarPaintInput.hlsl文件
7.4.3CarPaintForwardPass.hlsl文件
第8章流光燈特效Shader案例
8.1效果分析
8.2使用ShaderGraph梳理邏輯
8.2.1開放屬性變量
8.2.2Albedo和Normal部分節點
8.2.3Metallic和Smoothness部分節點
8.2.4燈光部分節點連接
8.2.5完整節點連接
8.3編寫流光燈Shader代碼
8.3.1FlowingLight.shader文件
8.3.2FlowingLightInput.hlsl文件
8.3.3FlowingLightForwardPass.hlsl文件
后記
參考文獻
序: