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