UE 5. Оптимизируем мегаскановский камешек.

Поділитися
Вставка
  • Опубліковано 8 кві 2024
  • Наглядный пример оптимизации мегаскановского камешка с уменьшением веса материала почти в 800 раз. Optimizing Quixel Megascans asset the rock.
    Сделано это следующим образом, просто зашил текстуру Base Color в цвета вершин полигональной сетки. Текстуру АО зашил так-же в цвета вершин в альфа-канал, а вместо карты нормалей 8к использовал повторяющийся фрагмент разрешением 512х512.
    Поддержать можно тут boosty.to/valkyrie
    С вопросами сюда / discord

КОМЕНТАРІ • 72

  • @GMTechArt
    @GMTechArt  Місяць тому +2

    Поддержать можно тут boosty.to/valkyrie
    С вопросами сюда discord.gg/7swknc5yxa

  • @mike_8323
    @mike_8323 Місяць тому +58

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

    • @protuberanecjk4704
      @protuberanecjk4704 Місяць тому +5

      А им зачем) , они уже всё, сдали и отдыхают )

    • @shimoda47
      @shimoda47 Місяць тому +1

      конечно. ведь игре которая весит 25 гигов оооочень сильно нужно оптимизировать размер текстур) да)

    • @protuberanecjk4704
      @protuberanecjk4704 Місяць тому +4

      @@shimoda47 а ты наверное думаешь, что текстуры кешируются на другой компьютер, да ?

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

      @@protuberanecjk4704 то есть ты хочешь сказать что смута так много видеопамяти занимает? если интересно, то буду дома могу замерить

    • @user-qb8lx2uq5j
      @user-qb8lx2uq5j Місяць тому +1

      Качество картинки или неоптимизированность это не проблемы игры Смута. У нее другие проблемы.

  • @tangentsmith2961
    @tangentsmith2961 Місяць тому +13

    Благодарность за то, что делитесь техниками оптимизации проекта. Да, засилие 3д сканов с огромными тектурами - это современный бич индустрии. Если у вас есть опыт оптимизации или вы знаете какие-то наилучшие практики в других аспектах игровой разработки, будьте добры, поделитесь. Сделайте, если найдется время, серию коротких роликов или один большой ролик. Понимаю, что отдачи вы, скорее всего, не получите, но кто-то вам будет по-настоящему благодарен. Еще раз спасибо!🤗

    • @GMTechArt
      @GMTechArt  Місяць тому +2

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

    • @tangentsmith2961
      @tangentsmith2961 Місяць тому +4

      @@GMTechArt Как мы видим, в головах самоучек больше здравого смысла, чем в пустых головах специалистов ААА студий, которые вообще не парятся над оптимизацией проекта.

    • @user-ss6et8jt5l
      @user-ss6et8jt5l Місяць тому

      @@tangentsmith2961 а вы участвовали в ААА продакшене, что бы так уверенно заявлять?

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

      @@user-ss6et8jt5l А обязательно участвовать в ААА продакшене, что бы видить, что одна студия на 10 выпускает сегодня рабочую игру с нормальной оптимизацией? Может вы думаете, что нужно быть мишеленовским шефом, что бы понять, что вас накормили дерьмом? Уж извините за такое сравнение.

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

      @@user-ss6et8jt5l Тут не обязательно учвствовать ты как потребитель (Игрок) видишь на сколкьо ужасная оптимизация в текущем времени от разрабов. Видеокарты загружены под 40-60% а ЦПУ под 100%. В то время как в инди проектах соло разрабы загружают видюху под 90% . SOLO CARL SOLO

  • @user-yo7mw6oj4p
    @user-yo7mw6oj4p Місяць тому +2

    Спасибо. Очень офигительно

  • @user-eq6vs7tl7r
    @user-eq6vs7tl7r Місяць тому

    Большой вы молодец, спасибо. Очень вы внимательный

  • @electromonkey.artstation
    @electromonkey.artstation Місяць тому

    Спасибо автору за полезный и интересный туторчик !

  • @user-bi2ww8bb4m
    @user-bi2ww8bb4m Місяць тому +1

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

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

    Очень спасибо ) , сохранил в закладки для обязательного использования )

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

    Отлично видео , подписался и лайк поставил , ждём ещё подобного контента

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

    Крутой метод, спасибо!

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

    Мегагосовский просовский камешек)))

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

    Гениальный способ) лайк)

  • @Pavel-wt1wp
    @Pavel-wt1wp Місяць тому

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

    • @GMTechArt
      @GMTechArt  Місяць тому +1

      В Maya я другими 3D пакетами пользоваться не умею.

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

    в альфу мне кажется лучше Roughness запечь, да и на нормаль в целом пофиг полигонов хватает. А вообще тема огонь спасибо что показал

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

      Можно и рафнес было вместо АО запечь, тоже такой вариант рассматривал но АО показалось интересней, а нормалку всё же думаю стоит добавлять для мелкой детализации, такой совет даже в официальной документации есть. Хотя для каких-то моделей может и без неё можно обойтись, тут уж по ситуации как говорится.

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

    разработчикам Смуты надо скинутть))

  • @FishMan1nsk
    @FishMan1nsk Місяць тому +4

    Не знаю. Не уверен на счёт оптимизации честно говоря.
    Наниты так устроены, что они пытаются сохранить цвета вершин, хард еджи, силуэт и швы на UV. Посмотрите, пожалуйста, что у вас происходит с упрощением меша на расстоянии достаточно ли эффективно нанит их упрощает по сравнению с оригиналом, есть вероятность что такие плотные меши с запечёными в них вертекс колорами будут плохо упрощаться и приводить к квад овердро.
    Это один момент.
    Второй момент вы могли текстуру бейка уменьшить до 2048 и смешать её с дитейл нормалом и сделать дистанс фейд, чтобы на расстоянии дитейл текстура пропадала.
    Проблема вашего примера сейчас в том что карта нормалей не соответствует форме объекта и это хорошо заметно на среднем ракурсе.
    Ну и вы правильно заметили, что 8к не нужна. Она не нужна в принципе, поэтому вам следовало "оптимизировать" 4к изначально, потому что в здравом уме их всё равно никто в реальном примере бы не стал использовать.

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

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

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

      @@GMTechArt это эксперементально можно установить. Возьмите кубик с сабдивом и покрасьте ему какую-то область, потом просто включите дебаг нанит трианглов и плавно меняте расстояние. Повторите то же самое для кубика без прокраса вертексов - увидите разницу. Когда прокраса нет первыми нанит срезает все полигоны на плоскостях, когда прокрас есть - он их пытается сохранить по максимуму, видимо анализируя разницу в значениях цветов вершин.
      Если бы этого не было, то прокрас мешей бы очень значительно менялся, что приводило бы к заметным скачкам различных пятен на текстурах в материалах с вертекс блендом, потому что нанит постоянно перестраивает сетку.

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

      @@FishMan1nsk нанит не учитывает цвета вершин, так было раньше так и сейчас. Ему важна только геометрия это я ещё в этом видео показывал ua-cam.com/video/iC4E9WluxyM/v-deo.html

    • @GMTechArt
      @GMTechArt  Місяць тому +1

      @@FishMan1nsk Хотя вы правы действительно учитывает, но увы не достаточно к сожалению, всё равно сильно упрощает, интересно это можно как ни-будь настроить?

    • @FishMan1nsk
      @FishMan1nsk Місяць тому +1

      ​@@GMTechArt не знаю можно или нет, возможно где-то есть какие-то настройки. Он вроде точно сохраняет большую разницу в цвете. Типа контрастные переходы или как-то их усредняет. Я много тестов не делал честно говоря, чтобы понять конкретное его поведение.
      Вообще он учитывает несколько факторов, таких как УВ, вертекс колор и разницу в нормалях вершин и вероятно разницу в расстоянии вершин друг от друга. По сути работает так же как любой дециматор.
      Поэтому нужно следить переодически за тем как он сетку оптимайзит. По-моему, например, если сплющить в точку все вершины на одном или нескольких UV каналах, то он хуже начинает оптимайзить. По крайней мере у меня есть меш, где при прочих равных если у меня на одном из каналов экспортируются "пустые" UV - то это приводит к тому, что меш перестаёт эффективно упрощаться на расстоянии.
      Иногда плохие ув приводят к тому, что геометрия начинает портиться. Пару раз у нас такое было когда он на простых мешах начинал оконные проёмы ломать из-за того что УВ были некорректными. Но сам я не смотрёл в чём там дело было, это у коллег такое было.

  • @user-eq6vs7tl7r
    @user-eq6vs7tl7r Місяць тому

    С каких видеокарт работает адекватно данный движок.

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

      В зависимости от решаемых задач условная адекватная видеокарта будет сильно разниться, у меня RTX 2070 для моих задач хватает, хотя желательно что ни-будь помощнее 3060 и выше. Для создание же серьёзных рендеров лучше что-то посерьёзней и с большим объёмом памяти. Тут нужно из конкретных задач исходить.

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

      Смотря что для вас адекватно, минимум 40 фпс выдает rx580 ( 1060ti ) с нанитами и вкл. люменом при fullHD в густом лесу на небольшой карте.

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

    Тебе нужно устроиться в сайберию Нова и их научить оптимизировать модели 😂

  • @zergidrom4572
    @zergidrom4572 Місяць тому +1

    9:19 да там небо и земля по факту разница, даже не присматриваясь лол
    Понятное дело что это вполне ок, учитывая размер текстуры, но тем не менее )

    • @GMTechArt
      @GMTechArt  Місяць тому +1

      Странно было бы, с учётом того что я вырезал фрагмент нормалки (1\256 от оригинала) и замостил ей весь камень. Но если бы вы не знали что на камне по сути нет текстур пришло бы вам в голову?

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

      @@GMTechArt Не понял часть про "нет текстур"? лоуполи модель без нормала бы вообще смотрелся как уг. Без негатива.
      Просто я к тому написал, что разница очень заметна аш писец, даже через компрессию видео ютуба. А если бы я не знал что так было задумано и не с чем было бы сравнивать - то просто сразу бы встал вопрос "Это че за мыло в 2024 году?"
      Если бы размер объекта был раза в 4 меньше, тогда бы это не было столь заметно и смотрелось бы норм. Но чем больше объект - тем четче должна быть текстура :)
      Просто получилось "слишком урезано"

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

      @@zergidrom4572 на камне после переделок в материале осталась только нормалка 512х512, и всё, текстур в материале по сути нет, по сравнению с тем что было. Все данные остальные берутся из самого меша 8.5 мегабайт.

  • @SilverMLP
    @SilverMLP Місяць тому +1

    Спасибо!

  • @volniy-hleb
    @volniy-hleb Місяць тому +1

    Уменьшить геометрию камня тоже можно:
    ua-cam.com/video/2KJOvqbc0RI/v-deo.htmlsi=_EZ004yphuS1PH2T

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

      Можно, при сохранении текстур, в моём случае это привело-бы к существенному снижению качества, т.к. текстур по сути нету.

    • @FishMan1nsk
      @FishMan1nsk Місяць тому +2

      Тут так не получится потому что автор текстуры в вертексы запекает, а вашем примере их слишком мало.

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

    640Kb should be enough for anyone

  • @electromonkey.artstation
    @electromonkey.artstation Місяць тому +1

    Тут уже все успели пошутить про разработчиков смуты?

    • @GMTechArt
      @GMTechArt  Місяць тому +1

      И не только здесь в ВК первый же комментарий был про неё.)

  • @TigraPolosatiy
    @TigraPolosatiy Місяць тому +2

    Я бы просто сресайзил карту нормалей до 512 а не "потрошил" её в фотошопе(русскоязычном..🤦‍♂). Результат будет куда лучше смотреться чем палёные тайловые швы каждую 1/16 текстуры...
    При желании к ужатой нормали можно было бы добавить долю процедурного шума, для резкости.

    • @GMTechArt
      @GMTechArt  Місяць тому +4

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

    • @phoenexchannel7812
      @phoenexchannel7812 Місяць тому +2

      Лучше так вообще сжать до 128, ещё лучше будет, правда же?

    • @surt5927
      @surt5927 Місяць тому +2

      Русскоязычный фотошоп, потому что автор использует лицензию, а не пиратку ))

    • @TigraPolosatiy
      @TigraPolosatiy Місяць тому +2

      @@surt5927 я надеюсь ты рофлишь. Не один уважающий себя 2D-3D артист не будет работать в локализованой версии PS.

    • @user-wg7ut1du9c
      @user-wg7ut1du9c Місяць тому

      ​@@TigraPolosatiyне надо возводить в культ то, что не влияет на работу инструментов, это сразу выдаёт в тебе профана. Многие топовые художники прекрасно работают на русскоязычной версии (так же как и китайские - на китайской, и т.д.) Локализацию для того и придумали

  • @hardway777
    @hardway777 Місяць тому +1

    Потраченное время не стоит того, чтобы так заморачиваться. Оптимизировать отдельный камень не имеет смысла.
    1. Там текстура с неповторяющимся узором. Это кандидат на виртуальную текстуру.
    2. Геометрия специально сделана под наниты - стриминг геометрии, как и виртуальные текстуры.
    Оптимизировать нужно уже готовые сцены, где все ассеты уже стоят и смотреть в каких местах возникают затыки при стриминге. При вашем подходе в памяти будет сидеть куча таких 4k, 2k текстур, которые займут всю видеопамять, вместо того чтобы выгрузить те куски виртуальной текстуры, которые сейчас не нужны.
    Еще нужно в голове держать что прогресс идёт вперед а не назад. К тому моменту как проект будет закончен, актуальное железо будет совсем другим и уже на релизе графика в проекте будет заоптимизирована что весь потенциал железа не будет использован в полную силу, не говоря уже о том что страдать будет качество картинки. Но потраченного времени уже не вернешь, а урок так и не будет усвоен.
    Нужно оставлять возможность использовать Ultra-качество для топового железа, кому надо похуже - пусть в настройках выставляют под себя.
    Не нужно бороться с новыми технологиями и смотреть на них сквозь призму устаревшего опыта. Используйте технологии, которые даёт движок, научитесь их использовать.

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

      При моём подходе у меня в памяти и на диске будет камешек 8.5 мб и материал на 200 кБ,
      Делать Ultra настройки которые увидит в лучшем случае 1% игроков совершенно не рационально. Борьба с новыми технологиями? Это вы про что? Я как раз считаю что возможность использования высоко полигональных объектов даёт вторую жизнь материалам Vertex Paint, а в некоторых случая позволят практически полностью отказаться от текстур как в приведённом примере. Т.к. плотность данных на единицу площади объекта зашитых в цвета вершин сетки достаточно высокая.

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

      @@GMTechArt арт-директор скажет что вы тратите слишком много времени на ненужную оптимизацию, когда все нужные автоматические средства оптимизации уже есть в движке - виртуальные текстуры и наниты, которые выгружают из памяти данные о не нужных частях текстуры и геометрии. При сильном отдалении всё равно подобные объекты будут запечены в HLOD.
      Посмотрите демку Matrix и поковыряйтесь в текстурах моделей транспорта. Например у автобуса там текстура 32k. Одна из. Это виртуальная текстура.

    • @GMTechArt
      @GMTechArt  Місяць тому +1

      @@hardway777 И сколько там фпс было в этой демке? Matrix это просто техническая демка, демонстрация технологий и только, кто будет в здравом уме в реальную игру пихать текстуру 32к для какого то несчастного автобуса. Вы размер проекта представляете с такими текстурами?

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

      @@GMTechArt ua-cam.com/video/E-KFjYu637k/v-deo.html

    • @xephosbot
      @xephosbot Місяць тому +1

      @@hardway777 при этом в скомпилированной демке Matrix на железе i5 13600K и RTX4060 выходит средние 40 фпс. Это тот уровень производительности к которому вы стремитесь?)
      Графика в играх стагнирует ещё с 2016 года. Но при этом на тот момент вполне себе хватало GTX 1060 и RAM 16 GB чтоб поиграть практически во что угодно на Ультра настройках. А сейчас благодаря новомодным технологиям которые компенсируют лень разрабов даже на RTX 4060 большинство игр выходящих на UE 5 работают с просадками))