GraphicsBuffer
класс в UnityEngine
Выполнено в:UnityEngine.CoreModule
Описание
GPU графический буфер данных, для работы с геометрией или вычисления данных шейдера.
ComputeShader программам часто требуется считывать или записывать произвольные данные из или в буферы памяти, и некоторые алгоритмы отображения требуют более низкого уровня доступа или контроля над геометрическими данными, чем то, что обеспечивает Mesh класс. Вы можете использовать GraphicsBuffer для этих случаев. Вы создаете буферы из скриптов C#, а затем заполняете их данными, используя либо скрипты C#, либо программы вычисления шейдеров.
Графический буфер похож на массив в C# в том, что он имеет ряд элементов (count) одного и того же размера (stride). Вы должны указать предполагаемое использование буфера (target) когда вы создаете GraphicsBuffer; например, вы должны передать GraphicsBuffer.Target.Index для того, чтобы буфер можно было использовать в качестве буфера индекса геометрии.
Когда вы закончите работу с буфером, вы должны вручную высвободить память GPU. Вы можете сделать это с помощью шаблона C# или вызвав Release.
Дополнительные ресурсы: Graphics.RenderPrimitivesIndexed, Graphics.RenderPrimitivesIndexedIndirect, Graphics.CopyBuffer, ComputeShader, Shader.SetGlobalBuffer, Material.SetBuffer.
Свойства
| Свойство | Описание |
|---|---|
| bufferHandle | Внутренний дескриптор этого GraphicsBuffer. Действителен только до освобождения буфера. (Только для чтения) |
| count | Количество элементов в буфере (только для чтения). |
| name | Тег отладки для графического буфера (только для сетера). |
| stride | Размер одного элемента в буфере. Для индексных буферов это должно быть либо 2, либо 4 байта (только для чтения). |
| target | Target, который указывает предполагаемый target(s) этого GraphicsBuffer (только для чтения). |
| usageFlags | Флаги, которые указывают, как этот GraphicsBuffer может быть использован или обновлен (только для чтения). |
Конструкторы
| Конструктор | Описание |
|---|---|
| GraphicsBuffer | Создать графический буфер. |
Открытые методы
| Метод | Описание |
|---|---|
| GetData | Чтение значений данных из буфера в массив. Массив может использовать только blittable типы. |
| GetNativeBufferPtr | Получить собственный (базовый график API) указатель на буфер. |
| IsValid | Возвращает true, если графический буфер допустим, или false в противном случае. |
| LockBufferForWrite | Начинает операцию записи в буфер |
| Release | Освобождение графического буфера. |
| SetCounterValue | Устанавливает значение счетчика буфера добавления/потребления. |
| SetData | Устанавливает буфер со значениями из массива. |
| UnlockBufferAfterWrite | Завершает операцию записи в буфер |
Статические методы
| Метод | Описание |
|---|---|
| CopyCount | Копирует значение счетчика GraphicsBuffer в другой буфер. |