BufferID
структура в UnityEngine.LightTransport
Описание
Уникальный идентификатор для буфера памяти в устройстве.
BufferID служит в качестве непрозрачного манипулятора для буферов памяти, выделяемых через IDeviceContext.CreateBuffer. Буфер может находиться в CPU памяти, GPU памяти или унифицированной памяти, в зависимости от реализации.
BufferID скрывает детали управления памятью и даёт единый интерфейс для:
- Межплатформенное выделение памяти.
- Управление жизненным циклом памяти.
- Тип-безопасные операции буфера через BufferSlice.
BufferIDs должен быть явно уничтожен с помощью IDeviceContext.DestroyBuffer для предотвращения утечки памяти.
// Create buffers for different data types BufferID vertexBuffer = context.CreateBuffer(1000, 12); // 1000 Vector3s BufferID resultBuffer = context.CreateBuffer(64, 108); // 64 SphericalHarmonicsL2
// Create typed slices for safe operations var vertices = new BufferSlice<Vector3>(vertexBuffer, 0); var results = new BufferSlice<SphericalHarmonicsL2>(resultBuffer, 0);
// Use buffers with integrator operations integrator.Prepare(context, world, vertices, 0.1f, 2); var result = integrator.IntegrateDirectRadiance( context, 0, 64, 1024, false, results);
// Cleanup - important to prevent memory leaks context.DestroyBuffer(vertexBuffer); context.DestroyBuffer(resultBuffer);
Свойства
| Свойство | Описание |
|---|---|
| Value | Базовое значение идентификатора буфера. |
Конструкторы
| Конструктор | Описание |
|---|---|
| BufferID | Создайте новый BufferID. |
Открытые методы
| Метод | Описание |
|---|---|
| Slice | Построение типизированного слоя из BufferID. |