Оптимизация игры в Unity от 100 до 2000 fps. Объединение объектов и свет /Как создать игру [Урок 87]

Поделиться
HTML-код
  • Опубликовано: 2 фев 2025

Комментарии • 137

  • @unidentifiedaccount9177
    @unidentifiedaccount9177 4 года назад +10

    Юнити не увлекаюсь, но спасибо за видос, а ютубу за рекомендации

  • @d1kiywolf
    @d1kiywolf 2 года назад +9

    Огромнейшее спасибо! Делаю игрушку под андроид, со 130 батчей (и 300 фпс в эдиторе) получилось всего 20 (и под 500 фпс), как раз то, что надо!

  • @skulfio5179
    @skulfio5179 4 года назад +9

    Идея для видео: "Топ лучших ассетов для оптимизации игры из asset store"

  • @KiZhuGames
    @KiZhuGames Год назад

    Тема классная, есть еще вариант запекания анимаций в шейдер, тоже сейвит много

  • @eTrutim
    @eTrutim 2 года назад +5

    2:40 Можно юзануть ProBuilder, там выжелаешь объекты которые тебе нужно обьеденить в один, и нажать на Merge Object, ну а так видос полезный, спасибо.

    • @viknsagit
      @viknsagit 2 года назад +1

      Только он коряво работает

  • @Andrei_Kozlov
    @Andrei_Kozlov Год назад

    Привет, бесконечная благодарность за то что делишься знаниями! Можешь еще записать туториал по настройке и оптимизации URP для мобильных 3D игр, цены бы не было а то толкового ничего нету. От создания до настройки 3 профилей: Low, Mid, High.

    • @igrodelsky
      @igrodelsky  Год назад

      Здравствуй. Меня пока вполне устраивает встроенный рендеринг, так что в ближайшее время на URP или HDRP переходить не собираюсь. А соответственно и уроков по ним не будет.

  • @Qqqhhgg
    @Qqqhhgg 4 года назад +2

    Спасиб ! Как всегда польза! Как там успехи по VR Части? не разочаровался? я тоже планирую брать.

    • @igrodelsky
      @igrodelsky  4 года назад +2

      Ковыряю виар потихоньку, пока отвлекают чужие проекты сильно. Но скоро планирую основательно приложиться.

  • @Nerilawer
    @Nerilawer 8 месяцев назад

    как оставить колайдеры которые
    были? галочки тыкал как итог нчиего

  • @azncore5444
    @azncore5444 10 месяцев назад

    Привет! Не знаю писал ли кто, но я хочу просто внести немного ясности для тех кто немного не в теме. Этот способ замечательный! Но например в фпс игре с большой локацией, к большому сожалению, такой метод не прокатит. Есть способ оптимизации - Occlusion Culling, рендерит то что в пределах видимости камеры игрока. Он тоже добавляет прирост к фпс, значительный. Но скомбинировать эти два метода не выйдет 😢. Не будет работать такой метод с вариантом для тех у кого фпс проект - потому что Occlusion Culling будет считать цельный меш - за 1 объект, и он будет рендериться весь, даже когда пиксель этого объекта попадет в зону видимости камеры игрока. Между этими двумя методами, occlusion как по мне, дает больший прирост фпс. Хотя я могу быть не прав! Если это так, то буду признателен за разъяснения. Пока писал, подумал, что на самом деле, можно и скомбинировать эти два метода. Например просто комбинируя определенные меши в один. Например, не всю карту в один меш, а в определенной комнате, все объекты что находятся в ней. Так карта будет работать за счет Occlusion Culling, а множество «пропов» статичных, будут как 1 объект. Хотя тут тоже, есть свои плюсы и минусы

    • @igrodelsky
      @igrodelsky  10 месяцев назад

      Здравствуй. Способов оптимизации много. Одного универсального решения нет. Это всегда поиск компромиссов и индивидуальный подход. Что в одном случае даст прирост, то в другом может дать просадку. Нужно всё пробовать в каждом конкретном случае и находить наиболее оптимальные решения.

    • @azncore5444
      @azncore5444 10 месяцев назад

      @@igrodelsky полностью согласен. Даже между occlusion и вашим решением в видео, уверен, есть золотая середина. Хорошее видео, спасибо.

  • @Андрей-в7и6ь
    @Андрей-в7и6ь 3 года назад +2

    2000 fps, круто! У меня пустая сцена идёт в 250-300 fps. Правда я на ноуте. А как у тебя такое значение получается? просто железо мощное?

    • @igrodelsky
      @igrodelsky  3 года назад

      Мощность железа относительна, как и всё в этом мире. Конечно, чем мощнее комп, тем больше будет фпс в одной и той же сцене.

    • @Андрей-в7и6ь
      @Андрей-в7и6ь 3 года назад +1

      @@igrodelsky спасибо за видосы, интересно, особенно новичку, как я)

  • @malitver
    @malitver Год назад

    здравствуйте Владимир такой вопрос, если я скачиваю платные ассеты с других источинках бесплатно то когда игра выложится на Стим как например то будут ли какие-то вопросы по поводу авторских прав или могут запросить чек на покупку данных ассетов?

    • @igrodelsky
      @igrodelsky  Год назад

      Здравия. Воровать грешно.

    • @malitver
      @malitver Год назад

      @@igrodelsky я и не ворую, сам ассет уже нигде нету а на самом сайте где продавался был удален и есть только на посторонних

    • @igrodelsky
      @igrodelsky  Год назад

      @@malitver Напиши название ассетов, которые негде купить.

    • @malitver
      @malitver Год назад

      @@igrodelsky TimeLight Cyricum

    • @igrodelsky
      @igrodelsky  Год назад

      @@malitver Такого ассета не существует.

  • @rybinded
    @rybinded Год назад

    Подскажите, а как объединить, например, деревья если я добавлял их на террейн кистью (инструментом террейна), а не вручною по одному? Это возможно? Просто если добавлять деревья кистью, то их не видно в иерархии сцены и нельзя сделать родительский объект чтоб накинуть на него скрипт. Буду очень благодарен за ответ.

    • @igrodelsky
      @igrodelsky  Год назад

      Во встроенной системе ландшафта уже есть своя оптимизация травы и деревьев, которые в этой системе расставлены.

    • @rybinded
      @rybinded Год назад

      @@igrodelsky Это да, но... Моделирую ситуацию. У вас на локации лес. Если вы делаете его из одного дерева (ставите рандомный размер и вращение), то проблем не будет. Такой лес будет потреблять всего лишь один вызов отрисовки (draw call). Но, если у вас лес из нескольких деревьев, то Юнити будет рендерить их слоями. То есть сначала самые последние деревья первого типа, потом деревья второго типа что стоят перед ними, потом опять деревья первого типа что стоят еще ближе к игроку и т.д. То есть, один вызов отрисовки леса (если дерево одно) может превратится в 50 если деревьев хотя би 2 и они намешаны по всему лесу.

    • @igrodelsky
      @igrodelsky  Год назад +1

      @@rybinded Сделай один вариант через встроенный ландшафт, а другой аналогичный через ручную расстановку с объединением и сравни фпс. Не нужно забывать о том, что деревья, которые не попадают в камеру, не рендерятся. А если все деревья будут объединены в один меш, то по сути все полигоны всех деревьев будут рендериться сразу, даже если видно только 1 полигон из них. Это уже не говоря про оклюжн кулинг. Имеет же значение не только кол-во отрисовок, но и то, сколько одна отрисовка занимает времени.

  • @tasty9555
    @tasty9555 3 года назад +1

    Но ведь тогда нельзя будет использовать occulusion culling

    • @igrodelsky
      @igrodelsky  3 года назад

      Всё можно совмещать в том или ином виде. Для каждой сцены есть свои способы оптимизации.

  • @mactepmac
    @mactepmac 6 месяцев назад

    У меня почему то все наоборот. Хотя Batches падает ФПС тоже падает после объединения мешей. Проверил на Unity 2022.3.30 и на Unity 6. HDRP. Может кто-то сталкивался с такой проблемой?

    • @igrodelsky
      @igrodelsky  6 месяцев назад

      Может у объединённого меша слишком много полигонов получается. Попробуй разделить на 10-20 групп и объединять в один меш не сразу все объекты в сцене, а по группам.

    • @mactepmac
      @mactepmac 6 месяцев назад

      @@igrodelsky спасибо. сейчас попробую

  • @ХамиБуран
    @ХамиБуран 2 года назад

    А получается если я хочу сделать твердые объекты,я просто ставлю на общий объединенный объект меш колайдер и все?

    • @igrodelsky
      @igrodelsky  2 года назад

      Не пробовал ставить на скомбайненные объекты общий меш-коллайдер. Если ставится и коллизия нормально работает, то так и делай. Только у меш-коллайдеров есть свои ограничения на кол-во полигонов. Посмотри в оф.справке сколько там написано.

  • @Rueslan
    @Rueslan Год назад

    MeshCombiner совместим с occlusion culling?

    • @igrodelsky
      @igrodelsky  Год назад

      Если понимать что к чему и правильно объединять и настраивать, то совместим. Во всём нужно знать меру.

    • @Rueslan
      @Rueslan Год назад

      @@igrodelsky в том то и дело что я не до конца понимаю работу рендеринга, к примеру сделаю я комбайном 1 большую модель, оклюжн сможет ее разбить на кластеры или он работает только с отдельными моделями?

    • @Evoker_
      @Evoker_ 5 месяцев назад

      ​@@Rueslanнаверно ты понял но для тех кто прочитает этот вопрос дам ответ - оклюжн будет считать объединённые меши как один объект с кучей вершин и поэтому если объединить бездумно то это может даже ухудшить производительность, поскольку он в любом случае будет рендерить его полностью если виден хотя бы пиксель объекта, но можно объединять объекты группами которые почти всегда находятся вместе(например модель дома, на ней всегда будут видны окна если они есть), тогда это даст свой буст ФПС

  • @monoquoise7406
    @monoquoise7406 3 года назад

    А как применить запеченный свет к НЕ объединённым объектам всё для того же Occlusion Culling ?
    То есть как их разъединить обратно после данной процедуры и применить запеченную Лайтмапу ?

    • @igrodelsky
      @igrodelsky  3 года назад +1

      Ты определись о чём речь вообще О_о Если объекты НЕ объединены, то их и разъединять не нужно. А если уже объединил, то зачем разделять потом ? Ну и для объединённого объекта своя карта освещения, а для необъединённых своя. Occlusion Culling также можно использовать с комбайнером, если объединять не все объекты на сцене в один, а разделить их на 10-20 групп, например.

  • @ViATVmy
    @ViATVmy 4 года назад

    Владимир СВЕТ Игродельский привет ! я создаю игру на Android вот у меня такой вопрос для мобил FPS 30 это норм или надо 60 ?? или просто оставит как есть если так то FPS будет выбрана по авто у кого-то 30 у кого-то 60-90 FPS

    • @igrodelsky
      @igrodelsky  4 года назад

      Здравия. Для мобил нужно ставил лок в 30 фпс, чтобы игра зря не садила батарею.

    • @richardgreen9787
      @richardgreen9787 3 года назад

      Здравствуйте, а как это сделать?

    • @FloatingGames
      @FloatingGames 2 года назад

      Смотря какая игра, в мою с 30 играть невозможно, 60 средне, а 120 идеально

  • @MrUmnix
    @MrUmnix 2 года назад

    Такой вопрос. Создаю пустую сцену URP. Запускаю на Android TV - получаю 4-5 fps. Если не URP, то положенные 30 FPS. Где что подкрутить? Вроде настройки по минимуму поставил.

    • @igrodelsky
      @igrodelsky  2 года назад

      Ни URP, ни HDRP не использую, так что не подскажу.

    • @rybinded
      @rybinded Год назад

      Такая же проблема... Нашли ответ?

    • @igrodelsky
      @igrodelsky  Год назад

      @@rybinded Ответ простой - использую стандартную систему рендеринга, а не это сырое говно.

    • @rybinded
      @rybinded Год назад

      @@igrodelsky Я тоже не использую ни URP ни HDRP. Но иногда вижу видосы где авторы говорят что они дают бешеный прирост в ФПС. А у меня игра для мобильного... Поэтому время от времени смотрю в эту сторону, ставлю URP, вижу что на телефоне стало все еще хуже и забиваю на это дело еще на пару месяцев)))

    • @MrUmnix
      @MrUmnix Год назад

      @@rybinded Привет! Не помню уже. Попробуйте Color Space в Gamma переключить.

  • @rdragon587
    @rdragon587 3 года назад

    Thanks)

  • @СофияЖеребцова-н5о
    @СофияЖеребцова-н5о 3 года назад

    а обьединение меша с помощью этого инструмента сбрасывает текущее запекание? Надо ли перепекать

    • @igrodelsky
      @igrodelsky  3 года назад

      Да, это уже будет отдельный меш со своей развёрткой. И нужно не забыть поставить галку на генерацию развёртки для UV

    • @СофияЖеребцова-н5о
      @СофияЖеребцова-н5о 3 года назад

      @@igrodelsky cпасибо за оперативный ответ и за ваши видео :)

  • @oper1525
    @oper1525 Год назад

    Привет, делаю игрульку под андроид про тачки, решил комбайнить объекты в редакте префаба всё видно. Сохраняю, запускаю игру и машина прозрачная. Что делать?

    • @igrodelsky
      @igrodelsky  Год назад

      Здравствуй. Ничего не понял.

    • @oper1525
      @oper1525 Год назад

      @@igrodelsky у меня при комбинировании меш становится прозрачным

    • @oper1525
      @oper1525 Год назад

      Как комбайнить так чтобы меш был виден?

    • @igrodelsky
      @igrodelsky  Год назад

      @@oper1525 Посмотри внимательно урок. Видимо, что-то делаешь не так. Меш не виден после объединения может, разве что, быть из-за шейдера. Смотря чем объединять ещё.

  • @dyze8847
    @dyze8847 3 года назад +1

    Подойдёт ли данный способ оптимизации для генерируемой сцены?

    • @igrodelsky
      @igrodelsky  3 года назад +1

      Смотря что там и как генерируется.

    • @beshkekart3909
      @beshkekart3909 2 года назад

      сгенерил, включил запёк, объединил. побежал дальше. Скорее всего в период обработки всего этого будет фриз, и вызывать надо будет это каждый раз через скрипт, а не стандартными методами юнити. Если кто знает способ получше, напишите

  • @KiZhuGames
    @KiZhuGames Год назад

    Подскажите, кто знает. Я запек меш фонарей в большом городе, у меня наоборот снизился фпс в два раза по сравнению с тем что было, а другие меши наоборот увеличивали производительность. Меш вышел на 1 миллион вершин. Подозреваю что это дело сильно давит на ОЗУ и надо быть аккуратнее, но если есть внятный ответ подскажите плез

    • @igrodelsky
      @igrodelsky  Год назад

      Ну так конечно, объединённые меши не должны быть с таким большим кол-во полигонов. Всё нужно делать с умом.

    • @KiZhuGames
      @KiZhuGames Год назад

      @@igrodelsky в общем такой метод полезен если надо просто издалека чёт - то показать, общий план и ТД.

  • @shapudan8469
    @shapudan8469 2 года назад

    то есть просто легче сделать карту на блендере и её полностью всю перенести в юнити?

    • @igrodelsky
      @igrodelsky  2 года назад +1

      Это зависит от локации и от личных предпочтений. Всё в этом вопросе индивидуально.

  • @yingwai8668
    @yingwai8668 Год назад

    Где настроить показ лимита fps? У меня выше 75 не поднимается даже на простейшей сцене, думаю где-то установлен лимит, но как его убрать?

    • @igrodelsky
      @igrodelsky  Год назад

      Ты в виаре, что-ли, смотришь ?

    • @yingwai8668
      @yingwai8668 Год назад

      @@igrodelsky Честно говоря понятия не имею, просто нажимаю Game - Stats, очень странно если это авто вр

    • @igrodelsky
      @igrodelsky  Год назад +1

      @@yingwai8668 Я про шлемы виртуальной реальности. В том же Окулюс Квест 1 частота обновления экрана 75 герц, поэтому и фпс показывает не больше 75.

    • @yingwai8668
      @yingwai8668 Год назад

      @@igrodelsky я понял, но нет, я не использую шлем.

  • @OkMiracle
    @OkMiracle Год назад

    На 2D походу не работает. Нажимаю, ничего не происходит( Не подскажете?

    • @igrodelsky
      @igrodelsky  Год назад

      С 2д не работаю.

    • @Evoker_
      @Evoker_ 5 месяцев назад

      Ты уже наверно и игру закончил, но все равно дам ответ, в 2D другая система отрисовки работает, в 3D в юнити или других движках используются меши, про них и идет речь в видео, а в 2D мешей нету, есть только факт объекта и текстура(плюс скрипт если есть), поэтому ничего и не происходит, в случае с 2D лучше всего вместо объединения нескольких объектов, которые всегда отрисовываются одновременно просто объединить вручную текстуры и сделать единый объект, так же можно сделать атлас для оставшихся

  • @loxywe
    @loxywe 2 года назад

    можно ли использовать combine meshes в реалтайме?

    • @loxywe
      @loxywe 2 года назад

      во время игри?

    • @igrodelsky
      @igrodelsky  2 года назад

      Не пробовал. Ну проверить же не сложно самому.

  • @teroo1461
    @teroo1461 Год назад

    А как это отключить ?

  • @ACorpAshottMan
    @ACorpAshottMan 2 года назад

    А если игра с процедурой генерацией, и разрушаемые объекты, деревья, камни и прочие
    как повысить фпс, другое дело если одна и та же карта с нерушимыми объектами, а если сделать запекание в моем случае будут просто фантомные тени, а если обьеденить все объекты в одно единое страшно представить что будет

    • @igrodelsky
      @igrodelsky  2 года назад

      Есть много аспектов оптимизации, начиная от кода и заканчивая звуком. Доступные методы зависят от проекта.

  • @gamedevmobile
    @gamedevmobile 2 года назад +1

    Кстати, появился Mesh Baker Free (Бесплатно). Кому надо качайте..

  • @hidusa
    @hidusa 2 года назад

    что делать если в модели 10к кубов она цельная и из блендера?

    • @igrodelsky
      @igrodelsky  2 года назад

      10к кубов ? О_о Может 10к полигонов ?

    • @hidusa
      @hidusa 2 года назад

      @@igrodelsky 10к кубов разных форм(шапалы рельсы и болты) в одном кубе больше 15 точек я разделил на 5 частей фпс стал из 20 на 40 без запекания и тд

    • @igrodelsky
      @igrodelsky  2 года назад

      @@hidusa Чёт дичь какая-то ... Кто изменяет модели в кубах ? Почему в кубе больше 15 точек, если должно быть 8 ? Нихрена не понятно.

    • @hidusa
      @hidusa 2 года назад

      @@igrodelsky типо я создал куб сделал из нее модель чтобы сделать надо было создать больше точек и вот часть модели 10 на 0.3 на 0.1 дальше еще модель 2.5 на 0.4 на 0.4
      И самая маленькая это болтик из куба сделал шестигранник и дальше продублировал их нажал Ctrl + w согнул эти модели в нужною мне стороной и так 1 км

    • @hidusa
      @hidusa 2 года назад

      @@igrodelsky ну кстати стало 30 фпс без запекания

  • @Vitia_Smesitel
    @Vitia_Smesitel 3 года назад

    отдуши брат

  • @Wijj27us7mu2
    @Wijj27us7mu2 2 месяца назад

    сцена пропала полностю вотето фокусы

    • @igrodelsky
      @igrodelsky  2 месяца назад

      Ох уж эти фокусы ! Ох уж эти фокусники ! :)

  • @Mr.Epsilion
    @Mr.Epsilion 3 года назад

    Occlusion Culling будет ругаться?

    • @igrodelsky
      @igrodelsky  3 года назад

      С чего он должен ругаться? Occlusion Culling может дополнить эту систему. Если объединить в один меш всю посуду на кухне, например, то Occlusion Culling будет выключать этот меш с посудой, если он не виден в данный момент.

  • @rareiridium77
    @rareiridium77 2 года назад

    ещё можно использовать LOD'ы

    • @igrodelsky
      @igrodelsky  2 года назад

      Да много чего ещё можно использовать, но урок о двух конкретных способах.

    • @rareiridium77
      @rareiridium77 2 года назад

      @@igrodelsky мне ваш способ понравился.

  • @ghost1k985
    @ghost1k985 2 года назад

    Я когда объеденяю объекты у меня число батчей с 80 до 250 поднялось и фпс с 50 до 15 упал. Кто нибудь знает почему так?

    • @igrodelsky
      @igrodelsky  2 года назад

      Может слишком большое кол-во полигонов на объединяемых объектах.

    • @ghost1k985
      @ghost1k985 2 года назад

      @@igrodelsky У меня присутствует забор и там много коллайдеров. А что делать в таких ситуациях?

    • @igrodelsky
      @igrodelsky  2 года назад

      @@ghost1k985 Я не про коллайдеры, а про полигоны. Оптимизация - это дело индивидуальное. В каждом проекте и в каждой сцене нужно подходить к этому вопросу, учитывая все нюансы. Нет готового решения для оптимизации любой игры. Где-то лоды нужны, а где-то нет, где-то лучше использовать объединение мешей, а где-то оклюжн кулинг, ну и т.д. Всё это нужно изучать и тогда уже делать выводы о том, где что и когда использовать.

    • @ghost1k985
      @ghost1k985 2 года назад

      @@igrodelsky Я не хочу именно использовать объединение, я перепробовал кучу методов. Запекание почему-то не могу сделать, оклюжн каллинг никакой пользы не приносит, упрощение коллайдеров тоже не помогло.

    • @igrodelsky
      @igrodelsky  2 года назад

      @@ghost1k985 Если что-то не помогло, то это может не потому, что не подходит, а потому, что сделал что-то не так. На оптимизацию влияют не только графические и физические факторы, но и код. Можно одной кривой строчкой убить всю производительность. Тестируй на простых сценах, ищи причины методом исключения.

  • @hardik_original
    @hardik_original 2 года назад

    бл у меня просто все обьекты удалились

    • @igrodelsky
      @igrodelsky  2 года назад

      Резервные копии ? Не, не слышал ...

  • @diflux
    @diflux 4 года назад +2

    все материалы испортил этот скрипт, а главное отмену нельзя сделать, теперь фиолетовые глюки )))

    • @igrodelsky
      @igrodelsky  4 года назад +3

      Этот ассет материалы не изменяет. Розовый цвет означает, что материал не указан в МешРендере. Ну а так то вообще всегда нужно делать резервные копии сцен и проектов, чтобы в случае чего восстановить всё без проблем.

  • @ДаниилМишин-й1у
    @ДаниилМишин-й1у 4 года назад +1

    У меня 10к обьектов фпс 30,после тоже 30

    • @igrodelsky
      @igrodelsky  4 года назад +1

      Что-то сделал не так значит.

    • @ДаниилМишин-й1у
      @ДаниилМишин-й1у 4 года назад

      @@igrodelsky у меня 40к,и нихера

    • @igrodelsky
      @igrodelsky  4 года назад +1

      @@ДаниилМишин-й1у Ты хоть 1000К объектов добавь, но если всё не сделано как надо, то результата не будет. Пересмотри внимательно ролик.

  • @-LGK
    @-LGK 3 года назад

    Привет, по не понятной причине у меня свет не запекается. Повторял за вами

    • @igrodelsky
      @igrodelsky  3 года назад

      Здравия. На канале есть пара уроков по запеканию света. Рекомендую ознакомиться.

  • @mpmooi3147
    @mpmooi3147 Год назад

    стало еще хуже

    • @igrodelsky
      @igrodelsky  Год назад

      Выпей таблетку

    • @mpmooi3147
      @mpmooi3147 Год назад

      @@igrodelsky я здоров

    • @igrodelsky
      @igrodelsky  Год назад

      @@mpmooi3147 А кому тогда хуже стало ?

    • @mpmooi3147
      @mpmooi3147 Год назад

      @@igrodelsky вобщем,.было 120фпс,я сделал все как по туторам,и так же 120 фпс

    • @igrodelsky
      @igrodelsky  Год назад +1

      @@mpmooi3147 Ну так а где ХУЖЕ то ? МешКомбайнер - это не панацея. Любой инструмент оптимизации нужно с умом использовать. Может объединяешь модели, у которых по по 100к полигонов или ещё какие-то ошибки допускаешь. Что и как оптимизировать - это всегда индивидуальный подход. Каждый проект и каждая сцена должна иметь свой набор средств по оптимизации. То, что в одном месте поможет, в другом может сделать только хуже. Так что нужно вникать в суть, и делать выводы в каждой конкретной ситуации.