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

CommandBuffer

UnityEngine.Rendering 中的类

/

实现于:UnityEngine.CoreModule

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议,并在适用时进行更新。

关闭

提交失败

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

关闭

取消

描述

要执行的图形命令列表。

命令缓冲区包含渲染命令列表(“设置渲染目标、绘制网格、...”)。它们可以设置为在相机渲染过程中的各个点执行(参见 Camera.AddCommandBuffer),灯光渲染过程(参见 Light.AddCommandBuffer)或立即执行(参见 Graphics.ExecuteCommandBuffer)。

通常情况下,它们用于以自定义方式扩展 Unity 的渲染管线。例如,您可以在所有常规对象完成渲染后将一些附加对象渲染到延迟渲染 G 缓冲区,或对灯光阴影贴图进行自定义处理。有关更多详细信息,请参见 命令缓冲区概述 页面。

如果需要,可以创建命令缓冲区并执行多次。

其他资源: Camera.AddCommandBuffer, Light.AddCommandBuffer, CameraEvent, LightEvent, Graphics.ExecuteCommandBuffer, 命令缓冲区概述

静态属性

ThrowOnSetRenderTarget在命令缓冲区上记录 SetRenderTarget 时抛出异常。这在使用原生渲染通道时非常有用,可以避免在命令缓冲区上无意中记录 SetRenderTarget 命令。

属性

name此命令缓冲区的名称。
sizeInBytes此命令缓冲区的大小(以字节为单位)(只读)。

构造函数

CommandBuffer创建一个新的空命令缓冲区。

公共方法

