Unity Universal RP : 內置 Shader 解析

唐福幸

  • 出版商: 清華大學
  • 出版日期: 2021-10-01
  • 定價: $294
  • 售價: 8.5$250
  • 語言: 簡體中文
  • 頁數: 120
  • 裝訂: 平裝
  • ISBN: 7302590370
  • ISBN-13: 9787302590378
  • 相關分類: 遊戲引擎 Game-engine
  • 已絕版

  • Unity Universal RP : 內置 Shader 解析-preview-1
  • Unity Universal RP : 內置 Shader 解析-preview-2
  • Unity Universal RP : 內置 Shader 解析-preview-3
Unity Universal RP : 內置 Shader 解析-preview-1

買這商品的人也買了...

商品描述

本書是一部系統講解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的理解。

作者簡介

唐福幸,資深3D美術師,從事3D行業已有六年,先後在多家公司擔任3D美術主管、3D技術美術師,擅長一切從零開始:開創團隊、制定流程、人員培訓、效果把控。能夠熟練使用30餘款3D專業軟件,樂於鑽研技術,並與人溝通分享。

目錄大綱

章初識URP
1.1URP與HDRP
1.2創建URP項目
1.2.1創建新的URP項目
1.2.2升級舊項目為URP項目
1.3URP內置Shader
1.3.1Lit
1.3.2Simple Lit
1.3.3Baked Lit
1.3.4Unlit
1.4手寫Shader的必要性
1.5Shader文件所在路徑
1.6Packages中的其他文件
1.6.1Core RP Librariy
1.6.2Universal RP
1.7常用文件之間的包含關係
第2章Lit.shader
2.1Lit主文件
2.1.1Properties代碼塊
2.1.2SubShader代碼塊
2.1.3FallBack
2.1.4代碼結構
2.2ForwardLit Pass
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初始化函數部分
4.4.3SpaceTransforms.hlsl
4.4.4初始化函數第2部分
4.5頂點函數
4.5.1頂點函數部分
4.5.2頂點函數第2部分
4.5.3頂點函數第3部分
4.5.4頂點函數第4部分
4.6片段函數
4.7函數和宏定義總結
4.8Unlit Shader案例
4.8.1完整Shader代碼
4.8.2代碼解析
第5章其餘四個Pass
5.1ShadowCaster Pass
5.1.1Pass代碼塊
5.1.2ShadowCasterPass.hlsl
5.2DepthOnly Pass
5.2.1Pass代碼塊
5.2.2DepthOnlyPass.hlsl
5.3Meta Pass
5.3.1Pass代碼塊
5.3.2MetaPass.hlsl
5.4Universal2D Pass
5.4.1Pass代碼塊
5.4.2Universal2D.hlsl
第6章Shader Graph
6.1Shader Graph介紹
6.2使用流程
6.3常用節點
6.3.1數據輸入類節點
6.3.2數學計算類節點
6.3.3向量處理類節點
6.3.4視覺調整類節點
第7章車漆Shader案例
7.1設計邏輯
7.2使用Shader Graph梳理邏輯
7.2.1創建屬性變量
7.2.2Albedo部分節點
7.2.3Occlusion部分節點
7.2.4Clear Coat部分節點
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使用Shader Graph梳理邏輯
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文件
後記
參考文獻