ParticleSystem.SetMaximumPreMappedBufferCounts
Declaration
public static void SetMaximumPreMappedBufferCounts(int vertexBuffersCount, int indexBuffersCount);Параметры
| Параметр | Описание |
|---|---|
| vertexBuffersCount | Максимальное количество кэшированных буферов вершин. |
| indexBuffersCount | Максимальное число кэшированных буферов индексов. |
Описание
Ограничивает количество графической памяти, которое Unity резервирует для эффективного отображения систем частиц.
Для эффективной записи данных частиц в графическую память, Unity использует пул предварительно выделенных вершинных буферов. При отображении большого количества частиц, этот пул увеличится в размере. Если количество частиц впоследствии уменьшится, пул все равно сохранит этот размер.
Поддержание большого пула может сделать будущее отображение более эффективным, в ситуациях, когда отображается большое количество частиц, и пул уже предварительно соответствующим образом увеличен. Однако, большой пул использует больше памяти, поэтому эта функция позволяет установить ограничение на количество буферов в кэше.
Если общее количество видимых частиц достигает предела, Unity выделяет новые буферы и высвобождает их по требованию в кадрах, которые нуждаются в них, вместо того, чтобы сохранять их для повторного использования в нескольких кадрах. Это может быть медленнее, но предотвращает использование кэшем слишком много памяти.
Современные графические APIs, такие как DirectX12, Vulkan и Metal, не используют предварительно выделенный пул вершинных буферов, потому что они могут эффективно работать без него. Этот метод не делает ничего на этих устройствах.