BeginRenderPass开始一个新的原生渲染通道。
BeginSample添加一个命令以开始配置文件采样。
Blit添加一个命令以使用着色器将像素数据从纹理复制到渲染纹理。
BuildRayTracingAccelerationStructure添加一个命令以构建 RayTracingAccelerationStructure,该结构将在光线追踪调度或使用内联光线追踪(光线查询)时使用。
Clear清除缓冲区中的所有命令。
ClearRandomWriteTargets取消设置着色器模型 4.5 级像素着色器的随机写入目标。
ClearRenderTarget添加一个“清除渲染目标”命令。
ConfigureFoveatedRendering添加一个命令以配置注视点渲染。
ConvertTexture添加一个命令以复制一个纹理的像素数据,将数据转换为不同的格式,并将数据复制到另一个纹理。
CopyBuffer添加一个命令以将一个 GraphicsBuffer 的内容复制到另一个 GraphicsBuffer。
CopyCounterValue添加一个命令以复制 ComputeBuffer 或 GraphicsBuffer 计数器值。
CopyTexture添加一个命令以将一个纹理的像素数据复制到另一个纹理。
CreateAsyncGraphicsFence调用 CommandBuffer.CreateGraphicsFence 的快捷方式,第一个参数为 GraphicsFenceType.AsyncQueueSynchronisation。
CreateGraphicsFence创建 GraphicsFence。
DisableKeyword添加一个命令以禁用全局或本地着色器关键字。
DisableScissorRect添加一个命令以禁用硬件剪切矩形。
DisableShaderKeyword添加一个命令以禁用具有给定名称的全局着色器关键字。
DispatchCompute添加一个命令以执行 ComputeShader。
DispatchRays添加一个命令以执行 RayTracingShader。
DrawMesh添加一个“绘制网格”命令。
DrawMeshInstanced添加一个“使用实例化绘制网格”命令。网格将只绘制一次,它不会进行逐像素光照,也不会投射或接收实时阴影。如果 Material.enableInstancing 为 false,则命令不会立即失败并抛出异常,但如果检测到这种情况,它将在每次执行命令时记录错误并跳过渲染。如果当前平台不支持此 API(例如,如果 GPU 实例化不可用),则将抛出 InvalidOperationException。参见 SystemInfo.supportsInstancing。
DrawMeshInstancedIndirect添加一个“使用间接实例化绘制网格”命令。
DrawMeshInstancedProcedural添加一个“使用实例化绘制网格”命令。使用过程实例化绘制网格。这与 Graphics.DrawMeshInstancedIndirect 类似,不同的是,当实例计数从脚本中得知时,可以使用此方法直接提供实例计数,而不是通过 ComputeBuffer。如果 Material.enableInstancing 为 false,则命令将记录错误并跳过每次执行命令时的渲染;命令不会立即失败并抛出异常。如果当前平台不支持此 API(例如,如果 GPU 实例化不可用),则将抛出 InvalidOperationException。参见 SystemInfo.supportsInstancing。
DrawOcclusionMesh将一个命令添加到命令缓冲区,以将 VR 设备的遮挡网格绘制到当前渲染目标。
DrawProcedural添加一个“绘制过程几何体”命令。
DrawProceduralIndirect添加一个“绘制过程几何体”命令。
DrawRenderer添加一个“绘制渲染器”命令。
DrawRendererList添加一个“绘制渲染器列表”命令。
EnableKeyword添加一个命令以启用全局或本地着色器关键字。
EnableScissorRect添加一个命令以启用硬件剪切矩形。
EnableShaderKeyword添加一个命令以启用具有给定名称的全局关键字。
EndRenderPass终止活动原生渲染通道。
EndSample添加一个命令以结束配置文件采样。
GenerateMips生成渲染纹理的mipmap 层级。
GetTemporaryRT添加一个“获取临时渲染纹理”命令。
GetTemporaryRTArray添加一个“获取临时渲染纹理数组”命令。
IncrementUpdateCount增加 Texture 的 updateCount 属性。
InvokeOnRenderObjectCallbacks安排为 MonoBehaviour 脚本的 OnRenderObject 回调调用。
IssuePluginCustomBlit向原生代码插件发送用户定义的 blit 事件。
IssuePluginCustomTextureUpdateV2向原生代码插件发送纹理更新事件。
IssuePluginEvent向原生代码插件发送用户定义的事件。
IssuePluginEventAndData向原生代码插件发送用户定义的事件,并附带自定义数据。
IssuePluginEventAndDataWithFlags向原生代码插件发送用户定义的事件,并附带自定义数据和回调标志。
MarkLateLatchMatrixShaderPropertyID标记全局着色器属性 ID 以便延迟锁定。可能的着色器属性包括视图、反向视图、视图投影和反向视图投影矩阵。通用渲染管线 (URP) 使用此函数来支持着色器属性的延迟锁定。如果您在使用内置 Unity 渲染或高清晰度渲染管线 (HDRP) 时调用此函数,则结果将被忽略。
NextSubPass启动下一个原生子通道,如 CommandBuffer.BeginRenderPass 所描述的那样。
ReleaseTemporaryRT添加一个“释放临时渲染纹理”命令。
RequestAsyncReadback向命令缓冲区添加一个异步 GPU 回读请求命令。
RequestAsyncReadbackIntoNativeArray向命令缓冲区添加一个异步 GPU 回读请求命令。
RequestAsyncReadbackIntoNativeSlice向命令缓冲区添加一个异步 GPU 回读请求命令。
ResolveAntiAliasedSurface强制解析反锯齿渲染纹理。
SetBufferCounterValue添加一个命令以设置附加/消耗缓冲区的计数器值。
SetBufferData添加一个命令以使用数组中的值设置缓冲区。
SetComputeBufferParam添加一个命令以在 ComputeShader 上设置输入或输出缓冲区参数。
SetComputeConstantBufferParam添加一个命令以在 ComputeShader 上设置常量缓冲区。
SetComputeFloatParam添加一个命令以在 ComputeShader 上设置浮点参数。
SetComputeFloatParams添加一个命令以在 ComputeShader 上设置多个连续的浮点参数。
SetComputeIntParam添加一个命令以在 ComputeShader 上设置整数参数。
SetComputeIntParams添加一个命令以在 ComputeShader 上设置多个连续的整数参数。
SetComputeMatrixArrayParam添加一个命令以在 ComputeShader 上设置矩阵数组参数。
SetComputeMatrixParam添加一个命令以在 ComputeShader 上设置矩阵参数。
SetComputeParamsFromMaterial从 Material 设置 ComputeShader 内核的参数。
SetComputeTextureParam添加一个命令以在 ComputeShader 上设置纹理参数。
SetComputeVectorArrayParam添加一个命令以在 ComputeShader 上设置向量数组参数。
SetComputeVectorParam添加一个命令以在 ComputeShader 上设置向量参数。
SetExecutionFlags设置标志,描述如何执行命令缓冲区的意图。
SetFoveatedRenderingMode添加一个命令以设置用于注视点渲染的模式。
SetGlobalBuffer添加一个“设置全局着色器缓冲区属性”命令。
SetGlobalColor添加一个“设置全局着色器颜色属性”命令。
SetGlobalConstantBuffer添加一个命令以绑定全局常量缓冲区。
SetGlobalDepthBias添加一个命令以设置全局深度偏差。
SetGlobalFloat添加一个“设置全局着色器浮点属性”命令。
SetGlobalFloatArray添加一个“设置全局着色器浮点数组属性”命令。
SetGlobalInt添加一个命令以设置所有着色器的给定属性的值,其中该属性在 ShaderLab 代码中类型为 Int。
SetGlobalInteger添加一个命令以设置所有着色器的给定属性的值,其中该属性是整数。
SetGlobalMatrix添加一个“设置全局着色器矩阵属性”命令。
SetGlobalMatrixArray添加一个“设置全局着色器矩阵数组属性”命令。
SetGlobalRayTracingAccelerationStructure添加一个命令以将 RayTracingAccelerationStructure 对象绑定到所有着色器阶段。
SetGlobalTexture添加一个“设置全局着色器纹理属性”命令,引用 RenderTexture。
SetGlobalVector添加一个“设置全局着色器向量属性”命令。
SetGlobalVectorArray添加一个“设置全局着色器向量数组属性”命令。
SetInstanceMultiplier添加一个命令以将每个绘制调用的实例计数乘以特定乘数。
SetInvertCulling向缓冲区添加一个“设置反转剔除”命令。
SetKeyword添加一个命令以设置全局或本地着色器关键字的状态。
SetLateLatchProjectionMatrices设置当前立体投影矩阵以进行延迟锁定。立体矩阵作为两个矩阵的数组传入。
SetProjectionMatrix添加一个命令以设置投影矩阵。
SetRandomWriteTarget为着色器模型 4.5 级像素着色器设置随机写入目标。
SetRayTracingAccelerationStructure添加一个命令以设置将在 RayTracingShader 或 ComputeShader 中使用的 RayTracingAccelerationStructure。
SetRayTracingBufferParam添加一个命令以在 RayTracingShader 上设置输入或输出缓冲区参数。
SetRayTracingConstantBufferParam添加一个命令以在 RayTracingShader 上设置常量缓冲区。
SetRayTracingFloatParam添加一个命令以在 RayTracingShader 上设置浮点参数。
SetRayTracingFloatParams添加一个命令以在 RayTracingShader 上设置多个连续的浮点参数。
SetRayTracingIntParam添加一个命令以在 RayTracingShader 上设置整数参数。
SetRayTracingIntParams添加一个命令以在 RayTracingShader 上设置多个连续的整数参数。
SetRayTracingMatrixArrayParam添加一个命令,用于在 RayTracingShader 上设置矩阵数组参数。
SetRayTracingMatrixParam添加一个命令,用于在 RayTracingShader 上设置矩阵参数。
SetRayTracingShaderPass添加一个命令,用于选择在执行射线/几何体相交着色器时要使用的着色器通道。
SetRayTracingTextureParam添加一个命令,用于在 RayTracingShader 上设置纹理参数。
SetRayTracingVectorArrayParam添加一个命令,用于在 RayTracingShader 上设置向量数组参数。
SetRayTracingVectorParam添加一个命令,用于在 RayTracingShader 上设置向量参数。
SetRenderTarget添加一个“设置活动渲染目标”命令。
SetShadowSamplingMode添加一个“设置阴影采样模式”命令。
SetSinglePassStereo添加一个命令,用于为相机设置单通道立体声模式。
SetupCameraProperties安排设置相机特定的全局着色器变量。
SetViewMatrix添加一个命令,用于设置视图矩阵。
SetViewport添加一个命令,用于设置渲染视口。
SetViewProjectionMatrices添加一个命令,用于设置视图和投影矩阵。
SetWireframe向缓冲区添加一个“设置线框”命令。
UnmarkLateLatchMatrix取消标记全局着色器属性以进行延迟闩锁。取消标记后,着色器属性将不再延迟闩锁。此函数旨在用于通用渲染管道 (URP) 来指定延迟闩锁的着色器属性。
WaitAllAsyncReadbackRequests向命令缓冲区添加一个“AsyncGPUReadback.WaitAllRequests”命令。
WaitOnAsyncGraphicsFence指示 GPU 在通过图形栅栏栅栏之前暂停处理队列。