Применить экземпляр GPU для Particle System во Встроенном Render Pipeline
GPU instancing обеспечивает значительное повышение производительности по сравнению с CPU rendering. Вы можете использовать его, если хотите, чтобы ваша система частиц отображала Сетка частицы (в отличие от стандартного режима отображения отображения billboard частицы.
Чтобы иметь возможность использовать GPU instancing с вашими системами частиц:
Установите свой Particle System’s рендерер режим до Сетка
Используйте шейдер для рендерера материала, который поддерживает GPU Инстансирование
Запустите проект на платформе, поддерживающей инстанционирование GPU
Чтобы разрешить GPU экземплярование для системы частиц, вы должны установить флажок Enable GPU Instancing в модуле Рендерер вашей системы частиц.
Unity поставляется со встроенным частичным шейдером, который поддерживает GPU instancing, но материал частиц по умолчанию не использует его, так что вы должны изменить это, чтобы использовать GPU Частичные шейдеры, которые поддерживают GPU instancing вызывается Частицы/стандартная поверхность. Чтобы использовать его, вы должны создать свой собственный новый материал, и установить шейдер материала на Частицы/стандартная поверхность. Затем вы должны назначить этот новый материал в поле материала в Particle System рендерер модуль.
Если вы используете другой шейдер для ваших частиц, он должен использовать ‘#pragma target 4.5’ или более высокий. См. Shader Compile Targets подробнее. Это требование выше, чем для обычного GPU instancing в Unity, потому что Particle System записывает все данные своих экземпляров в один большой буфер, а не разбивает инстансинг на несколько вызовов отрисовки.
Примеры пользовательских шейдеров
Вы также можете написать собственные шейдеры, которые используют GPU instancing. Дополнительные сведения см. в следующих разделах:
- Система частиц GPU Инстансирование в поверхностном шейдере
- Система частиц GPU Создание экземпляра в пользовательском шейдере
- Настройка данных экземпляра, используемых Particle System (для работы вместе с пользовательскими потоками вершин)