在URP中我们可以插入自己的RenderFeature来实现一些特殊的效果。
首先我们需要创建两个C#类,分别继承ScriptableRendererFeature
、ScriptableRenderPass
。
这里我创建了TestRenderFeature
和TestPass
。
我在TestRenderFeature
的Create
方法中初始化TestPass
,在AddRenderPasses
中调用renderer.EnqueuePass(_testPass);
执行相关的渲染操作。
TestRenderFeature.cs
public class TestRenderFeature : ScriptableRendererFeature
{
public Material _material;
private TestPass _testPass;
public override void Create()
{
if (_material== null)
{
Debug.LogError("material can't be null");
}
_testPass=new TestPass (_material);
}
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
{