Unity HDRP渲染管线基础指南
?HDRP和LWRP簡(jiǎn)介
Unity2018中引入了可編程渲染管線(Scriptable Render Pipeline,簡(jiǎn)稱SRP),是一種在Unity中通過(guò)C#腳本配置和執(zhí)行渲染的方式。至2018.1版本,Unity中除了默認(rèn)渲染管線,還提供了輕量級(jí)渲染管線(Lightweight Pipeline)和高清晰渲染管線(HD Pipleline)二種SRP渲染管線。當(dāng)然也支持自定義渲染管線。與高清晰渲染管線相比,輕量級(jí)渲染管線的開(kāi)發(fā)已經(jīng)比較成熟。
為了解決僅有一個(gè)默認(rèn)渲染管線,造成的可配置型、可發(fā)現(xiàn)性、靈活性等問(wèn)題。Unity在管線設(shè)計(jì)的概念上做了轉(zhuǎn)移,決定在C++端保留一個(gè)非常小的渲染內(nèi)核,讓C#端可以通過(guò)API暴露出更多的選擇性,也就是說(shuō),Unity會(huì)提供一系列的C# API以及內(nèi)置渲染管線的C#實(shí)現(xiàn);這樣一來(lái),一方面可以保證C++端的代碼都能嚴(yán)格通過(guò)各種白盒測(cè)試,另一方面C#端代碼就可以在實(shí)際項(xiàng)目中調(diào)整,有任何問(wèn)題也可以方便地進(jìn)行調(diào)試。
?
新的管線對(duì)用戶而言主要是C# 端的API以及由這些API編寫(xiě)的一系列定制化的內(nèi)置渲染管線。而在內(nèi)部實(shí)現(xiàn)上,引擎C++端會(huì)負(fù)責(zé)多線程實(shí)現(xiàn)性能關(guān)鍵的部分,如上圖所示,而C#端負(fù)責(zé)更高層的渲染指令調(diào)度。
用戶可以直接使用開(kāi)源的內(nèi)置管線,或者在內(nèi)置管線的基礎(chǔ)上進(jìn)行修改,甚至直接編寫(xiě)定制化的管線。具體使用上渲染管線在工程中會(huì)生成特定的Asset,如下圖所示,這個(gè)Asset序列化了這條管線的一些公共設(shè)置變量,并負(fù)責(zé)在運(yùn)行時(shí)創(chuàng)建實(shí)際的渲染上下文;當(dāng)這個(gè)Asset的設(shè)置變量在運(yùn)行時(shí)發(fā)生變化,引擎會(huì)銷毀當(dāng)前上下文然后重新創(chuàng)建管線(這個(gè)操作在現(xiàn)有固定管線中無(wú)法做到)。
?
- ?HDRP:只支持pc mac linux等支持cpu shader的平臺(tái) ;? ?支持cluster deferred/forward lighting
- ?LWRP:全平臺(tái)支持;? ?single pass forward
HDRP 相對(duì)于傳統(tǒng)的渲染管線,有許多優(yōu)點(diǎn),如下圖所示。其中Debug視圖模式支持可視化的調(diào)試
對(duì)于新項(xiàng)目如何使用HDRP
1.請(qǐng)使用Unity Hub,它可以幫助你管理項(xiàng)目和已安裝Unity版本的信息。使用Unity Hub創(chuàng)建新項(xiàng)目時(shí),在Template下可以看到High-Definition RP (Preview)選項(xiàng)。選擇該模板即可創(chuàng)建使用HDRP渲染管線的項(xiàng)目
對(duì)于已有項(xiàng)目如何升級(jí)到HDRP
1.Window > Package Manager?安裝最新版本HD Render Pipeline
2.Edit > Project Settings > Graphics ,指定用于HDRP的可編程渲染管線資源。
3.升級(jí)材質(zhì)
4.設(shè)置volume setting 和 Post process Volume,修改光照等并重新烘焙
詳細(xì)步驟可以參考官方教程鏈接https://connect.unity.com/p/gao-qing-xi-xuan-ran-guan-xian-hdrpru-men-zhi-nan?
這里總結(jié)幾個(gè)重要的點(diǎn):
1.HDRP目前還是preview階段,還不是非常成熟,如果使用該管線,自動(dòng)能升級(jí)的shader只有官方自帶的shader。
2.以前自己寫(xiě)的傳統(tǒng)管線的shader只能自己手動(dòng)重新寫(xiě)(目前支持shader graph,不用shader graph如何寫(xiě)我暫時(shí)還沒(méi)研究)。
3.同理粒子特效也需要修改,用 visual effect graph
4.天空盒的設(shè)置不在以前的project setting中,由volume setting設(shè)置
5.volume setting 和 Post process Volume很重要,具體可以參考模板工程多試試
6.現(xiàn)有工程升級(jí)為hdrp渲染管線后,各個(gè)場(chǎng)景和模型效果可能都需要重新調(diào)整,個(gè)人感覺(jué)工作量還是挺大的。如下圖所示,右側(cè)為升級(jí)后的,想做出升級(jí)前效果的話,各個(gè)光照參數(shù)及模型參數(shù)等都需要修改調(diào)整。
關(guān)于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
關(guān)于LWRP的一篇不錯(cuò)的文章:https://blog.csdn.net/qq_37043683/article/details/80989492
?
?
總結(jié)
以上是生活随笔為你收集整理的Unity HDRP渲染管线基础指南的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: AD smart pdf 中文丢失
- 下一篇: GPU Gems1 - 17 环境遮挡