欢迎光临散文网 会员登陆 & 注册

Unity3D URP 的后处理——Render Feature

2023-04-19 12:22 作者:我有一个很厉害的名字  | 我要投稿

前言

    URP的后处理需要依赖RendererFeature,我们需要创建两个类分别继承ScriptableRendererFeature和ScriptableRenderPass。

   为了方便调节参数,再创建一个类继承VolumeComponent,将参数写在这个类里,后面就可以直接在GlobalVolumeProfile上调参数。



1、创建ScriptableRendererFeature

    创建TestRendererFeature继承ScriptableRendererFeature并实现抽象方法,

    实例化TestRenderPass并做相应设置。

TestRendererFeature类完成!


2、创建ScriptableRenderPass

    创建TestRenderPass继承ScriptableRenderPass并实现抽象方法,为了方便操作将两个类放在了同一个文件。增加构造方法和Setup方法供TestRendererFeature使用。

主要逻辑在Execute中处理,在这里将屏幕渲染图和参数传给shader处理,直接代码吧。


3、创建VolumeComponent

    创建TestVolume继承VolumeComponent并实现接口。将需要暴露的参数定义好。

注意参数类型必须继承自VolumeParameter。大部分类型Unity已经实现,如果有特殊需求可以自己定义。



4、创建后处理shader

    效果就简单的将rgb做一个偏移吧,shader如下


5、设置

    创建一个材质Test,把上面创建的Test shader给它。

    然后


设置Volume


设置Feature
相机开启Post Processing


效果


结束!

Unity3D URP 的后处理——Render Feature的评论 (共 条)

分享到微博请遵守国家法律