Руководство API скрипты

ComputeBuffer

класс в UnityEngine / Реализовано в: UnityEngine.CoreModule

Описание

Буфер данных графического процессора, в основном для использования с вычислительными шейдерами.

Программам

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

Вычислительные буферы всегда поддерживаются вычислительными шейдерами. Поддержка вычислительных шейдеров может быть запрошена во время выполнения с помощью SystemInfo.supportsComputeShaders. Дополнительную информацию о платформах, поддерживающих вычислительные шейдеры, см. на странице руководства Вычислительные шейдеры. В обычных графических шейдерах для поддержки вычислительного буфера требуется как минимум модель шейдера 4.5.

Для ComputeBuffer, который использует счетчик, платформы Metal и Vulkan не имеют встроенных счетчиков и используют отдельные небольшие буферы, которые действуют как счетчики внутри. Эти небольшие буферы привязываются отдельно от ComputeBuffer и учитываются в соответствии с пределом возможных связанных буферов (31 для Metal, исходя из устройства для Vulkan).

На стороне шейдера ComputeBuffers со значением по умолчанию ComputeBufferType сопоставляются с StructuredBuffer и RWStructuredBuffer в HLSL.

Смотрите так же: класс ComputeShader, Shader.SetGlobalBuffer, Material.SetBuffer, Compute Shaders.

Свойства

count Количество элементов в буфере (только для чтения).
name Метка отладки для ComputeBuffer. Это имя отображается в инструментах профилирования и отладки фреймов, где это поддерживается.
stride Размер одного элемента в буфере (только для чтения).

Конструкторы

ComputeBuffer Создаёт вычислительный буфер.

Публичные Методы

BeginWrite Начинает операцию записи в буфер
EndWrite Завершает операцию записи в буфер
GetData Чтение значений данных из буфера в массив. Массив может использовать только непреобразуемые типы.
GetNativeBufferPtr Получает собственный (основной графический API) указатель на буфер.
IsValid Возвращает значение true, если этот вычислительный буфер действителен, и значение false в противном случае.
Release Освобождение вычислительного буфера.
SetCounterValue Устанавливает значение счетчика буфера добавления/использования.
SetData Устанавливает буфер со значениями из массива.

Статические Методы

CopyCount Копирует значение счетчика буфера добавления/потребления в другой буфер.
Вы можете отблагодарить автора, за перевод документации на русский язык. Донат
API скрипты 2021.3