Объявление
public void SetConstantBuffer(string name, ComputeBuffer value, int offset, int size);public void SetConstantBuffer(int nameID, ComputeBuffer value, int offset, int size);
public void SetConstantBuffer(string name, GraphicsBuffer value, int offset, int size);
public void SetConstantBuffer(int nameID, GraphicsBuffer value, int offset, int size);
Параметры
name | Имя буфера констант для переопределения. |
value | ComputeBuffer для переопределения постоянных значений буфера или null для удаления привязки.. |
offset | Смещение в байтах от начала буфера для привязки. Должно быть кратно SystemInfo.constantBufferOffsetAlignment или 0, если это значение равно 0. |
size | Количество байтов для привязки. |
nameID | Идентификатор свойства шейдера буфера констант для переопределения. |
Описание
Устанавливает ComputeBuffer или GraphicsBuffer в качестве именованного постоянного буфера для материала.
Этот метод можно использовать для переопределения всех параметров шейдера, находящихся в постоянном буфере с заданным именем. Параметры переопределяются содержимым данного буфера. Чтобы использовать этот метод, должно быть верно следующее: ComputeBuffer или GraphicsBuffer должен быть создан с соответствующим ComputeBufferType.Constant или флаг GraphicsBuffer.Target.Constant. Структура данных буфера констант должна точно совпадать с данными, представленными в буфере. Все различные варианты шейдера для этого Материала должны использовать один и тот же макет константного буфера для данного константного буфера.
После того, как эта функция была вызвана с ненулевым ComputeBuffer, любые вызовы Material.SetFloat и т. д. не будут иметь никакого эффекта, если они содержат имя параметра, указывающее на переменная внутри переопределенного буфера констант.