Проверить совместимость GameObject с SRP в URP
Совместимость GameObject
В любой данной сцене некоторые GameObjects совместимы с SRP Batcher, а некоторые нет. Совместимый GameObjects использует путь кода SRP Batcher, а несовместимый GameObjects использует стандартный путь кода SRP. Дополнительную информацию см. в Как работает SRP Batcher.
GameObject должен соответствовать следующим требованиям, чтобы быть совместимым с SRP Путь кода пакетного обработчика:
- GameObject должен содержать либо сетку, либо сетку с оболочкой. Он не может быть частицей.
- GameObject не должен использовать MaterialPropertyBlocks.
- Шейдеры, используемые GameObject, должны быть совместимы с SRP Batcher. Дополнительные сведения см. в разделе Совместимость шейдеров.
Совместимость шейдеров
Все освещенные и неосвещенные шейдеры в Universal Render Pipeline (URP) и High Definition Render Pipeline (HDRP) отвечают этому требованию (за исключением частичных версий этих шейдеров).
Для того, чтобы пользовательский шейдер был совместим с SRP Batcher, он должен отвечать следующим требованиям:
- Шейдер должен объявлять все свойства встроенного двигателя в одном постоянном буфере с именем
UnityPerDraw. Например,unity_ObjectToWorldилиunity_SHAr. - Шейдер должен декларировать все свойства материала в одном постоянном буфере с именем
UnityPerMaterial.
Вы можете проверить состояние совместимости шейдера в панели Inspector.