包含此页的版本:
不含此页的版本:
使用ScriptableRenderFeature将可编写脚本的渲染通道插入通用的API渲染管线(Render Pipeline) 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表(URP) 帧渲染循环。
按着这些次序:
创建新的 C# 脚本。
将代码替换为继承自ScriptableRendererFeature类。
using UnityEngine;
using UnityEngine.Rendering.Universal;
public class MyRendererFeature : ScriptableRendererFeature
{
}
在类中,覆盖Create方法。例如:
public override void Create()
{
}
URP 调用Create方法:
在Create方法,创建可编写脚本渲染通道的实例,并将其注入渲染器。
例如,如果你有一个名为RedTintRenderPass:
// Define an instance of the Scriptable Render Pass
private RedTintRenderPass redTintRenderPass;
public override void Create()
{
// Create an instance of the Scriptable Render Pass
redTintRenderPass = new RedTintRenderPass();
// Inject the render pass after rendering the skybox
redTintRenderPass.renderPassEvent = RenderPassEvent.AfterRenderingSkybox;
}
覆盖AddRenderPasses方法。
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
{
}
URP 调用AddRenderPasses方法每帧一次,每个相机在场景中创建特定视点图像的组件。输出要么绘制到屏幕上,要么作为纹理捕获。更多信息
请参阅术语表.
使用EnqueuePassAPI 将可编写脚本的渲染通道注入到帧渲染循环中。
public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData)
{
renderer.EnqueuePass(redTintRenderPass);
}
现在,你可以将可编写脚本的渲染器功能添加到活动的URP资产。有关更多信息,请参阅如何将渲染器功能添加到渲染器。
有关完整示例,请参阅完整的可脚本渲染器功能示例。