ComputeBuffer
класс в UnityEngine
Выполнено в:UnityEngine.CoreModule
Описание
GPU буфер данных, в основном для использования с вычислительными шейдерами.
ComputeShader программам часто требуется читать & записывать произвольные данные в буферы памяти. Именно для этого и предназначен класс ComputeBuffer: вы можете создавать & заполнять такие буферы из кода скриптов и использовать их в вычислительных или обычных шейдерах.
Вычислительные буферы всегда поддерживаются в вычислительных шейдерах. Поддержка вычислительных шейдеров может быть запрошена во время выполнения с помощью SystemInfo.supportsComputeShaders. См. Вычисление шейдеров В обычных графических шейдерах поддержка вычислительного буфера требует минимального уровня поддержки, который может быть достигнут с помощью модель шейдера 4.5.
Для ComputeBuffer, который использует счетчик, платформы Metal и Vulkan не имеют собственных счетчиков и используют отдельные небольшие буферы, которые действуют как счетчики внутри. Эти небольшие буферы связаны отдельно от ComputeBuffer и учитываются в пределах возможных связанных буферов (31 для Metal, основанный на устройстве для Vulkan).
На стороне шейдера, ComputeBuffers с default ComputeBufferType карта к StructuredBuffer<T> и RWStructuredBuffer<T> в HLSL.
Дополнительные ресурсы: ComputeShader class, Shader.SetGlobalBuffer, Material.SetBuffer, Вычисление шейдеров обзор.
Свойства
| Свойство | Описание |
|---|---|
| count | Количество элементов в буфере (только для чтения). |
| name | Метка отладки для вычислительного буфера (только для сетера). |
| stride | Размер одного элемента в буфере в байтах (только для чтения). |
Конструкторы
| Конструктор | Описание |
|---|---|
| ComputeBuffer | Создать вычислительный буфер. |
Открытые методы
| Метод | Описание |
|---|---|
| BeginWrite | Начинает операцию записи в буфер |
| EndWrite | Завершает операцию записи в буфер |
| GetData | Чтение значений данных из буфера в массив. Массив может использовать только blittable типы. |
| GetNativeBufferPtr | Получить собственный (базовый график API) указатель на буфер. |
| IsValid | Возвращает true, если вычислительный буфер допустим, и false в противном случае. |
| Release | Освободить вычислительный буфер. |
| SetCounterValue | Устанавливает значение счетчика буфера добавления/потребления. |
| SetData | Устанавливает буфер со значениями из массива. |
Статические методы
| Метод | Описание |
|---|---|
| CopyCount | Копирование значения счетчика из буфера добавления/потребления в другой буфер. |