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

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 байта (только для чтения).
targetTarget, который указывает предполагаемый target(s) этого GraphicsBuffer (только для чтения).
usageFlagsФлаги, которые указывают, как этот GraphicsBuffer может быть использован или обновлен (только для чтения).

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

Конструктор Описание
GraphicsBufferСоздать графический буфер.

Открытые методы

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

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

Метод Описание
CopyCountКопирует значение счетчика GraphicsBuffer в другой буфер.