🎮 10 самых распространенных ошибок Unity-разработчиков (мидл)

Попробуем разобраться как преодолеть наиболее распространенные проблемы и избежать фундаментальных ошибок в новых или существующих проектах на Unity.

🎮 10 самых распространенных ошибок Unity-разработчиков (мидл)
11
11

Используйте методы отсечения окклюзииЭто включено по дефолту и не знаю ни одного проекта, где это кто-то бы отключал.

Используйте статическую пакетную обработку для неподвижных объектов и динамическую пакетную обработку – для движущихсяsrp batcher и resident driver уже давно рекомендуют выключать их, так как dynamic batching тупо медленее, а сортировка по ID у static batching кривая.

> пакетные объекты должны использовать одни и те же материалы
Для srp batcher/resident driver это уже не актуально и батчатся все объекты с общим шейдером.

Не используйте прозрачные текстуры, когда в этом нет необходимостиМожет прозрачные шейдера? Причём тут текстуры?

Уменьшите количество проходов, используйте переменные с меньшей точностью, замените сложные математические вычисления предварительно созданными текстурами поиска.Рубрика "как делать НЕ НАДО"
1) количество проходов в urp/hdrp всегда одно, по дизайну. В builtin тоже почти нет случаев, когда это юзается (кроме outline)
2) переменные с меньшей точностью уже давно не актуальны даже для мобилок. Времена fixed/half остались в эпоху mali400. Для настольных платформ компилятор заменяет на float, без исключения, что бы разработчик не написал.
В добавок, работа с half доставляет очень много "интересных" багов, например при нормализации числа и т.д., когда точность при возведении в степень/логарифме/экспоненте и обратно падает на порядки.
И когда спросишь разработчика "почему ты заменил всё на half и сколько ты сэкономил", никто не скажет, потому что все верят на слово, не проверяя производительность, где-нибудь в renderdoc.

3) Текстуры поиска (lookup) это совет из эпохи 2000 года, когда математика в GPU была медленная. Сейчас математика настолько быстрая (что некоторые команды, например сложение/абсолют/сатурация/ практически бесплатны и занимают 0 тактов), тогда как чтение текстуры из памяти может занимать сотни/тысячи тактов.

и что изменение его положения заставит движок пересчитать весь физический мир зановоГовно совет. Это было исправлено лет 10 назад с выходом unity 5.

Ну и в целом слишком много текста, с которым можно поспорить.
Такое актуально было лет 10-15 назад, но не сейчас.

3
Ответить

А что сейчас?

Ответить