Material.SetConstantBuffer

切换到手册
public void SetConstantBuffer (string name, ComputeBuffer value, int offset, int size);
public void SetConstantBuffer (int nameID, ComputeBuffer value, int offset, int size);

参数

name要覆盖的常量缓冲区的名称。
value用来覆盖常量缓冲区值的 ComputeBuffer,或为 null(用于清除绑定)。
offset相对于要绑定的 ComputeBuffer 起始位置的偏移(以字节为单位)。必须是 SystemInfo.MinConstantBufferAlignment 的倍数,或为 0(如果该值为 0)。
size要绑定的字节数。
nameID要覆盖的常量缓冲区的着色器属性 ID。

描述

将 ComputeBuffer 设置为材质的指定常量缓冲区。

可使用此方法覆盖驻留在具有给定名称的常量缓冲区内的所有着色器参数。使用给定 ComputeBuffer 的内容覆盖这些参数。要使用此方法,以下必须为 true: 必须使用 ComputeBufferType.Constant 标志创建了 ComputeBuffer。 常量缓冲区的数据布局必须与 ComputeBuffer 中提供的数据完全匹配。 对于给定常量缓冲区,材质的所有不同着色器变体都必须是相同的常量缓冲区布局。

使用非 null ComputeBuffer 调用此函数后,如果 Material.SetFloat 等包含指向被覆盖常量缓冲区内的变量的参数名称,则对它们的任何调用均无效。