(1)对于URP的渲染管线,之前看过其它大佬的分析,
尤其是在catlikecoding教程的跟着教程一步一步从0到1抄写理解的过程非常nice,感觉收获良多,加深了对管线的流程和理解
(2)本篇理解只是单纯的说明ScriptableRenderPass是如何调用的
有许多的管线相关的其它细节未涉及到,后面再补充吧~~
------之所以选择将入口选为 ScriptableRenderPass处:
是因为
(3) ScriptableRenderPass 我将其称为”最基础的渲染单元“
(4) 因为URP内部渲染的实现,都是基于继承ScriptableRenderPass来实现渲染的
(5) 关于ScriptableRenderPass的官方注释是 :” implements a logical rendering pass that can be used to extend Universal RP renderer“
有道词典翻译: 实现了一个逻辑渲染通道,可以用来扩展通用RP渲染器
Package版本:10.8.1
(一)首先,对URP 管线从宏观上认识一下:
从类的执行的层次结构:
RenderPipelines -> ScriptableRenderer -> ScriptableRenderPass
自上而下的执行,最终执行ScriptableRenderPass类中的每个所谓的”生命周期函数“
(1)从总入口: RenderPipelines类的 Render函数
(2)在Render函数中RenderSingleCamera中执行 ScriptableRenderer中的”生命周期函数“
(3)在ScriptableRenderer中的Execute函数中执行 ScriptableRenderPass中的”生命周期函数“
经过上面三步,就执行完了一个ScriptableRenderPass的生命周期
(二)ScriptableRenderPass 我将其称为”最基础的渲染单元“
因为URP内部渲染的实现,都是基于继承ScriptableRenderPass来实现渲染的
关于ScriptableRenderPass的官方注释是 :” implements a logical rendering pass that can be used to extend Universal RP renderer“
有道词典翻译: 实现了一个逻辑渲染通道,可以用来扩展通用RP渲染器
(
三)稍微详细的图解