Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public void SetConstantBuffer(int nameID, ComputeBuffer buffer, int offset, int size);

public void SetConstantBuffer(string name, ComputeBuffer buffer, int offset, int size);

public void SetConstantBuffer(int nameID, GraphicsBuffer buffer, int offset, int size);

public void SetConstantBuffer(string name, GraphicsBuffer buffer, int offset, int size);

Параметры

nameID Идентификатор имени свойства для буфера констант в коде шейдера. Используйте Shader.PropertyToID, чтобы получить этот идентификатор.
name Имя буфера для привязки в качестве буфера констант.
buffer Буфер для привязки в качестве буфера констант.
offset Смещение в байтах от начала ComputeBuffer для привязки. Должно быть кратно SystemInfo.constantBufferOffsetAlignment или 0, если это значение равно 0..
size Количество байтов для привязки.

Описание

Задает ComputeBuffer или GraphicsBuffer в качестве именованного буфера констант для ComputeShader.

Используйте этот метод, чтобы переопределить все параметры шейдера в заданном буфере констант содержимым заданного ComputeBuffer или GraphicsBuffer.

Для использования этого метода должны быть выполнены следующие условия:

При использовании ComputeBuffer в качестве параметра он должен быть создан с флагом ComputeBufferType.Constant. Точно так же, когда в качестве параметра используется GraphicsBuffer, он должен быть создан с флагом GraphicsBuffer.Target.Constant. Структура данных буфера констант должна точно совпадать с данными, предоставленными в ComputeBuffer или GraphicsBuffer. Все различные варианты шейдера для этого ComputeShader должны использовать один и тот же макет буфера констант для данного буфера констант.

Если вышеуказанные условия не выполняются, буфер может быть привязан неправильно, и поэтому будут выбраны обычные параметры. В качестве альтернативы могут возникать визуальные артефакты.

После того как эта функция была вызвана с ненулевым ComputeBuffer или GraphicsBuffer, вы больше не сможете вручную установить значение переменной внутри переопределенного буфера констант. Вызовы ComputeShader.SetFloat и т.п., когда заданный идентификатор имени свойства указывает на переменную внутри переопределенного буфера констант, не будут иметь никакого эффекта.

Постоянные буферы привязаны ко всем ядрам в ComputeShader.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3