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

Light.AddCommandBufferAsync

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们会阅读用户提出的每项建议并进行必要的更新。

关闭

提交失败

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

关闭

取消

切换到手册

声明

public void AddCommandBufferAsync(Rendering.LightEvent evt, Rendering.CommandBuffer buffer, Rendering.ComputeQueueType queueType);

声明

public void AddCommandBufferAsync(Rendering.LightEvent evt, Rendering.CommandBuffer buffer, Rendering.ShadowMapPass shadowPassMask, Rendering.ComputeQueueType queueType);

参数

evt 图形处理过程中此命令缓冲区应在 GPU 上开始执行的点。
buffer 要执行的缓冲区。
queueType 在上面执行缓冲区的所需异步计算队列类型。
shadowPassMask 指定要为其执行缓冲区的阴影通道的掩码。

描述

将命令缓冲区添加到 GPU 的异步计算队列,并在图形处理到达给定点时执行该命令缓冲区。

当图形队列处理到达 evt 参数描述的点时,在 GPU 上执行异步计算命令缓冲区。

可以在同一个灯光事件设置多个命令缓冲区以执行(甚至同一个缓冲区也可以添加多次)。要从执行中移除命令缓冲区,请使用 RemoveCommandBuffer

传递阴影通道掩码可以详细控制哪些阴影通道将执行缓冲区。

命令缓冲区只能调用以下命令以在异步计算队列上执行,否则会在编辑器窗口中记录并显示错误

CommandBuffer.BeginSample

CommandBuffer.BuildRayTracingAccelerationStructure

CommandBuffer.CopyCounterValue

CommandBuffer.CopyTexture

CommandBuffer.CreateGPUFence

CommandBuffer.DispatchCompute

CommandBuffer.EndSample

CommandBuffer.IssuePluginEvent

CommandBuffer.SetComputeBufferParam

CommandBuffer.SetComputeFloatParam

CommandBuffer.SetComputeFloatParams

CommandBuffer.SetComputeTextureParam

CommandBuffer.SetComputeVectorParam

CommandBuffer.WaitOnGPUFence

保证缓冲区内的所有命令都将在同一个队列上执行。如果目标平台不支持异步计算队列,则工作将在图形队列上分派。

其他资源:GPUFence,SystemInfo.supportsAsyncComputeCommandBufferRemoveCommandBufferGetCommandBuffers