CommandBuffer

class in UnityEngine.Rendering

切换到手册

描述

要执行的图形命令的列表。

命令缓冲区可保存渲染命令列表(“设置渲染目标、绘制网格等等”)。可将渲染命令设置为在摄像机渲染(请参阅 Camera.AddCommandBuffer)、光源渲染(请参阅 Light.AddCommandBuffer)期间的各个点执行,或者立即执行(请参阅 Graphics.ExecuteCommandBuffer)。

通常,渲染命令用于通过一些自定义方式扩展 Unity 的渲染管线。例如,您可以在所有常规对象处理完毕后将一些其他对象渲染到延迟渲染 G 缓冲区,或对光源 阴影贴图执行自定义处理。有关更多详细信息,请参阅command buffers overview页面。

命令缓冲区创建后,可根据需要多次执行。

另请参阅:Camera.AddCommandBufferLight.AddCommandBufferCameraEventLightEventGraphics.ExecuteCommandBuffercommand buffers overview

变量

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

构造函数

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

公共函数

BeginSample添加命令,以开始对配置文件进行采样。
Blit添加“对渲染纹理执行 blit 操作”命令。
BuildRayTracingAccelerationStructure添加命令以构建要用于场景的 RayTracingAccelerationStructure。
Clear清除缓冲区中的所有命令。
ClearRandomWriteTargets为 Shader Model 4.5 级别的像素着色器清除随机写入目标。
ClearRenderTarget添加“清除渲染目标”命令。
ConvertTexture转换源纹理并将其复制到具有不同格式或尺寸的目标纹理。
CopyCounterValue添加用于复制 ComputeBuffer 计数器值的命令。
CopyTexture添加用于将纹理复制到其他纹理中的命令。
CreateAsyncGraphicsFence用于调用 GommandBuffer.CreateGraphicsFence 的快捷方式,将 GraphicsFenceType.AsyncQueueSynchronization 作为第一个参数。
CreateGraphicsFence创建一个 GraphicsFence,其传递时机是此调用前,GPU 中完成的最后一个 Blit、Clear、Draw、Dispatch 或 Texture Copy 命令之后。
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向 commandbuffer 添加命令以向当前渲染目标绘制 VR 设备的遮挡网格。
DrawProcedural添加“绘制程序化几何体”命令。
DrawProceduralIndirect添加“绘制程序化几何体”命令。
DrawRenderer添加“绘制渲染器”命令。
EnableScissorRect添加用于启用硬件剪辑矩形的命令。
EnableShaderKeyword添加用于启用全局着色器关键字的命令。
EndSample添加命令,以开始对配置文件进行采样。
GenerateMips生成渲染纹理的多级渐进纹理级别。
GetTemporaryRT添加“获取临时渲染纹理”命令。
GetTemporaryRTArray添加“获取临时渲染纹理阵列”命令。
IncrementUpdateCount递增纹理的 updateCount 属性。
IssuePluginCustomBlit向本机代码插件发送用户定义的 blit 事件。
IssuePluginCustomTextureUpdateV2向本机代码插件发送纹理更新事件。
IssuePluginEvent向本机代码插件发送用户定义的事件。
IssuePluginEventAndData向本机代码插件发送具有自定义数据的用户定义的事件。
ReleaseTemporaryRT添加“释放临时渲染纹理”命令。
RequestAsyncReadback向命令缓冲区添加异步 GPU 回读请求命令。
RequestAsyncReadbackIntoNativeArray向命令缓冲区添加异步 GPU 回读请求命令。
ResolveAntiAliasedSurface强制解析抗锯齿渲染纹理。
SetComputeBufferParam添加用于在 ComputeShader 中设置输入或输出缓冲区参数的命令。
SetComputeFloatParam添加用于在 ComputeShader 中设置浮点参数的命令。
SetComputeFloatParams添加用于在 ComputeShader 中设置多个连续浮点参数的命令。
SetComputeIntParam添加用于在 ComputeShader 中设置整数参数的命令。
SetComputeIntParams添加用于在 ComputeShader 中设置多个连续整数参数的命令。
SetComputeMatrixArrayParam添加用于在 ComputeShader 中设置矩阵数组参数的命令。
SetComputeMatrixParam添加用于在 ComputeShader 中设置矩阵参数的命令。
SetComputeTextureParam添加用于在 ComputeShader 中设置纹理参数的命令。
SetComputeVectorArrayParam添加用于在 ComputeShader 中设置向量数组参数的命令。
SetComputeVectorParam添加用于在 ComputeShader 中设置向量参数的命令。
SetExecutionFlags设置标志,描述有关如何执行命令缓冲区的意图。
SetGlobalBuffer添加“设置全局着色器缓冲区属性”命令。
SetGlobalColor添加“设置全局着色器颜色属性”命令。
SetGlobalConstantBuffer添加用于绑定全局常量缓冲区的命令。
SetGlobalDepthBias添加用于设置全局深度偏差的命令。
SetGlobalFloat添加“设置全局着色器浮点属性”命令。
SetGlobalFloatArray添加“设置全局着色器浮点数组属性”命令。
SetGlobalInt为所有着色器设置给定的全局整数属性。
SetGlobalMatrix添加“设置全局着色器矩阵属性”命令。
SetGlobalMatrixArray添加“设置全局着色器矩阵数组属性”命令。
SetGlobalTexture添加“设置全局着色器纹理属性”命令(引用 RenderTexture)。
SetGlobalVector添加“设置全局着色器向量属性”命令。
SetGlobalVectorArray添加“设置全局着色器向量数组属性”命令。
SetInstanceMultiplier添加用于将每个绘制调用的实例数乘以特定乘数的命令。
SetInvertCulling向缓冲区添加“设置反转剔除”命令。
SetProjectionMatrix添加用于设置投影矩阵的命令。
SetRandomWriteTarget为 Shader Model 4.5 级别的像素着色器设置随机写入目标。
SetRayTracingAccelerationStructure添加命令以设置要与 RayTracingShader 一起使用的 RayTracingAccelerationStructure。
SetRayTracingBufferParam添加用于在 RayTracingShader 中设置 SetRayTracingBufferParam 输入或输出缓冲区参数的命令。
SetRayTracingFloatParam添加用于在 RayTracingShader 中设置浮点参数的命令。
SetRayTracingFloatParams添加用于在 RayTracingShader 中设置多个连续浮点参数的命令。
SetRayTracingIntParam添加用于在 RayTracingShader 中设置整数参数的命令。
SetRayTracingIntParams添加用于在 RayTracingShader 中设置多个连续整数参数的命令。
SetRayTracingMatrixArrayParam添加用于在 RayTracingShader 中设置矩阵数组参数的命令。
SetRayTracingMatrixParam添加用于在 RayTracingShader 中设置矩阵参数的命令。
SetRayTracingShaderPass添加用于为要使用的 RayTracingShader 设置通道的命令。
SetRayTracingTextureParam添加用于在 RayTracingShader 中设置纹理参数的命令。
SetRayTracingVectorArrayParam添加用于在 RayTracingShader 中设置矢量数组参数的命令。
SetRayTracingVectorParam添加用于在 RayTracingShader 中设置矢量参数的命令。
SetRenderTarget添加“设置活动的渲染目标”命令。
SetShadowSamplingMode添加“设置阴影采样模式”命令。
SetSinglePassStereo添加用于为摄像机设置单通道立体模式的命令。
SetViewMatrix添加用于设置视图矩阵的命令。
SetViewport添加用于设置渲染视口的命令。
SetViewProjectionMatrices添加用于设置视图和投影矩阵的命令。
WaitAllAsyncReadbackRequests向 CommandBuffer 添加“AsyncGPUReadback.WaitAllRequests”命令。
WaitOnAsyncGraphicsFence指示 GPU 等待,直至给定的 GraphicsFence 完成传递。