Устранение неисправностей SRP в URP
Вы можете проверить состояние SRP пакетов в окне Frame Debugger. Каждый SRP Batch показывает, сколько вызовов рисования Unity использовали, какие ключевые слова Unity прикрепили к шейдеру, и причину, по которой Unity не объединил этот вызов рисования с предыдущим.
Чтобы проверить состояние партий SRP Batcher:
- В Редакторе откройте Frame Debugger (меню: Окно > Анализ > Frame Debugger).
- В Frame Debugger перейдите в Рендирование Camera > Рендирование непрозрачных.
- Разверните RenderLoopNewBatcher. Нарисуйте список.
- Выберите в SRP партии, которую вы хотите проверить.
В приведенном ниже примере причина заключается в следующем: У узлов есть разные шейдеры. Это значит, что шейдер этого пакета SRP отличается от шейдера предыдущего пакета SRP. Поскольку SRP Batcher использовал другой шейдер, он создал новый пакет. Если у нескольких пакетов SRP мало вызовов отрисовки, это часто означает, что в проекте слишком много вариантов шейдеров.
Если вы пишете свой собственный Scriptable Render Pipeline, вместо использования либо Universal Render Pipeline, либо High Definition Render Pipeline, попробуйте написать общий многоцелевой шейдер с минимальным количеством ключевых слов. Это оптимально, потому что вы можете использовать столько свойств материалов, сколько хотите.