Optimizing a Unity game, Part 1. Batching

Поділитися
Вставка
  • Опубліковано 20 вер 2024

КОМЕНТАРІ • 95

  • @slava7522
    @slava7522 4 роки тому +68

    *Для тех, кто использует URP/HDRP*
    Dynamic Batching будет находиться в последней вкладке созданного профиля рендерера

    • @maldok4087
      @maldok4087 4 роки тому +2

      Спасибо, помогло

    • @dorian_erty
      @dorian_erty 2 роки тому

      Где? Я не могу там найти

    • @necoray1302
      @necoray1302 2 роки тому +2

      Большое спасибо, что упомянул эту фичу!

    • @alexkirra3802
      @alexkirra3802 Рік тому

      Где-где?

    • @uralfansoft
      @uralfansoft Рік тому

      Закрепите коммент пжлста

  • @Lord_of_the_Fridge
    @Lord_of_the_Fridge 4 роки тому +27

    Класс. Отлично получается, продолжай в том же духе :)
    Самое необходимое, коротко и понятно.

  • @Netry27
    @Netry27 4 роки тому +5

    Попал на видос в рекомендациях.
    Очень этому рад, теперь иду смотреть на батчинг во всех проектах.
    Жду новых видео и интересных тем.
    Подписка обязательная.

  • @МирославМалюсейко
    @МирославМалюсейко 2 роки тому +9

    В игре процедурно генерируется данж из тайлов, потому было много раздельных объектов. Но одна только настройка динамического батчинга снизила батчи с 4-5к до 100-200. Вообще не ожидал такой разницы, так что большое спасибо.)

  • @schwut
    @schwut 3 роки тому +4

    Чувак, офигенные видосы делаешь: кратко, емко, без воды, хорошая дикция - топ на русском ютубе, продолжай в том же духе!

  • @ЕльХвойный
    @ЕльХвойный Місяць тому

    Спасибо автору за освещение темы оптимизации

  • @georgyushkevich8448
    @georgyushkevich8448 Рік тому +2

    Если вы используете URP или HDRP и SRP Batacher (включен там по умолчанию) - то количество батчей перестает быть актуальным параметром.
    Ну и вообще использование батчинга легкое, только если у вас проект из кубов с одинаковым материалом. Если у вас сложная графика, то там уже всякие проблемы возникают - нужно минимизировать количество шейдеров и материалов в сцене, максимально использовать атласы - только тогда батчинг будет давать какой-то эффект ощутимый.

  • @who-1880
    @who-1880 4 роки тому +13

    Ее чувак, спасибо. В игре на телефоне жутко лагало, ФПС упал до критический 3 ФПС. Ты спас ситуцию. Лайк и Подписка!) Было выше 700DC, стало не выше 500

  • @Kot-Alenya
    @Kot-Alenya 4 роки тому +6

    Спасибо за видео, продолжай в том же духе! Удачи

  • @thedeiw1289
    @thedeiw1289 2 роки тому +1

    Очень редко пишу коментарии, но огромное спасибо. Коротко, понятно и без воды. Продолжай в том же духе)

  • @psy_gamer
    @psy_gamer 4 роки тому +3

    Отличный ролик!
    Буду ждать новых)

  • @Doolpany
    @Doolpany 7 місяців тому +1

    Круто , но не хватает про mesh combiner и атласы для ui . Т.к ладно батчи уменьшать , но проблема идет от draw calls, если их уж слишком много , то буст небольшой даст , в 2 раза это максимум . Но вот если засунуть все меши в одну сетку , вместо 1500 draw calls будет один . Насчет динамических не уверен , решение для динамических в твоем видео оптимально , но все же это тоже можно скомбинировать .

  • @Ligul
    @Ligul 4 роки тому +2

    Ого, весьма неплохой ролик! Я, пожалуй, даже подпишусь)

  • @dark_node6173
    @dark_node6173 Рік тому +1

    Бро, это круто! Снизил батчинг с 1200 до 200-300, И снял нагрузку с гпу аж на 60%!!!!!! Просто Лайк, респект и уважуха!

    • @Woolf530
      @Woolf530 5 місяців тому

      а фпс не изменился )) Потому, что для ПК что 300 батчей, что 1200 - ниочем, слишком мизерная нагрузка. Нормальная нагрузка в DC для современных видеокарт, это 3-8 тыс DC

  • @thebad7628
    @thebad7628 4 роки тому +2

    Огромное спасибо!!!

  • @CyberYurius
    @CyberYurius 2 роки тому +1

    Спасибо за полезные уроки! Сними пожалуйста видео про оптимизацию и настройку проекта под андроид!

  • @fantomsung1430
    @fantomsung1430 Рік тому +1

    0:00 Я точна так-же думаю но не на Unity а на Unreal Engine

  • @Андрей-в7и6ь
    @Андрей-в7и6ь 3 роки тому

    Очень полезная инфа, спасибо! лаконично, без растягивания времени, круто)

  • @call_me_ondreo
    @call_me_ondreo 4 роки тому +1

    Чисто лукас

  • @ОлексійВискворкін
    @ОлексійВискворкін 4 роки тому +7

    В первую очередь оптимизация террейна под мобильные платформы)Интересно,может что нового узнаю.

  • @АлексейЛебедев-ю4ж

    низкий поклон, вы супер!

    • @persontashik_z
      @persontashik_z Рік тому

      Все поклонения только Аллаху!!!

  • @gregorykl2317
    @gregorykl2317 3 роки тому

    Круто! Спасибо! Понятно и интересно

  • @PavelStr-x5w
    @PavelStr-x5w Рік тому

    Спасибо за урок!!

  • @АйнурБижанова-б6у
    @АйнурБижанова-б6у 3 роки тому

    Спасибо тебе продолжай в том же духе

  • @ОлегМашков-я8х
    @ОлегМашков-я8х 3 роки тому

    Отличное видео.

  • @Natharcheck
    @Natharcheck 4 роки тому +1

    Лайк , подписка !!!!!!

  • @mastervolodsobeck5176
    @mastervolodsobeck5176 4 роки тому

    Супер, 100% огромное сенкс!

  • @FONORX
    @FONORX 3 роки тому +2

    Расскажите про коллайдеры. Как на сложную многополигональную модель добавить свой собственный простой коллайдер.

  • @КириллНекирилл-э4т
    @КириллНекирилл-э4т 4 роки тому +1

    Благодаря этому видео я устроился миддлом+++++

    • @oleksandrmartysh7534
      @oleksandrmartysh7534 2 роки тому +1

      А я сеньором. И мне сразу в первый день работы дали личный кабинет и Роллс-Ройс. очень полезное видео! )))

  • @ХуТава-ц9н
    @ХуТава-ц9н 3 роки тому +17

    Спасибо помогло с 150 до 300 фпс поднялося

    • @fcockroach
      @fcockroach Рік тому

      @@kot-o-kot бред же, человек не написал что за проект. что за железо у него, какое разрешение экрана, может он там в 360п запустил игру с rtx 4090). На каком-то железе эти цифры могут быть ниже. Не у всех же топовое железо. Так что увеличение производительности в 2 раза еще как имеет смысл, особенно с минимальными трудозатратами. Больше людей сможет сыграть в игру, меньше будет негативных отзывов про оптимизацию.

    • @fcockroach
      @fcockroach Рік тому

      @@kot-o-kot это шутка?), если игра идет в макс 60 фпс на 360п, то в 1080 она будет идти 30-40фпс, возможно даже хуже, у человека же х2 производительности и неважно 150 там было или 30, важен множитель/процент. Господи, речь идёт о разработке игр, если у конечного пользователя игра идет в максимум 60фпс, то без этих настроек шла бы намного хуже, это очевидно ведь. Удачи

  • @mrgoodpeople
    @mrgoodpeople 7 місяців тому

    Самое тормозное, что может быть в Unity, это если создавать например для каждого дерева отдельный GameObject. Вот тогда это будет ужасно глючить. Вместо этого нужно сделать всё в одном меше, где каждое дерево будет отдельным треугольником или их группой. Ну и т.п.

  • @ДневникЖижы
    @ДневникЖижы Рік тому +1

    Dynamic batching сам по себе достаточно ресурсоемкий. В некоторых проектах он может ухудшить производительность.

  • @ПаутовНиколай-з1э
    @ПаутовНиколай-з1э 9 місяців тому

    От статического батчинга сильно увеличивается размер билда, так что он не бесплатный и не всегда подойдет

  • @АлексейЛебедев-ю4ж

    супер ролики а то все кругом как установить движок)

  • @electron4ik
    @electron4ik 2 роки тому

    У меня изначально было 120 fps и 20 batches. Сейчас 150 fps и 12 batches. КРУТО РЕКОМЕНДУЮ!!!!!!!!!!

  • @DaS_10
    @DaS_10 11 місяців тому

    0:53 то чувство когда у тебя 20к+

  • @ademard
    @ademard 4 роки тому +3

    Спасибо огромное! А стоит ли включать "GPU Instancing" для материалов статических объектов?

    • @insaneone-7220
      @insaneone-7220  4 роки тому +2

      В общем, нет, но ничего плохого не случится если включить. Просто ничего не произойдёт, т.к. Static Batching работает отдельно.

  • @mrgoodpeople
    @mrgoodpeople 7 місяців тому

    Со свойствами Static может быть вот какая проблема. Представьте, что у вас например ависимулятор. Ваш самолёт быстро пролетает тысячи метров. Это приведёт к проблемам с дрожанием камеры. Что делают? Ну обычно все объекты помещают в общий контейнер и периодически его смещают, чтобы координаты камеры не были очень большими. Дрожание пропадает. Но ведь в этом случае у нас ВСЕ объекты на сцене перестают быть статическими, что делать в таком случае. Поможет ли кратковременное (на один кадр) снятие через код свойства Static и возвращение его обратно, чтобы Unity всё правильно обработал?

  • @skt5659
    @skt5659 3 роки тому +1

    Почему то очень сильно растет вес apk файла, если делать неподвижные элементы статическими(

  • @mrgoodpeople
    @mrgoodpeople 7 місяців тому

    Кстати у меня у одного статистика в Unity довольно бесполезная в плане FPS, потому что очень сильно плавает в зависимости от того, какой объекты выделен в сцене и свойства которого отображаются справа. Я заметил, что при полном снятии выделения FPS может быть ниже, а если выделить какой-то (непонятно даже какой) объект, то FPS вдруг резко повышается, иногда в 1.5 раза, а порой и в 2. Вообщем окно статистики ведёт себя очень странно.

  • @FAKKER_rap
    @FAKKER_rap 6 місяців тому

    Окуклинг Куколдинг каждый раз забивает папку Occlusion миллионами файлов которые нужно удалять по часу вручную 👍 чтобы на 97% не застревало

  • @spiritofancientwherewolf149
    @spiritofancientwherewolf149 Рік тому +2

    Херасе ты молодец. Научил инстансингу. Кролик да будет тебе известно что ты не динамический батчинг в GPU inctancing включаешь а включаешь его под конкретный шейдер это раз! А во вторых ты его банально включаешь для статика на данном материале. Покажи магию динамика батча на 2000 персонажей одновременно. Что за бред ты вообще несешь.

  • @Гыгы
    @Гыгы 4 роки тому +1

    Enable GPU Instancin можно включать для всех материалов, или только для тех, которые используются на динамических объектах?

    • @insaneone-7220
      @insaneone-7220  4 роки тому

      Желательно только для тех, которые на динамических объектах. На статические объекты включение не должно влиять в принципе, т. е. можно было бы включить для всех, но у меня несколько раз было странное поведение статики с этой галочкой, поэтому я не включаю для неё в своих проектах обычно.

  • @VolkGam
    @VolkGam 3 роки тому +1

    Спасибо! Не знаете, можно ли написать скрипт, который пробежится по всем материалам проекта и установит галочку Enable GPU Instancing? А то это нереально сделать вручную... ) Ща прогуглю...

  • @Douks
    @Douks 3 роки тому

    А я не понял, что означает "Saved by batching"?

  • @TheFenix717
    @TheFenix717 2 роки тому +1

    Я не пойму, помоги пожалуйста! У меня в static пишется: Batches 250, FPS:350, ничего не тормозит, но при этом видюха нагевается до максимум, вентиляторы начинают работать как двигатель самолёта! В чем проблема??

    • @SezKiTo
      @SezKiTo Рік тому

      Устройство обрабатывает больше, чем должно, а может проблема с оборудованием, или драйверами

    • @stasonick
      @stasonick Рік тому

      сделай ограничение FPS

  • @СергейКихно-ж9ы
    @СергейКихно-ж9ы 4 роки тому

    нормас

  • @ShiroKira-j2o
    @ShiroKira-j2o 4 місяці тому

    Здравствуйте. Нужно ли включать static batching у родительского объекта в котором дочерние двигаются? и наоборот если родительский объект двигается, а дочерние не двигаются.

    • @insaneone-7220
      @insaneone-7220  3 місяці тому +1

      Включать только у статичных объектов. Если дочерние двигаются - скорее всего, смысла включать нет.

  • @yingwai8668
    @yingwai8668 Рік тому

    От куда у тебя +100 фпс? У меня лимит в 75, и нигде не могу найти как его отключить. Помогите!

  • @gomandobry
    @gomandobry Рік тому

    Насчет тормознутости не знаю. Постоянно чекаю разные инди игры на анриале. Вот что реально жутко лагает и спайкает, а игры на юнити как правило хуже выглядят но стабильно работают. Я не говорю что анриал тормознутый, просто начинающие разрабы парой кликов бездумно накручивают графику

  • @glorytoukraine429
    @glorytoukraine429 3 роки тому +2

    Если честно, то после всего этого количество батчей как было так и осталось, а вот ФПС с 450 упал до 160...

  • @nikart2502
    @nikart2502 3 роки тому +2

    а это нормально, что у меня показывается 1200 фпс?)

    • @insaneone-7220
      @insaneone-7220  3 роки тому +1

      Нормально, но лучше использовать Application.targetFramerate, чтобы ограничить это значение и не использовать лишние ресурсы устройства. Ну и да, этот вариант оптимизации при таком fps вряд ли нужен)

    • @nikart2502
      @nikart2502 3 роки тому

      @@insaneone-7220 спасибо

  • @hagwe
    @hagwe 2 роки тому

    Static batching и динамик не работает почему то в URP. Saved by batching всего равен нулю. В чем причина?

    • @insaneone-7220
      @insaneone-7220  2 роки тому +1

      Если не ошибаюсь, там батчинг работает по-своему и в этом окошке результаты его работы не отображаются. Нужно использовать инструменты URP для этого, но я не подскажу как их найти, т. к. не пользуюсь URP)

    • @hagwe
      @hagwe 2 роки тому

      @@insaneone-7220 да я уже нашел инфу. Оказывается в новых версиях URP есть SRP Batching который как раз всё делает сам. И инфа о его работе в Stats не показывается, но фпс выше. Пробовал отключить SRP и Saved by batching сразу заработал в статистике ,но фпс чутка упал. Т.е. получается сейчас система работает немного по другому, но лучше чем было раньше.

  • @pccompanysimulatorproject4802
    @pccompanysimulatorproject4802 3 роки тому

    У меня батчингом удалось добиться с 30fps до 58

  • @MrFelsS
    @MrFelsS Рік тому

    Разрабам ЕФТ над отправить

  • @ДанилЛиверный
    @ДанилЛиверный 4 місяці тому

    300-500? Я со своими 170000

  • @georgii_
    @georgii_ Місяць тому

    У меня максимум 30 фпс помемуто

  • @pepzzey9143
    @pepzzey9143 3 місяці тому

    спасибо, фпс упал с 100 до 60👍

  • @БольнойУёбок
    @БольнойУёбок 2 роки тому

    Хз у меня конечно не лагало но как было 691 так и осталось

  • @pccompanysimulatorproject4802
    @pccompanysimulatorproject4802 3 роки тому

    У меня из за бага при запуске моей игры просто логотип unuty белый и фон белый. И получается ,что просто белый экран ,а понять то что игра на unity сложно

    • @МинМин-о8т
      @МинМин-о8т 3 роки тому

      Измени цвет надписи unity на чёрный. Или фон свой нарисуй

  • @vasyljrorshak7455
    @vasyljrorshak7455 2 роки тому

    Ололо, не надо снимать о том о чем вы не понимаете либо не договариваете. Всем непонятливым читать справку про статический батчинг, и что будет если включить в него густой лес или приведи господи траву. Оно работает при целом ряде условий, если условия не те что надо, то вместо оптимизации получите окирпичивание, что собственно можно наблюдать в Planeta Nomad, это раз. 2 это то, что пока у вас стабильный нормальный фпс не насилуйте рабочую игру оптимизацией. Хотите оптимизировать, прикрутите к объекту лод, Выключите нпс которые далеко от персонажа.

  • @gameplaystories4130
    @gameplaystories4130 4 роки тому

    До твоего видео - 500 фпс, после - 350, спасибо блен

    • @insaneone-7220
      @insaneone-7220  4 роки тому +1

      Если недостаточно разобраться в вопросе и не такое может быть)

    • @gameplaystories4130
      @gameplaystories4130 4 роки тому

      Insane One - Разработка игр Друг мой, у тебя у самого фас увеличился лишь на 10

    • @insaneone-7220
      @insaneone-7220  4 роки тому +1

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

    • @gameplaystories4130
      @gameplaystories4130 4 роки тому

      @@insaneone-7220 Просто у меня почему-то 400 фпс вместо 1600 и я никак не могу понять, почему

    • @insaneone-7220
      @insaneone-7220  4 роки тому +1

      @@gameplaystories4130 если у тебя было 1600 до оптимизации, то вероятно, что пока в проекте ничего оптимизировать и не надо) Любой алгоритм оптимизации ведь тоже требует вычислительных ресурсов на свою работу.

  • @vg-vovagatova289
    @vg-vovagatova289 Рік тому

    У меня очень сильно грузит процесс: semaphore.waitforsignal
    У меня игра для пк, как мне исправить это? Потому что-то больше 30%+