Unity 6.3
0 онлайн 53 гостей 3 в системе
Вход

Устранение неисправностей SRP в URP

Вы можете проверить состояние SRP пакетов в окне Frame Debugger. Каждый SRP Batch показывает, сколько вызовов рисования Unity использовали, какие ключевые слова Unity прикрепили к шейдеру, и причину, по которой Unity не объединил этот вызов рисования с предыдущим.

Чтобы проверить состояние партий SRP Batcher:

  1. В Редакторе откройте Frame Debugger (меню: Окно > Анализ > Frame Debugger).
  2. В Frame Debugger перейдите в Рендирование Camera > Рендирование непрозрачных.
  3. Разверните RenderLoopNewBatcher. Нарисуйте список.
  4. Выберите в SRP партии, которую вы хотите проверить.

В приведенном ниже примере причина заключается в следующем: У узлов есть разные шейдеры. Это значит, что шейдер этого пакета SRP отличается от шейдера предыдущего пакета SRP. Поскольку SRP Batcher использовал другой шейдер, он создал новый пакет. Если у нескольких пакетов SRP мало вызовов отрисовки, это часто означает, что в проекте слишком много вариантов шейдеров.

В окне Frame Debugger вы можете найти подробную информацию об отдельных партиях SRP, в том числе почему SRP Batcher создал новую партию SRP вместо продолжения существующей.
В окне Frame Debugger вы можете найти подробную информацию об отдельных партиях SRP, в том числе почему SRP Batcher создал новую партию SRP вместо продолжения существующей.

Если вы пишете свой собственный Scriptable Render Pipeline, вместо использования либо Universal Render Pipeline, либо High Definition Render Pipeline, попробуйте написать общий многоцелевой шейдер с минимальным количеством ключевых слов. Это оптимально, потому что вы можете использовать столько свойств материалов, сколько хотите.