unity 自定义渲染管线
?1。Unity SRP 即 Unity Scriptable Rendering Pipeline(可編程渲染管線),是Unity 2018的新功能,使開(kāi)發(fā)者可以通過(guò)腳本按需構(gòu)建自己的渲染過(guò)程。
自定義渲染管線分為三個(gè)部分:
1.Custom Render Pipeline Asset ?? ?用來(lái)制作渲染管線的二進(jìn)制文件。
2.Custom Render Pipeline ?? ?用來(lái)具體渲染的代碼腳本
3.Shader ?? ?編寫(xiě)自定義渲染管線的著色器腳本
Unity官網(wǎng):https://unity.com/cn/srp
?
2.Custom Render Pipeline Asset
新建一個(gè)我們自定義的類,繼承RenderPipelineAsset,重寫(xiě)CreatePipeline()方法,該方法主要與接下來(lái)講的第二部分關(guān)聯(lián)。
然后在unity新建我們的二進(jìn)制文件, 在渲染設(shè)置中成我們的二進(jìn)制文件
?
3.Custom Render Pipeline
新建一個(gè)我們自定義的類,繼承RenderPipeline,重寫(xiě)Render方法,該方法是主要的自定義渲染方法,在2019版本中,unity附加了調(diào)用渲染的一系列API。
在Render方法中,第一個(gè)參數(shù)類型為ScriptableRenderContext,是渲染過(guò)程中的一個(gè)管理器,第二個(gè)參數(shù)是所有的攝像機(jī),包括Scene視圖下的攝像機(jī)。
所有的自定義渲染命令都是通過(guò)CommandBuffer對(duì)象來(lái)緩存,然后集中給ScriptableRenderContext提交。
渲染命令包括 1.設(shè)置渲染目標(biāo) 2.繪制天空盒子 3.執(zhí)行裁剪過(guò)程 4.執(zhí)行過(guò)濾過(guò)程 5.繪制場(chǎng)景準(zhǔn)備 6.執(zhí)行管線
4.Shader
自定義渲染管線的Shader跟之前的沒(méi)什么不同,只是Shader內(nèi)的Pass里的Tags中“LightMode”不同,需要自定義名字,然后通過(guò)第二部分Render去獲得該shader渲染。 不再是unity自定義的正向渲染。這樣就跟我們自定義的渲染管線聯(lián)系了起來(lái)。
在Render中可以通過(guò)New ShaderPassName(“name”)來(lái)獲取,通過(guò)不同的設(shè)置對(duì)象也有的通過(guò)new ShaderTagId (“name”)來(lái)獲取。
?
自定義渲染總結(jié)
優(yōu)點(diǎn)是功能強(qiáng)大,可以用c#控制,可以靈活定義自己的渲染實(shí)現(xiàn)更高的效果,媲美UE4渲染
缺點(diǎn)是依賴更新的API。比如很多2019版本unity的渲染API在2018版本就沒(méi)有。無(wú)法與系統(tǒng)原生的渲染 共存,即原生的shader在自定義渲染下無(wú)法使用除非自己添加支持原生的渲染管線
總結(jié)
以上是生活随笔為你收集整理的unity 自定义渲染管线的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 高斯克吕格投影换带计算(高斯正反算公式)
- 下一篇: 你知道kernel version的实现