Объявление
public NativeArrayПараметры
computeBufferStartIndex | Смещение в количестве элементов, для которых будет выполняться операция записи |
count | Максимальное количество элементов, которые будут записаны |
Возвращает
NativeArray
Описание
Начинает операцию записи в буфер
Используйте это, чтобы начать операцию записи в буфер. Использование этого метода приводит к меньшему количеству копий памяти, чем при использовании ComputeBuffer.SetData, и поэтому выполняется быстрее. По соображениям совместимости вы можете вызывать этот метод только для буферов, для которых ComputeBufferMode равно ComputeBufferMode.SubUpdates. Если вы вызовете этот метод для буфера с другим ComputeBufferMode, Unity выдаст исключение.
Возвращенный исходный массив указывает непосредственно на память графического процессора, если это возможно. Если запись напрямую в память графического процессора невозможна, возвращенный собственный массив указывает на временный буфер в памяти процессора. Возможность записи напрямую в память графического процессора зависит от многих факторов, включая режим буфера, активное графическое устройство и аппаратную поддержку.
По этой причине содержимое возвращаемого массива не обязательно будет отражать содержимое данных бокового буфера графического процессора. Поэтому возвращаемый массив следует использовать только для записи, а не для чтения.
После записи в массив вызовите ComputeBuffer.EndWrite, чтобы завершить операцию и пометить возвращенный NativeArray как непригодный для использования.
Производительность этого метода зависит от того, может ли он выполнять прямую запись в память графического процессора или нет, но он всегда приводит к меньшему количеству копий памяти, чем при использовании SetData.
Данные, записываемые в возвращаемый исходный массив, должны соответствовать правилам размещения данных используемого графического API. См. [[Вычислительные шейдеры]] для получения информации о межплатформенной совместимости.
Смотрите так же: ComputeBuffer.SetData, ComputeBuffer.EndWrite