Experimental: this API is experimental and might be changed or removed in the future.

ScriptableRenderContext

struct in UnityEngine.Experimental.Rendering

切换到手册

描述

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

定义自定义 RenderPipeline 时,ScriptableRenderContext 用于设置要提交到 GPU 的状态和绘制命令。

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

另请参阅:RenderPipeline

公共函数

DrawRenderers绘制可见对象的子集。
DrawShadows绘制单个光源的阴影投射物。
DrawSkybox绘制天空盒。
ExecuteCommandBuffer执行自定义图形命令缓冲区。
ExecuteCommandBufferAsync对基于传入的 ComputeQueueType 参数选择的异步计算队列执行命令缓冲区。要求命令缓冲区中的所有命令都为适合在异步计算队列上执行的类型。如果缓冲区包含任何不合适的命令,则系统会记录错误并在 Editor 窗口中显示。具体来说,将异步执行的 CommandBuffer 可以包含以下命令:CommandBuffer.BeginSampleCommandBuffer.CopyCounterValueCommandBuffer.CopyTextureCommandBuffer.CreateGPUFenceCommandBuffer.DispatchComputeCommandBuffer.EndSampleCommandBuffer.IssuePluginEventCommandBuffer.SetComputeBufferParamCommandBuffer.SetComputeFloatParamCommandBuffer.SetComputeFloatParamsCommandBuffer.SetComputeTextureParamCommandBuffer.SetComputeVectorParamCommandBuffer.WaitOnGPUFence系统保证缓冲区中的所有命令都在同一队列上执行。如果目标平台不支持异步计算队列,则将工作分发到图形队列。
SetupCameraProperties设置特定于摄像机的全局着色器变量。
StartMultiEye精细控制,以开始在脚本化渲染环境中进行立体渲染。
StereoEndRender指示立体渲染在单个帧上的完成情况。
StopMultiEye停止在脚本化渲染环境中进行立体渲染。
Submit提交渲染循环以供执行。

静态函数

EmitWorldGeometryForSceneView将 UI 几何形状发射到场景视图,以进行渲染。
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961