Lightweight Render Pipeline


(翻譯)

Lightweight Render Pipeline (LWRP),輕量級渲染管線,是一個Unity預制的Scriptable Render Pipeline (SRP)。LWRP可以為移動平台提供圖形渲染功能,但你也可以在高端主機和PC上使用LWRP。LWRP使用簡化的、基於物理的光照和材質。

LWRP使用single-pass 前向渲染(forward rendering)。使用LWRP,可以在幾個平台上 得到優化了的實時渲染性能。

LWRP支持以下平台:

  • Windows and UWP
  • Mac and iOS
  • Android
  • XBox One
  • PlayStation4
  • Nintendo Switch
  • All current VR platforms

Lightweight Render Pipeline有兩種可用的模板: LWRP和LWRP-VR。LWRP-VR具有預先開啟的VR設置(pre-enabled settings for VR)。兩者的文檔是一樣的。

注意: Built-in和 custom Lit Shaders無法和LWRP一起工作。因為LWRP有一套新的standard shaders。如果你升級(upgrade)當前項目來使用LWRP,你需要升級 built-in shaders到LWRP對應的新的shaders。(LWRP提供了相應的工具)

注意: 使用LWRP的項目無法與 High Definition Render Pipelin及Unity built-in rendering pipeline兼容。因此開發前,你要想清楚用哪一個渲染管線。

Getting started with LWRP

為了使用Lightweight Render Pipeline,你可以新建一個項目或者升級已存在的項目。

一旦你有了一個使用LWRP的項目,你必須創建一個Scriptable Render Pipeline (SRP) Asset (LWRP提供了工具),然后配置項目的Graphics settings。

接下來三個子章節為細節討論:

  • 創建一個新項目來使用LWRP
  • 升級舊項目來使用LWRP
  • 配置LWRP,包括創建SRP Asset,修改Graphics settings。

Using LWRP in a new Project

如果你想在新項目中使用LWRP,你可以用LWRP模板(templates)來創建新項目。

使用用模板創建新項目(適用於Unity 2018.1后的版本):

  1. 打開Unity。在Unity主頁(Home),點擊New來創建一個新項目(new Project)。模板(Template)下拉框中選擇LWRP模板。
  2. 點擊Create Project。Unity會自動為你創建一個帶有全部LWRP功能的新項目。

關於更多關於模板使用的信息,請查閱Project Templates

注意: 創建完項目后,在開始使用LWRP前,你必須配置LWRP,即創建SRP Asset,修改Graphics settings。具體做法,請繼續看本文下面的** Configuring LWRP for use**。

Installing LWRP into an existing Project

如果你是新建項目來使用LWRP,可以直接跳過這一小節,直接看下一小節Configuring LWRP for use

你可以通過Unity的Package Manager System來下載和安裝最新版本的LWRP。

為已存在的項目安裝LWRP:

  1. 在Unity中,打開項目。在頂部的導航條,點擊 Window > Package Manager來打開Package Manager窗口。選擇All標簽頁。這個標簽頁顯示了當前版本的Unity可以使用的包(packages)。
  2. 從packages列表中選擇Lightweight Render Pipeline。在窗口右上角點擊Install。這會直接為你的項目安裝LWRP。

注意: 在開始使用LWRP前,你必須配置LWRP,即創建SRP Asset,修改Graphics settings。具體做法,請繼續看本文下面的** Configuring LWRP for use**。

注意: 把一個已存在的項目切換到LWRP會消耗大量時間和資源。LWRP使用custom lit shaders,是不和built-in Unity lit shaders兼容的。你必須手動修改或轉換大量內容。嫌麻煩的話,可以考慮使用LWRP啟動一個新項目。

Configuring LWRP for use

為了配置和使用LWRP,你必須首先:

  • 創建Lightweight Render Pipeline Asset,然后
  • 添加此Asset到項目的Graphics settings中。

下面有更詳細的步驟。

Creating the Lightweight Render Pipeline Asset

Lightweight Render Pipeline Asset控制着項目的全局rendering和quality settings,並且創建rendering pipeline instance。rendering pipeline instance包含中間資源(intermediate resources)和render pipeline的實現。

創建一個Lightweight Render Pipeline Asset的步驟:

  1. 在Editor中,轉到Project window。
  2. 在Project window中右擊,選擇Create > Rendering > Lightweight Render Pipeline > Pipeline Asset。或者在頂部菜單欄中點擊 Assets > Rendering > Lightweight Render Pipeline > Pipeline Asset
  3. 對於此新創建的Asset,可以使用默認的名字或者輸入一個新名字。現在你已經創建了一個LWRP Asset。

提示: 你可以為不同平台(或不同測試環境)創建多個具有不同配置的LWRP Assets。

Adding the Asset to your Graphics settings

為了使用Lightweight Render Pipeline,你必須把剛剛新創建的LWRP Asset添加到Unity的Graphics settings中。如果不這樣做,Unity會嘗試使用built-in render pipeline。

  1. 在頂部菜單欄點擊: Edit > Project Settings > Graphics
  2. Render Pipeline Settings域中添加你剛創建的LWRP Asset。
    添加完成。

