Version: 2020.1

ScriptableRenderContext

struct in UnityEngine.Rendering

切换到手册

描述

定义自定义渲染管线使用的状态和绘制命令。

定义自定义 RenderPipeline 时,可使用 ScriptableRenderContext 向 GPU 调度和提交状态更新和绘制命令。

RenderPipeline.Render 方法实现通常会针对每个摄像机剔除渲染管线不需要渲染的对象(请参阅 CullingResults),然后对 ScriptableRenderContext.DrawRenderers 发起一系列调用并混合 ScriptableRenderContext.ExecuteCommandBuffer 调用。这些调用会设置全局着色器属性、更改渲染目标、分发计算着色器和其他渲染任务。若要实际执行渲染循环,请调用 ScriptableRenderContext.Submit

另请参阅:RenderPipeline

公共函数

BeginRenderPass调度新渲染通道的开头。在任何时候只能有一个渲染通道处于活动状态。
BeginScopedRenderPass调度新渲染通道的开头。如果在 using 语句中调用此内容,则 Unity 会在退出 using 代码块时自动调用 EndRenderPass。在任何时候只能有一个渲染通道处于活动状态。
BeginScopedSubPass调度渲染通道中的新子通道的开头。如果在 using 语句调用此内容,则 Unity 会在退出 using 代码块时自动调用 EndSubPass。 渲染通道永远不能独立存在,必须始终包含至少一个子通道。在任何时候只能有一个子通道处于活动状态。
BeginSubPass调度渲染通道中的新子通道的开头。渲染通道永远不能独立存在,必须始终包含至少一个子通道。在任何时候只能有一个子通道处于活动状态。
Cull基于通常从当前渲染的摄像机获取的 ScriptableCullingParameters 来执行剔除。
DrawGizmos为给定摄像机调度辅助图标的子集的绘制(在后期处理之前或之后)。
DrawRenderers调度可见 GameObjects 的子通道的开头。
DrawShadows为单个光源调度阴影投射物的绘制。
DrawSkybox调度天空盒的绘制。
DrawUIOverlayDraw the UI overlay.
DrawWireOverlaySchedules the drawing of a wireframe overlay for a given Scene view Camera.
EndRenderPass调度当前活动渲染通道的结尾。
EndSubPass调度当前活动子通道的结尾。
ExecuteCommandBuffer调度自定义图形命令缓冲区的执行。
ExecuteCommandBufferAsync对异步计算队列调度命令缓冲区的执行。传入的 ComputeQueueType 会确定队列顺序。
InvokeOnRenderObjectCallback为 MonoBehaviour 脚本调度 OnRenderObject 回调的调用。
SetupCameraProperties调度特定于摄像机的全局着色器变量的设置。
StartMultiEye对 ScriptableRenderContext 调度立体渲染的精细开头。
StereoEndRender调度立体渲染在单个帧上的完成情况的通知。
StopMultiEye对 ScriptableRenderContext 调度立体渲染的停止。
Submit将所有调度命令都提交给渲染循环来执行。

静态函数

EmitWorldGeometryForSceneView将 UI 几何形状发射到 Scene 视图以进行渲染。