Оптимизация игры на Unity, часть 5 - 3D модели. Текстурный атлас. Объединение мешей

preview_player
Показать описание
Рассказываю про оптимизацию 3D моделей для Unity. В этом видео я затронул темы текстурных атласов, дублирования материалов объединения мешей и моделей с множеством подвижных составляющих. Будем всё это оптимизировать для снижения draw calls и повышения FPS игры.

У меня на канале регулярно выходят новые видео с уроками по Unity и разработке игр, а так же другими интересными темами, связанными с геймдевом. Подписывайся!

Не забывай оставлять комментарий, если у тебя появились вопросы или предложения по видео :)
Рекомендации по теме
Комментарии
Автор

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

insaneone-
Автор

Я для себя в Gimp объединил текстуры досок, кирпича, железа, верёвок и в блендере сделал UV развёртку и назначил на каждый меш соответствующий кусок текстуры.

tbynyyg
Автор

Серия видео отличная!
А вот про SkinnedMeshRenderer или несколько обычных мешей как раз недавно думал - скинули модельку где просто вращалась антенна непрерывно, и было сделано через SkinnedMeshRenderer со скелетом и аниматором. И я удивлялся что не двумя мешами сделано, почему-то интуитивно казалось что скелет больше оверхеда добавлять должен. Но тестов не проводил, так что не знаю :)

EmeraldPowder
Автор

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

gdegeee
Автор

Отличный видос. Ты сделал мой день!)
Это то, что я искал долгое время. Надеюсь твой канал быстро вырастет ;)

liroxyplay
Автор

Один из самых полезных роликов на канале по этой теме. Спасибо.

Sovereing
Автор

Отличные видосы, большое спасибо за них!

Priboy
Автор

Пока есть два толковых канала по Unity на русском : ты и Emerald. Очень полезные ролики делаешь

Arko
Автор

Отличные видео! Спасибо!
Объединять меши можно и в самом Unity – Mesh.CombineMeshes()

jrxhejc
Автор

А сними отдельное видео по "общим материалам" и т.д.

mr.dandomi
Автор

посмотрев все твои ролики я радостно оптимизировал игру с 80 фпс до 30) и теперь хз как вернуть обратно🤣

voldexgray
Автор

Допустим, у меня есть один меш. Нужно сделать несколько вариантов его покраски текстурным атласом. Получается, сколько вариантов покраски, столько и мешей с уникальной UV развёрткой? А если таких вариантов требуется 100 и больше? (гипотетически).

meowguuy
Автор

А можете рассказать об оптимизации открытых миров? А то у меня один плагин карт есть...(mapbox) и он очень долго подгружает карту, из-за чего лагает. Хотелось бы подгружать второстепенно, но не знаю как(.

ilkltgv
Автор

Спасибо за объяснение! Значит, если даже у сложной постройки есть стены, крыша, двери, окна, лестницы, то лучше также использовать один атлас на конкретную модель для мобильной игры в Unity? И какой размер атлас посоветуете для мобильной игры? 2048x2048 много? 1024 оптимальнее?

VsevolodPankratov
Автор

интересная серия видео)! Спасибо!) Ребят, если использовать для 3D модели обычную политуру цветов в материала Юнити без текстур на производительности скажется положительно или отрицательно? у кого какие мнения? Например, сделал 3D модель ы
в Блендере и там же назначил материалы, а после переноса такой модели в Юнити создаешь материалы и подбираешь обычные цвета к модели в самой Юнити

_T-_
Автор

Подскажите, а какие оптимальные размеры должны быть у текстур, для хорошей оптимизации? И они всё ещё должны быть кратны 16, как в старых играх, когда использовались текстуры размером 256х256 и 512х512?

GamePlayGoGoGo
Автор

Народ, рассказываю как я делал дорогу в Unity 3D и вместо 3000 батчей получил 4 батча)
Это немного усложнит создание текстур, но результат производительности улучшиться чуть ли не в 1000 раз, а также секономит дофига времени.
В общем, что бы получить 3К батчей нам нужно сделать один материал с текстурой дороги и кинуть его на Plane, в настройках материала там можно настроить количество повторений текстур (Tiling в настройках материала называется). Окей, настроили, дальше копируем так дорогу, на 1КМ дороги у меня вышло 140 объектов Plane. Потом создаём отдельный Plane, который сделает полосы на дороге и двойную сплошную. Тут опять выйдет 100500 объектов. В итоге материал с текстурой один, производительность упала, время потратили дофига.

Как убить двух зайцев, то есть увеличить производительность и потратить меньше времени, но есть маленький нюанс. В общем, я сравнил объект Plane и Cube, короче, плейн жрет в 5 раз больше производительности, так что используем Cube. Дальше, мы не создаём 100500 объектов, а просто отрисовываем один, но длинный. И теперь создаём в Фотошопе одну текстуру дороги уже вместе с полосами, но нужно сделать ее бесшовную. Дальше закидываем в Unity и создаём материал где в Tiling растягиваем текстуру под длинну дороги. Воуля. Единственное это материалы, если у вас много разных дорог разной длины, то нужно для каждой отдельной дороги создавать отдельный материал, который нужно растягивать индивидуально для каждой дороги.

glorytoukraine
Автор

Не знаю затрагивали ли тему данную. Года 2 использую юнити. Всегда оптимизирую партайклы они же частицы, они же эффекты. Можно ещё и физику затронуть. Если тема не раскрыта..

strikenoise
Автор

а что на счет лодов? как у вас на юнити с этим дела? я прост на анриле сижу, там лоды есть давно и бесплатно. в последний раз видел на юнити что они только у про есть, но добавили в бесплатную чтоли

KENISEG
Автор

Пожалуйста объясните мне как новичку в этом деле. Делаю Лоу Поли модельки для игры, и накладываю на них материалы, потом делаю развертку каждой модельки (дерева, камня, куста и т.д) и запекаю на каждой модели эти материалы в одну текстуру. И таким образом получается что у каждой модели, один материал с этой текстурой, вместо, 3 на дереве допустим. Вопрос: я вообще правильно это делаю или нет ? Узнал вот что можно сделать uv атлас, и теперь думаю, можно ли взять и скинуть в один файл все модели окружения с их материалами допустим, и запечь все это, чтоб получить просто одну текстуру большую, которая в последствии будет на каждое это дерево или камень накидываться? Или и так нормально? Просто если логически подумать, то в любом случае получается что на модели будет один материал с текстурой, только в первом случае много текстур по отдельности для каждого дерева, а в другом одна и та же текстура, но ее можно применить к многим мешам. (Скажу сразу, я до движка ещё не добрался, пока делаю только модели в блендере, просто хочу чтоб модели были сделаны правильно, и это нормально в будущем сказывалось на оптимизации, чтоб потом не переделывать по 150 раз)

Artem_Kapatsyna