Lightweight Render Pipeline Asset

LWRP Asset為Lightweight Render Pipeline控制着幾個graphical features和quality settings。它是一個scriptable object,繼承自RenderPipelineAsset。當你把LWRP Asset設置到Graphics settings時,Unity會從built-in render pipeline切換到LWRP。你可以直接在LWRP中調試相應的配置,而不用去別的地方了。

你可以擁有多個LWRP assets,並在它們之間進行切換。例如,你可以有一個打開陰影的LWRP Asset和一個關閉陰影的LWRP Asset。然而,你不能在HDRP/SRP和LWRP assets之間進行切換,因為它們之間是互不兼容的。

Shader Stripping

Unity可以從單個Shader源文件中編譯出多個Shader變體(Shader Variants)。Shader Variants的數量取決於你的Shader中包含了多少關鍵字。在默認着色器中,Lightweight Render Pipeline為lighting和shadows使用了一系列關鍵字。LWRP可以根據你在LWRP Asset中激的features,排除一些Shader variants。

當你在LWRP Asset中禁用某些featurers時,pipeline會從構建中(from the build)剝離相關的Shader variants。剝離Shaders使你的build sizes更小,需要更短的build times。如果你的項目不會用到某些features或keywords,Shader Stripping就很有用。

例如,你的某個項目中directional lights可能用不到shadows。沒有Shader stripping的話,帶有directional shadow支持的Shader variants仍然存在於build中。如果你知道你根本用不到shadows,你可以在LWRP Asset中uncheck Cast Shadows。這樣LWRP會把這些Shader Variants從build中剝離。

Built-in/LWRP comparison

這里有一張Feature comparison table,顯示了LWRP和Unity Built-in render pipeline支持的features的對比。

Shading models in Lightweight Render Pipeline

一個shading model定義了材質的顏色是怎么隨着影響因素(如:surface orientation, viewer direction 和 lighting)變化的。你選擇哪個shading model決定於藝術傾向(artistic direction)和程序的性能預算。LWRP提供的Shaders具有以下shading models:

  • Physically Based Shading
  • Simple Shading
  • Baked Lit Shading
  • No lighting

Physically Based Shading

Physically Based Shading (PBS) 基於於物理定律通過計算表面(surface)的反射光問題來模擬物體在真實世界中的樣子。利用它可以生成逼真的物體(objects),即真實感渲染。

PBS模型遵守以下兩條規則:

Energy conservation - 能量守恆,表面反射的光的總量決不會大於總的入射光量。除非物體本身也是發光體,如霓虹光。Surfaces在微觀層次具有微幾何形態(Microgeometry )。一些物體具有光滑的微身體形態(smooth Microgeometry),這使物體看起來像“鏡子”。別的物體具有粗糙的微身體形態。使用LWRP,你可以模擬被渲染物體的表面的光滑度。

當光到達被渲染物體表面時,部分光被反射,部分光被折射。反射的光叫鏡面反射,specular reflection。它會隨着Camera的方向和表面上的到達點而變化。在這個shading model中,高光區域(specular highlight)的形狀是用GGX function來近似的。

對於金屬物體,其表面會吸收和改變光。對於非金屬物體(non-metallic objects),其表面會反射部分光。

光的衰減只受光的強度(light intensity)影響。這意味着你不必為了控制衰減而增加光的范圍(range),因為沒用的。

下面這兩個LWRP Shaders使用Physically Based Shading:

注意:PBS模型不適用於低端手機硬件。如果你的目標平台是這種低端手機硬件,請使用下面要講的Simple Shading模型。

Simple shading

這個shading模型適用於風格化的視覺效果(stylized visuals)或者運行於非高端硬件平台(less powerful platforms)上的游戲。使用這個shading model的材質並不具有真正的(truly)photorealistic。這個shading model不遵守能量守恆定律,是基於Blinn-Phong模型的。

在Simple Shading model中,材質反射漫反射光和鏡面高光,兩者之間沒有關聯。材質反射的漫反射光和高光的問題取決於你設置的材質屬性,並且反射光的總量可以超過超過入射光的問題。鏡面反射僅隨camera direction變化。

光的衰減(light attenuation)僅受光強影響。

下面這些LWRP Shaders使用了Simple Shading:

Baked Lit shading

Baked Lit shading沒有實時光照(real-time lighting)。材質可以接受來自lightmapsLight Probesbaked lighting。這以較小的性能代價為場景增加了一些深度。使用這個shading model的游戲可以運行於less powerful platforms。

LWRP Baked Lit shader是唯一使用Baked Lit shading的shader。

Shaders with no lighting

LWRP提供了一些不使用光照的Shaders。這意味着它們沒有directional lights,也沒有baked lighting。因為沒有光照計算,這些shaders的編譯速度會比有光照的Shaders快。

下面這些LWRP Shaders沒有光照:

參考:

  1. Lightweight Render Pipeline

首次發表於我的知乎專欄:https://zhuanlan.zhihu.com/p/69766402


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM