版本: Unity 6 (6000.0)
语言英语
  • C#

ScriptableRenderContext

UnityEngine.Rendering 中的结构体

/

实现于:UnityEngine.CoreModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交,但我们确实阅读了用户提出的每一项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

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

当您定义自定义 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安排渲染传递内新子传递的开始。渲染传递永远不能是独立的,它们必须始终包含至少一个子传递。任何时候只能有一个子传递处于活动状态。
CreateGizmoRendererList创建一个新的 Gizmo RendererList。
CreateRendererList创建一个新的渲染器 RendererList。
CreateShadowRendererList创建一个新的阴影 RendererList。
CreateSkyboxRendererList创建一个新的天空盒 RendererList。
CreateUIOverlayRendererList创建一个新的 UIOverlay RendererList。
CreateWireOverlayRendererList创建一个新的 WireOverlay RendererList。
Cull根据通常从当前正在渲染的摄像机获取的 ScriptableCullingParameters 执行剔除。
CullShadowCasters对所有可见光执行阴影投射器剔除。
DrawGizmos安排为给定摄像机绘制 Gizmos 的子集(在后处理之前或之后)。
DrawUIOverlay绘制 UI 叠加层。
DrawWireOverlay安排为给定的场景视图摄像机绘制线框叠加层。
EndRenderPass安排当前活动渲染传递的结束。
EndSubPass安排当前活动子传递的结束。
ExecuteCommandBuffer安排自定义图形命令缓冲区的执行。
ExecuteCommandBufferAsync安排在异步计算队列上执行命令缓冲区。您传入的 ComputeQueueType 确定队列顺序。
HasInvokeOnRenderObjectCallbacks检查场景中的任何对象是否注册了 OnRenderObject 回调。
InvokeOnRenderObjectCallback安排对 MonoBehaviour 脚本的 OnRenderObject 回调的调用。
PrepareRendererListsAsync开始在后台处理提供的 RendererLists。
QueryRendererListStatus查询 RendererList 的状态。
SetupCameraProperties安排摄像机特定全局着色器变量的设置。
StartMultiEye安排在 ScriptableRenderContext 上细粒度地开始立体渲染。
StereoEndRender安排通知在单个帧上完成立体渲染。
StopMultiEye安排停止在 ScriptableRenderContext 上进行立体渲染。
Submit将所有已安排的命令提交到渲染循环以执行。
SubmitForRenderPassValidation此方法将所有已安排的命令提交到渲染循环以进行验证。验证检查是否使用 BeginRenderPass 调用启动的渲染传递可以执行已安排的命令。

静态方法

EmitGeometryForCamera发出 UI 几何体以针对指定的摄像机进行渲染。
EmitWorldGeometryForSceneView将 UI 几何体发出到场景视图以进行渲染。
PopDisableApiRenderers启用将渲染器场景节点立即添加和删除到场景数组。
PushDisableApiRenderers防止将渲染器场景节点立即添加或删除到场景数组。这可以防止在计算剔除输出后对场景数组进行更改而导致的无效索引或悬空指针的创建。