nameID | 着色器代码中常量缓冲区的属性名称的 ID。使用 Shader.PropertyToID 获取此 ID。 |
name | 要绑定为常量缓冲区的缓冲区的名称。 |
buffer | 要绑定为常量缓冲区的缓冲区。 |
offset | 从 ComputeBuffer 开头绑定的字节偏移量。必须是 SystemInfo.constantBufferOffsetAlignment 的倍数,如果该值为 0,则为 0。 |
size | 要绑定的字节数。 |
将 ComputeBuffer 或 GraphicsBuffer 设为 ComputeShader 的命名常量缓冲区。
您可以使用此方法用 ComputeBuffer 或 GraphicsBuffer 的内容覆盖计算着色器常量缓冲区中的所有参数。
要使用此方法,必须满足以下条件
如果未满足上述条件,则缓冲区可能无法正确绑定,因此将拾取常规参数。或者可能会出现视觉伪像。
常量缓冲区的数据布局可能因图形 API 而异。这意味着 SetConstantBuffer
可能会覆盖数据或将变量设置为错误的值。有关更多信息,请参阅 为不同的图形 API 编写着色器。
在使用非空 ComputeBuffer 或 GraphicsBuffer 调用此函数后,您将无法手动设置覆盖的常量缓冲区内变量的值。对 ComputeShader.SetFloat 和类似函数的调用(其中给定的属性名称 ID 指向覆盖的常量缓冲区内的变量)将无效。
常量缓冲区绑定到 ComputeShader 中的所有内核。