Привет! Попробовал чуть более подробно рассмотреть оптимизацию с точки зрения графических ресурсов, однако итоговое видео всё же не очень глубоко описывает непосредственно реализацию показанных способов оптимизации моделей. Поэтому вопрос у меня простой - было бы вам интересно увидеть более длинный ролик, где более наглядно показана последовательность действий, необходимых для решения этих задач? :)
Мне как тридешнику в сфере геймдева, было бы очень интересно углубиться в оптимизацию касательно всего, что связано с моделями. Но боюсь это инфа не всем может быть полезна, а следовательно актуальна. С другой стороны, вы всегда можете показать эти видео своим 3D художникам и поддержать автора лайком. :)
"было бы вам интересно увидеть более длинный ролик, где более наглядно показана последовательность действий, необходимых для решения этих задач? :)" Ответ - Да... Нет, не так. Вот так: ДА!!!. Нет-нет, вот так: ДААААААААААА!!!!!! :-))
Вопросы оптимизации всегда важны. И мне как новичку очень важно знать и понимать что из своих проектов я могу выжать. Так что,да. Более длинный урок мало кого спугнёт.
Серия видео отличная! А вот про SkinnedMeshRenderer или несколько обычных мешей как раз недавно думал - скинули модельку где просто вращалась антенна непрерывно, и было сделано через SkinnedMeshRenderer со скелетом и аниматором. И я удивлялся что не двумя мешами сделано, почему-то интуитивно казалось что скелет больше оверхеда добавлять должен. Но тестов не проводил, так что не знаю :)
Один из проектов, где я работаю - RTS в милитари-сеттинге. Там десятки юнитов на экране одновременно, поэтому выбор между оверхедом от SkinnedMeshRenderer и сотнями дроу коллов в принципе был не очень сложный. :D Ну а бонусом даёт гибкости тем же деталям вроде антенн)
Я для себя в Gimp объединил текстуры досок,кирпича,железа,верёвок и в блендере сделал UV развёртку и назначил на каждый меш соответствующий кусок текстуры.
Да, кстати, это тоже хороший способ, особенно полезен для процедурно-генерируемых во время игры уровней, в такой ситуации никакого 3D-редактора в помощь не будет)
Народ, рассказываю как я делал дорогу в Unity 3D и вместо 3000 батчей получил 4 батча) Это немного усложнит создание текстур, но результат производительности улучшиться чуть ли не в 1000 раз, а также секономит дофига времени. В общем, что бы получить 3К батчей нам нужно сделать один материал с текстурой дороги и кинуть его на Plane, в настройках материала там можно настроить количество повторений текстур (Tiling в настройках материала называется). Окей, настроили, дальше копируем так дорогу, на 1КМ дороги у меня вышло 140 объектов Plane. Потом создаём отдельный Plane, который сделает полосы на дороге и двойную сплошную. Тут опять выйдет 100500 объектов. В итоге материал с текстурой один, производительность упала, время потратили дофига. Как убить двух зайцев, то есть увеличить производительность и потратить меньше времени, но есть маленький нюанс. В общем, я сравнил объект Plane и Cube, короче, плейн жрет в 5 раз больше производительности, так что используем Cube. Дальше, мы не создаём 100500 объектов, а просто отрисовываем один, но длинный. И теперь создаём в Фотошопе одну текстуру дороги уже вместе с полосами, но нужно сделать ее бесшовную. Дальше закидываем в Unity и создаём материал где в Tiling растягиваем текстуру под длинну дороги. Воуля. Единственное это материалы, если у вас много разных дорог разной длины, то нужно для каждой отдельной дороги создавать отдельный материал, который нужно растягивать индивидуально для каждой дороги.
Допустим, у меня есть один меш. Нужно сделать несколько вариантов его покраски текстурным атласом. Получается, сколько вариантов покраски, столько и мешей с уникальной UV развёрткой? А если таких вариантов требуется 100 и больше? (гипотетически).
А можете рассказать об оптимизации открытых миров? А то у меня один плагин карт есть...(mapbox) и он очень долго подгружает карту, из-за чего лагает. Хотелось бы подгружать второстепенно, но не знаю как(.
Подскажите, а какие оптимальные размеры должны быть у текстур, для хорошей оптимизации? И они всё ещё должны быть кратны 16, как в старых играх, когда использовались текстуры размером 256х256 и 512х512?
Спасибо за объяснение! Значит, если даже у сложной постройки есть стены, крыша, двери, окна, лестницы, то лучше также использовать один атлас на конкретную модель для мобильной игры в Unity? И какой размер атлас посоветуете для мобильной игры? 2048x2048 много? 1024 оптимальнее?
Для крупных моделей может быть несколько атласов, 2048 думаю приемлемо, особенно если объекты его использующие, большую часть времени находятся на виду у игрока (атлас не будет заново загружаться в память).
интересная серия видео)! Спасибо!) Ребят, если использовать для 3D модели обычную политуру цветов в материала Юнити без текстур на производительности скажется положительно или отрицательно? у кого какие мнения? Например, сделал 3D модель ы в Блендере и там же назначил материалы, а после переноса такой модели в Юнити создаешь материалы и подбираешь обычные цвета к модели в самой Юнити
На модели желательно иметь только один материал. Чем больше на ней материалов, даже одноцветных, тем сложнее видеокарте будет это отрисовывать. Вместо этого лучше использовать палитру в одной текстуре, но редактировать придётся в графическом редакторе. Альтернативой может стать свой шейдер и текстуры-маски, которые будут накладываться на нужные части модели, которые должны менять цвет, а шейдер по ним нужным цветом будет рисовать, но это уже сложнее)
Не знаю затрагивали ли тему данную. Года 2 использую юнити. Всегда оптимизирую партайклы они же частицы, они же эффекты. Можно ещё и физику затронуть. Если тема не раскрыта..
а что на счет лодов? как у вас на юнити с этим дела? я прост на анриле сижу, там лоды есть давно и бесплатно. в последний раз видел на юнити что они только у про есть, но добавили в бесплатную чтоли
Пожалуйста объясните мне как новичку в этом деле. Делаю Лоу Поли модельки для игры , и накладываю на них материалы , потом делаю развертку каждой модельки (дерева , камня , куста и т.д) и запекаю на каждой модели эти материалы в одну текстуру. И таким образом получается что у каждой модели , один материал с этой текстурой, вместо , 3 на дереве допустим. Вопрос: я вообще правильно это делаю или нет ? Узнал вот что можно сделать uv атлас, и теперь думаю , можно ли взять и скинуть в один файл все модели окружения с их материалами допустим , и запечь все это , чтоб получить просто одну текстуру большую, которая в последствии будет на каждое это дерево или камень накидываться? Или и так нормально? Просто если логически подумать , то в любом случае получается что на модели будет один материал с текстурой, только в первом случае много текстур по отдельности для каждого дерева , а в другом одна и та же текстура , но ее можно применить к многим мешам. (Скажу сразу , я до движка ещё не добрался , пока делаю только модели в блендере , просто хочу чтоб модели были сделаны правильно , и это нормально в будущем сказывалось на оптимизации, чтоб потом не переделывать по 150 раз)
Лучше всего, если атласы не будут выходить за размеры 2048х2048, можно сделать и больше, но тогда будет идти больше нагрузки на память - компромисс всегда лучше. Так же хорошо, когда материал универсальный и используется один для нескольких разных моделей. Единственно верного правила нет, в разных ситуациях - разные подходы.
@@insaneone-7220 Автор, снова здравствуйте ,можно как то с вами в личку связаться? Можете проверить пожалуйста правильно ли я сделал модели?(не у кого спросить).создал пак из 15 деревьев , накинул на все процедурные материалы , сделал одну общую развертку и запёк это все в текстуру 2048х2048 , таким образом получился один материал с этой текстурой для всех 15 деревьев.Это так должно быть ?насколько я понял
Привет! Попробовал чуть более подробно рассмотреть оптимизацию с точки зрения графических ресурсов, однако итоговое видео всё же не очень глубоко описывает непосредственно реализацию показанных способов оптимизации моделей. Поэтому вопрос у меня простой - было бы вам интересно увидеть более длинный ролик, где более наглядно показана последовательность действий, необходимых для решения этих задач? :)
Мне как тридешнику в сфере геймдева, было бы очень интересно углубиться в оптимизацию касательно всего, что связано с моделями. Но боюсь это инфа не всем может быть полезна, а следовательно актуальна.
С другой стороны, вы всегда можете показать эти видео своим 3D художникам и поддержать автора лайком. :)
"было бы вам интересно увидеть более длинный ролик, где более наглядно показана последовательность действий, необходимых для решения этих задач? :)" Ответ - Да... Нет, не так. Вот так: ДА!!!. Нет-нет, вот так: ДААААААААААА!!!!!! :-))
Я бы посмотрел такой ролик. Как ты объясняешь лучше понимается.
Вопросы оптимизации всегда важны. И мне как новичку очень важно знать и понимать что из своих проектов я могу выжать. Так что,да. Более длинный урок мало кого спугнёт.
Серия видео отличная!
А вот про SkinnedMeshRenderer или несколько обычных мешей как раз недавно думал - скинули модельку где просто вращалась антенна непрерывно, и было сделано через SkinnedMeshRenderer со скелетом и аниматором. И я удивлялся что не двумя мешами сделано, почему-то интуитивно казалось что скелет больше оверхеда добавлять должен. Но тестов не проводил, так что не знаю :)
Один из проектов, где я работаю - RTS в милитари-сеттинге. Там десятки юнитов на экране одновременно, поэтому выбор между оверхедом от SkinnedMeshRenderer и сотнями дроу коллов в принципе был не очень сложный. :D Ну а бонусом даёт гибкости тем же деталям вроде антенн)
Какие люди)
Emerald ,а ты тут откуда )
Да, в некоторых случаях выбор очевиден
Так я ведь и чужие видео тоже частенько смотрю)
Мужики продолжайте радовать нас видосами, вам цены нет.
Я для себя в Gimp объединил текстуры досок,кирпича,железа,верёвок и в блендере сделал UV развёртку и назначил на каждый меш соответствующий кусок текстуры.
Пока есть два толковых канала по Unity на русском : ты и Emerald. Очень полезные ролики делаешь
А Гоша?
@@grinvich2304 Не очень. Как по мне, он делает затянуто и СЛИШКОМ разжёванно. Да и не всегда правильно
Emerald Powder ?
Спасибо за полезную инфу)
Один из самых полезных роликов на канале по этой теме. Спасибо.
Отличный видос. Ты сделал мой день!)
Это то, что я искал долгое время. Надеюсь твой канал быстро вырастет ;)
Мне понравилось и всё было понятно !
Отличные видео! Спасибо!
Объединять меши можно и в самом Unity - Mesh.CombineMeshes()
Да, кстати, это тоже хороший способ, особенно полезен для процедурно-генерируемых во время игры уровней, в такой ситуации никакого 3D-редактора в помощь не будет)
Отличные видосы, большое спасибо за них!
Спасибо тебе огромное!)
Замечательная серия видео уроков, жаль так и не дождалась темы по оптимизации звука 😔 Надежда умирает последней, буду ждать и верить 😉👍
потому что это не последнее видео по оптимизации....видео 4 года назад)
А сними отдельное видео по "общим материалам" и т.д.
посмотрев все твои ролики я радостно оптимизировал игру с 80 фпс до 30) и теперь хз как вернуть обратно🤣
Народ, рассказываю как я делал дорогу в Unity 3D и вместо 3000 батчей получил 4 батча)
Это немного усложнит создание текстур, но результат производительности улучшиться чуть ли не в 1000 раз, а также секономит дофига времени.
В общем, что бы получить 3К батчей нам нужно сделать один материал с текстурой дороги и кинуть его на Plane, в настройках материала там можно настроить количество повторений текстур (Tiling в настройках материала называется). Окей, настроили, дальше копируем так дорогу, на 1КМ дороги у меня вышло 140 объектов Plane. Потом создаём отдельный Plane, который сделает полосы на дороге и двойную сплошную. Тут опять выйдет 100500 объектов. В итоге материал с текстурой один, производительность упала, время потратили дофига.
Как убить двух зайцев, то есть увеличить производительность и потратить меньше времени, но есть маленький нюанс. В общем, я сравнил объект Plane и Cube, короче, плейн жрет в 5 раз больше производительности, так что используем Cube. Дальше, мы не создаём 100500 объектов, а просто отрисовываем один, но длинный. И теперь создаём в Фотошопе одну текстуру дороги уже вместе с полосами, но нужно сделать ее бесшовную. Дальше закидываем в Unity и создаём материал где в Tiling растягиваем текстуру под длинну дороги. Воуля. Единственное это материалы, если у вас много разных дорог разной длины, то нужно для каждой отдельной дороги создавать отдельный материал, который нужно растягивать индивидуально для каждой дороги.
Допустим, у меня есть один меш. Нужно сделать несколько вариантов его покраски текстурным атласом. Получается, сколько вариантов покраски, столько и мешей с уникальной UV развёрткой? А если таких вариантов требуется 100 и больше? (гипотетически).
А можете рассказать об оптимизации открытых миров? А то у меня один плагин карт есть...(mapbox) и он очень долго подгружает карту, из-за чего лагает. Хотелось бы подгружать второстепенно, но не знаю как(.
По возможности постараюсь рассказать. Насчёт плагина не знаю, возможно он не очень хорошо реализован и поэтому возникает такая проблема.
Подскажите, а какие оптимальные размеры должны быть у текстур, для хорошей оптимизации? И они всё ещё должны быть кратны 16, как в старых играх, когда использовались текстуры размером 256х256 и 512х512?
По сути да, но не обязательно чтобы они были именно квадратные.
Спасибо за объяснение! Значит, если даже у сложной постройки есть стены, крыша, двери, окна, лестницы, то лучше также использовать один атлас на конкретную модель для мобильной игры в Unity? И какой размер атлас посоветуете для мобильной игры? 2048x2048 много? 1024 оптимальнее?
Для крупных моделей может быть несколько атласов, 2048 думаю приемлемо, особенно если объекты его использующие, большую часть времени находятся на виду у игрока (атлас не будет заново загружаться в память).
интересная серия видео)! Спасибо!) Ребят, если использовать для 3D модели обычную политуру цветов в материала Юнити без текстур на производительности скажется положительно или отрицательно? у кого какие мнения? Например, сделал 3D модель ы
в Блендере и там же назначил материалы, а после переноса такой модели в Юнити создаешь материалы и подбираешь обычные цвета к модели в самой Юнити
На модели желательно иметь только один материал. Чем больше на ней материалов, даже одноцветных, тем сложнее видеокарте будет это отрисовывать. Вместо этого лучше использовать палитру в одной текстуре, но редактировать придётся в графическом редакторе. Альтернативой может стать свой шейдер и текстуры-маски, которые будут накладываться на нужные части модели, которые должны менять цвет, а шейдер по ним нужным цветом будет рисовать, но это уже сложнее)
@@insaneone-7220 Спасибо за ответ👍🏻👍🏻👍🏻:)
Не знаю затрагивали ли тему данную. Года 2 использую юнити. Всегда оптимизирую партайклы они же частицы, они же эффекты. Можно ещё и физику затронуть. Если тема не раскрыта..
Блин, почему ты закончил снимать про оптимизацию? (
Так получилось. :) В планах есть ещё несколько видео по этой теме, но пока нет никаких сроков их выхода на канале.
@@insaneone-7220 Сними плиз про оптимизацию html5
А про Lod'ы будет?
Возможно)
а что на счет лодов? как у вас на юнити с этим дела? я прост на анриле сижу, там лоды есть давно и бесплатно. в последний раз видел на юнити что они только у про есть, но добавили в бесплатную чтоли
Да, лоды есть бесплатно, уже довольно давно. Ну, особо по ним нечего сказать, они работают)
Пожалуйста объясните мне как новичку в этом деле. Делаю Лоу Поли модельки для игры , и накладываю на них материалы , потом делаю развертку каждой модельки (дерева , камня , куста и т.д) и запекаю на каждой модели эти материалы в одну текстуру. И таким образом получается что у каждой модели , один материал с этой текстурой, вместо , 3 на дереве допустим. Вопрос: я вообще правильно это делаю или нет ? Узнал вот что можно сделать uv атлас, и теперь думаю , можно ли взять и скинуть в один файл все модели окружения с их материалами допустим , и запечь все это , чтоб получить просто одну текстуру большую, которая в последствии будет на каждое это дерево или камень накидываться? Или и так нормально? Просто если логически подумать , то в любом случае получается что на модели будет один материал с текстурой, только в первом случае много текстур по отдельности для каждого дерева , а в другом одна и та же текстура , но ее можно применить к многим мешам. (Скажу сразу , я до движка ещё не добрался , пока делаю только модели в блендере , просто хочу чтоб модели были сделаны правильно , и это нормально в будущем сказывалось на оптимизации, чтоб потом не переделывать по 150 раз)
Лучше всего, если атласы не будут выходить за размеры 2048х2048, можно сделать и больше, но тогда будет идти больше нагрузки на память - компромисс всегда лучше. Так же хорошо, когда материал универсальный и используется один для нескольких разных моделей. Единственно верного правила нет, в разных ситуациях - разные подходы.
@@insaneone-7220 понял , спасибо большое за быстрый ответ)
@@insaneone-7220 Автор, снова здравствуйте ,можно как то с вами в личку связаться? Можете проверить пожалуйста правильно ли я сделал модели?(не у кого спросить).создал пак из 15 деревьев , накинул на все процедурные материалы , сделал одну общую развертку и запёк это все в текстуру 2048х2048 , таким образом получился один материал с этой текстурой для всех 15 деревьев.Это так должно быть ?насколько я понял
Вообще ничего не понятно... буду разбираться.. спасибо за видео
облегчИть! 5:40 мою жену бесит когда говорят не правильно, и она свои психи на мне вымещает. Ставьте ударение правильно пожалуйста.
Всем пофиг на твою жену, поставь ее на место.
учитывая как хуево грузится этот ролик на фоне остальных то оптимизация действительно важна