Видео недоступно для предпросмотра
Смотреть в Telegram
Пригодился GPU Instancing для рендера десятков тысяч схожих объектов в одном кадре. GPU Instancing позволяет отправлять параметры напрямую видеокарте и не использует компоненты Unity.
Скрипт создаёт матрицу позиции и поворота объектов, а Graphics.DrawMeshInstanced принимая мэш и материал рисует объекты. Максимальный предел 1023 объекта за один вызов.
На моей сцене стабильный FPS начинает падать примерно после 70 000 объектов. На других сценах при меньшем количестве освещения и постэффектов можно спокойно рисовать до миллиона объектов.
Сейчас разбираюсь почему наличие Point Light в кадре умножает количество прорисовок примерно в 5 раз даже при отсутсвии вблизи объектов, которые попадают в GPU Instacing.
Ссылка на скрипт, который делает магию.
Скрипт создаёт матрицу позиции и поворота объектов, а Graphics.DrawMeshInstanced принимая мэш и материал рисует объекты. Максимальный предел 1023 объекта за один вызов.
На моей сцене стабильный FPS начинает падать примерно после 70 000 объектов. На других сценах при меньшем количестве освещения и постэффектов можно спокойно рисовать до миллиона объектов.
Сейчас разбираюсь почему наличие Point Light в кадре умножает количество прорисовок примерно в 5 раз даже при отсутсвии вблизи объектов, которые попадают в GPU Instacing.
Ссылка на скрипт, который делает магию.