{"id":3824,"url":"\/distributions\/3824\/click?bit=1&hash=a0d33ab5520cacbcd921c07a49fc8ac5b78623b57936b992ce15c804b99210d4","title":"\u041a\u0430\u043a\u0443\u044e \u0440\u0435\u043a\u043b\u0430\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u043d\u0430 DTF \u0438 \u043a\u0442\u043e \u0435\u0451 \u0443\u0432\u0438\u0434\u0438\u0442","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"75ec9ef4-cad0-549d-bbed-1482dc44e8ee","isPaidAndBannersEnabled":false}
Gamedev
Kaino university

Мини-урок от ученика. Floating Geometry

I. Знакомство и вдохновение.

Привет всем, меня зовут Карен

Вырос я в Ростовской области, но сейчас живу в г. Байконур на территории республики Казахстан (действующий космодром). С 2007 по 2013 год учился на промышленного дизайнера, в то время только пытался разобраться в 3D пакетах и Photoshop, приходилось изучать все самостоятельно через такие артефакты прошлого:

Трюкачом я конечно не стал😄

Касаемо 3d, то 3ds max выглядел для меня очень сложным. Не дружелюбный, интерфейс пугал, а логика моделирования была не понятна новичку (спасибо что сейчас есть Blender), одногруппник посоветовал Sketchup для первых проектов, а на тематических форумах я узнал про KeyShot, простая и интуитивная логика программ и их совместимость в форматах затянула, я поплыл по меньшему сопротивлению (не делайте так), сегодня старые работы вызывают только улыбку:

В процессе учёбы практику проходил в «Ростсельмаш», там я узнал о Fusion 360 и впервые увидел графический монитор, ребята работали над эргономикой и внешним видом техники, создавали макеты.

Но что могло пойти не так? После института и службы в армии начал сталкиваться с финансовыми проблемами и давлением в своём окружении: твои рисунки — это баловство и несерьезно! С твоей профессией только в музей, это только хобби!

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

Только в начале 2018 я одумался и начал все свободное время уделять на рисунки, простенькие логотипы, иллюстрации и рекламу, иногда и простые 3D объекты для маркетинга. Так я набрался опыта в общении с заказчиками (все мемы на тему фриланса в интернете действительно реальные истории). Много денег фриланс не приносил, мой уровень был мал, а я превращался в швейцарский нож. Полноценного направления и роста скилла не было, я топтался на месте и продолжал душно, но стабильно работать бумажным клерком.

Начал клацать на разного рода марафоны, интенсивы и мастер-классы, везде была вода и реклама с ценником на новый айфон. Некоторые курсы (не только в 3D) от других школ я получил и даже не прошел до конца по разным причинам, и не мог определиться с направлением.

В марте 2021 г. попал на рекламу похищения коровки. Я скептически подал заявку, думал снова будет бурст рекламы в стиле “вот тебе лодка, а весла по скидке, жать сюда”, даже взялся за него не сразу…как я заблуждался!

Особенно меня вдохновили эти моменты:

  • Харизма Павла и его история по пути в индустрию (никогда не поздно начать);
  • Понятная подача материала, даже для людей с нулевой базой;
  • Полученные знания с бонусного урока к бесплатному марафону помогли мне сделать небольшую анимацию на фрилансе, это немного окупило покупку курса Blender 2.0, думаю вы догадываетесь, что я не задумываясь приобрёл и курс Gamedev.

II. О выборе проекта:

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

Куратор Kaino Анатолий Коробейников мне очень помог с разбором и поиском референсов, и в доработке идеи до финального результата. Отдельное ему спасибо за это.

Почему я решил остановиться на дредноуте из вселенной Warhammer 40k:

1. Личные предпочтения - одна из любимых вселенных.

2. Есть фанатская база.

3. Не сложная геометрия - решил практиковаться постепенно.

4. Есть достаточно много референсов и авторов в схожей тематике для идей.

Если вы собрались придумать и сделать что-то самостоятельно, то советую выписать плюсы и минусы (их наличие) в планируемых работах или составить таблицу.

Такой метод проектирования и анализа поможет с выбором между 2 или 3 моделями:

1) Наличие референсов, эскизов и чертежей.

