Unity 6.3
0 онлайн 9 гостей 3 в системе
Вход

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Копирование значения счетчика из буфера добавления/потребления в другой буфер.