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