Возможно вы сами неплохо умеете рисовать эскизы и выдумывать идеи, но референсы нужны для насмотренности, даже «крутаны» их используют. Хорошим началом будет комбинирование готовых идей. Если научитесь повторять – сможете делать и свои работы. Советую создать аккаунт на Pinterest для вдохновения и сохранять понравившиеся работы, скетчи, образы в разные папки. Скоро, вы заметите, что алгоритм сайта начинает подкидывать вам похожие по стилю работы ежедневной подборкой.

conceptartworld.com тоже стоит внимания.

sketchfab.com платформа с 3D моделями.

2) Уровень сложности.

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

3) Цель, стиль и актуальность.

Подумайте чего именно вы хотите. Закрепить навыки практикуясь? Нацелены на определенную тематику той или иной студии для возможной вакансии?

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

Процесс создания и запекания плавающей геометрии.

Перейдем ближе к сути этой статьи.

Закончив low poly и high poly версию дредноута, я решил добавить элементы истории проекту и задать настроение. Действовал по такой логике: эта боевая машина войны, а значит на ней должны быть следы битвы.

В сети вы можете найти готовые решения повреждений и пулевых отверстий для своих проектов в виде альфы или нормалей за копеечку (например в marketplace на artstation или gumroad). В моём случае я целился на практику и создания работы в портфель, поэтому решил попробовать сделать их самостоятельно.

Но о каком скульптинге может идти речь, если хайполи модель уже неплохо грузит систему, но полигонов для нужной геометрии не хватает. К тому же добавление к основному объекту сабдивов приведет к дополнительным тормозам даже на хорошей аппаратуре + не хочется возиться с полигональной сеткой. Тут нам поможет "плавающая геометрия" это отдельные островки, которые обманут процесс запекания. Их еще называют Флоатеры (Floating geometry)

Флоатеры — это детали, выполненные отдельно и «парящие» над поверхностью модели. Они запекаются на low poly модель. Иллюзия выдерживается, если нормали по краям наших "парящих" деталей совпадают с нормалью к поверхности под ней.

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

Making of «Смертоцикл Вождя»

«Её часто называют "гоблинской газонокосилкой". Этот рычащий монстр обращается с врагами так, словно они трава...которую нужно скосить»

Для комфортного старта в скульпте будет достаточно простого графического планшета “доски” от 60$ (фирма и уровни нажатий в этом сегменте не сказать что заметно отличаются, новичок и вовсе не заметит, а модели дороже 200$ рассчитаны уже на опытных художников и 3D скульпторов, там появляются уже дополнительные кнопки/ползунки, но купив топовый агрегат за 1000$ мастером вы резко не станете, приобретайте периферию постепенно в соответствии с вашими потребностями и навыками).

А теперь вернемся к моделированию, сразу предупреждаю, что я не знаком сильно со скульптингом в 3D. Расскажу как сделал именно я, но для наших лепешек (от слова лепить) и повреждений больших знаний и не требуется, текстуру для кистей я тоже не использовал.

Этап №1

Создаем Plane (заготовку) в отдельную папку, уменьшаем до необходимого размера и добавляем сабдивов (я сделал 35). Количество добавляйте в зависимости от того, как близко вы будете рассматривать модель, но не переусердствуйте, иначе столкнетесь с тормозами системы тк сейчас это уже 1200+ треугольников.

Теперь переключаемся c object mode в sculpt mode, панель инструментов изменится на “колобков” это наши инструменты, они отвечают за принцип действия кисти (вдавливание, сглаживание и тд)

Этап №2

Начинаем поэтапно вытягивать форму, используя в нашем случае Draw, Draw Sharp и Smooth. Для силы нажатия увеличиваем параметр Strength, а для области Radius. Не бойтесь экспериментировать, вам поможет только практика, попробуйте отдельно каждый инструмент, к примеру Crease словно сужает бугры, а Nudge тянет полигоны в стороны.

Сейчас вам покажется, что мало сабдивов и нужная форма не получается, это действительно так, но не нужно снова разделять полигоны, достаточно добавить shade smooth и модификатор Subdivision на 1 итерацию, получим следующий результат:

Отдельно отмечу, что можно использовать модификатор Multiresolution (обычно просто Multires). Позволяет подразделить меш, подобно модификатору Subdivision Surface, но также делает возможным редактирование новых уровней подразделения в Sculpt Mode. И не так грузит систему как Subdivision.

