HDRP和LWRP簡介
Unity2018中引入了可編程渲染管線(Scriptable Render Pipeline,簡稱SRP),是一種在Unity中經過C#腳本配置和執行渲染的方式。至2018.1版本,Unity中除了默認渲染管線,還提供了輕量級渲染管線(Lightweight Pipeline)和高清晰渲染管線(HD Pipleline)二種SRP渲染管線。固然也支持自定義渲染管線。與高清晰渲染管線相比,輕量級渲染管線的開發已經比較成熟。linux
爲了解決僅有一個默認渲染管線,形成的可配置型、可發現性、靈活性等問題。Unity在管線設計的概念上作了轉移,決定在C++端保留一個很是小的渲染內核,讓C#端能夠經過API暴露出更多的選擇性,也就是說,Unity會提供一系列的C# API以及內置渲染管線的C#實現;這樣一來,一方面能夠保證C++端的代碼都能嚴格經過各類白盒測試,另外一方面C#端代碼就能夠在實際項目中調整,有任何問題也能夠方便地進行調試。
git
新的管線對用戶而言主要是C# 端的API以及由這些API編寫的一系列定製化的內置渲染管線。而在內部實現上,引擎C++端會負責多線程實現性能關鍵的部分,如上圖所示,而C#端負責更高層的渲染指令調度。github
用戶能夠直接使用開源的內置管線,或者在內置管線的基礎上進行修改,甚至直接編寫定製化的管線。具體使用上渲染管線在工程中會生成特定的Asset,以下圖所示,這個Asset序列化了這條管線的一些公共設置變量,並負責在運行時建立實際的渲染上下文;當這個Asset的設置變量在運行時發生變化,引擎會銷燬當前上下文而後從新建立管線(這個操做在現有固定管線中沒法作到)。
編程
HDRP:只支持pc mac linux等支持cpu shader的平臺 ; 支持cluster deferred/forward lighting
LWRP:全平臺支持; single pass forward多線程
HDRP 相對於傳統的渲染管線,有許多優勢,以下圖所示。其中Debug視圖模式支持可視化的調試ide
對於新項目如何使用HDRP
1.請使用Unity Hub,它能夠幫助你管理項目和已安裝Unity版本的信息。使用Unity Hub建立新項目時,在Template下能夠看到High-Definition RP (Preview)選項。選擇該模板便可建立使用HDRP渲染管線的項目性能
對於已有項目如何升級到HDRP
1.Window > Package Manager 安裝最新版本HD Render Pipeline測試
2.Edit > Project Settings > Graphics ,指定用於HDRP的可編程渲染管線資源。.net
3.升級材質線程
4.設置volume setting 和 Post process Volume,修改光照等並從新烘焙
詳細步驟能夠參考官方教程連接https://connect.unity.com/p/gao-qing-xi-xuan-ran-guan-xian-hdrpru-men-zhi-nan
這裏總結幾個重要的點:
1.HDRP目前仍是preview階段,還不是很是成熟,若是使用該管線,自動能升級的shader只有官方自帶的shader。
2.之前本身寫的傳統管線的shader只能本身手動從新寫(目前支持shader graph,不用shader graph如何寫我暫時還沒研究)。
3.同理粒子特效也須要修改,用 visual effect graph
4.天空盒的設置不在之前的project setting中,由volume setting設置
5.volume setting 和 Post process Volume很重要,具體能夠參考模板工程多試試
6.現有工程升級爲hdrp渲染管線後,各個場景和模型效果可能都須要從新調整,我的感受工做量仍是挺大的。以下圖所示,右側爲升級後的,想作出升級前效果的話,各個光照參數及模型參數等都須要修改調整。
關於HDRP的一些連接:
官方直播教程:https://www.bilibili.com/video/av36008052
github:https://github.com/Unity-Technologies/ScriptableRenderPipeline/wiki/Getting-started-with-HDRP
官方文字指南:https://connect.unity.com/p/gao-qing-xi-xuan-ran-guan-xian-hdrpru-men-zhi-nan
關於LWRP的一篇不錯的文章:https://blog.csdn.net/qq_37043683/article/details/80989492