渲染管线上下文

SRP使用延迟执行的概念进行渲染。作为一个使用者,您可构建一个命令列表,然后执行它们。用于构建这些命令的对象称为scriptablerenderContext,并作为参数传递给Render函数。

使用一些操作填充上下文后,可以调用“submit”提交所有排序过的Rendering call。这些调用通常是CommandBuffer执行指令与srp特定的绘制命令的组合。

例如,使用CommandBuffer清除渲染目标的操作,可由渲染上下午执行:

  1. public class BasicPipeInstance : RenderPipeline
  2. {
  3. private Color m_ClearColor = Color.black;
  4. public BasicPipeInstance(Color clearColor)
  5. {
  6. m_ClearColor = clearColor;
  7. }
  8. public override void Render(ScriptableRenderContext context, Camera[] cameras)
  9. {
  10. // does not so much yet :(
  11. base.Render(context, cameras);
  12. // 使用配置颜色情况渲染目标
  13. var cmd = new CommandBuffer();
  14. cmd.ClearRenderTarget(true, true, m_ClearColor);
  15. context.ExecuteCommandBuffer(cmd);
  16. cmd.Release();
  17. context.Submit();
  18. }
  19. }

渲染上下文可实现效果的更多详细信息,请参见:https://docs.unity3d.com/scriptReference/experimental.rendering.scriptablerendercontext.html