Теперь работать гораздо понятней, но это уже почти 10 тысяч треугольников (Разгрузить систему можно отключив Subdiv, но перед экспортом обязательно примените его. Либо включите функцию Simplify)

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

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

У меня получились такие элементы:

С деталями я конечно увлекся, в моём случае не требовалось такой проработки и количества полигонов, когда стал их дублировать на модели, то ощутил эту ошибку, но зато неплохо попрактиковался c планшетом.

Этап №3

Полученные плюшки прислоняем к геометрии high poly - без пересечений и не слишком далеко, зазор должен быть максимально минимальным как на рисунке справа, а слева я расположил плохие варианты компоновки (Subdivision можно отключить на объектах для меньших лагов):

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

Если у вас возникнут проблемы с расположением такой геометрии на поверхность под углом, то не начинайте крутить плоскость. Советую изменить Pivot Point на внутренний край плавающей геометрии и магнитить на плоскость (убедитесь, что нормали не вывернуты наружу).

Этап №4

Далее сохраняем проект, применяем модификаторы на наших лепешках и high версию модели, объединяем их с основной геометрией в единый меш (Ctrl+J, активным объектом выбирайте основную геометрию, а не декор, чтобы не сбросить название ваших high и low версии деталей, советую проверить после объединения), делаем видимым low и high poly версию выделяем всё и экспортируем в формат fbx (File-export-FBX) не забываем поставить галочку на Selected Objects

Обзываем HP_LP - это для Marmoset, он нам нужен для запекания только normal map и Ambient Occlusion (поясню позже почему не используем только Substance Painter).

Для SP придется отдельно сохранять low и отдельно high. Отключаем одну из коллекций (лепешки экспортируем с high версией), выделяем видимые объекты и сохраняем под своими именами, на выходе 3 файла: HP_LP; HP; LP.

Этап №5

Переносим фаил HP_LP в marmoset (перед импортом нажмите на иконку “хлебушка” и он создаст группу), я выбирал разрешение текстур в 4к и карту Normal+Ambient occlusion (остальное запекал в SP), не забудьте указать директорию сохранения в графе Output.

Запекаем и получаем эффект упавшего или срезанного пластилина вместо наших повреждений. Не спешите стрелять тапками, прелесть marmoset в том, что мы можем настроить запекание высоты normal локально для каждой группы объектов, а в SP только общей оболочкой. Исправить эту проблему в SP мне не удалось через длину лучей, появлялись артефакты соседней геометрии на других деталях, у вас может быть все хорошо, но если похожая проблема, то вот что я сделал:

Выбираем проблемный объект кликом мыши во вьюпорте, программа развернет в дереве объектов нашу группу с Low и High, мотаем ползунок в их поиске, жмем на Low, появятся новые параметры, выбираем Paint Offset, откроется окошко с вашей разверткой, двигаем ползунок Value (белым цветом проявляете, а черным прячете, действует как маска в Photoshop), мажем кисточкой в том месте, где выявлены проблемы.

Если этого стало недостаточно, как в моем случае, то пробуем изменить величину Cage - это общие границы, которые система должна будет учитывать для запекания. Но не делайте слишком большой Max Offset, могут появиться артефакты от соседних элементов. Эмпирическим путем подбираем результат который нас устроит:

Раз мы залезли в настройки Cage, то у меня возникла и другая проблема, который уже грешит Marmoset - это странное расположение ребристой поверхности (которую тоже можно было сделать плавающей). Тут стоит таким же образом поработать с Paint Skew. Жмем, ставим галочку на Show Skew, должны появиться направления лучей и окошко с картой текстур:

Закрашиваем наши “ворсинки” черным цветом в параметре Value.

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

Полученные карты текстур мы можем импортировать в Substance Painter, (просто перетащите их на панель материалов, а затем выберете соответствующие группы) остается только запечь оставшиеся текстуры.

Заключение

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

Автор: Карен Хачатрян

0
3 комментария
Sir Heretic

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

Ответить
Развернуть ветку
Drbanana

Не проще один раз отрендерить в текстуру и использовать ее для кисти в том же SP?

Ответить
Развернуть ветку
Jertex

Какая разница будет ли флоатер касаться меша и будет ли он внутри, как это помешает ему запечься? Не запечется только если будет больше кейджа

Ответить
Развернуть ветку
Читать все 3 комментария
null