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

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

Способы моделирования


1. Полигональное моделирование


Это, наверное, самый популярный способ разработки 3D модели. Суть заключается в создании и редактировании сетки из полигонов, которые состоят из вершин и ребер. Нажимая на левую клавишу мыши мы создаем новую вершину, которая соединяется ребром.



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



Говоря простым языком: «Мы создаем сетку, которая состоит из примитивных фигур (примитивов)». В результате получается многогранник. Чтобы лучше ассоциировать, можно вспомнить как в фильмах и анимации много маленьких роботов превращались в одного большого. Так же и с полигональным моделированием. Много примитивов составляют одну большую модель.

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

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

2. NURBS моделирование




Основное отличие этого способа от полигонального моделирования в плавности. NURBS модель состоит не из полигонов, а из кривых (сплайнов), однако при визуализации все равно преобразуется в полигоны, хотя внутри системы моделирования остается в кривых. Используется для создания плавных органических форм и моделей.

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

3. Точное моделирование в Сапрах




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

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

Про полигоны




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

Дело в том, что модели делятся по количеству полигонов:

  • Hi-poly — большое количество полигонов (примерно, 1 — 3 миллиона).
  • Mid-poly — среднее количество полигонов.
  • Low-poly — малое количество полигонов (примерно 5 — 10 тысяч).

Соответственно чем больше полигонов, тем более детализирована модель, но требует больше ресурсов. Таким образом hi-poly — самая детализированная.

В играх на ПК и консоли чаще всего используют mid-poly, иногда hi-poly (в AAA проектах), а в мобильных играх low poly.

Скульптинг




Приступаем к части моделирования под названием «Скульптинг». Это первый 3D этап в создании персонаж. В нем персонаж лепится как из глины, отсюда и название. На этом этапе можно окунуться в творчество и лепить не задумываясь о полигонах. А их будет много. Не волнуйтесь, позже все это дело мы упростим. Кстати, для обучения скульптингу хорошо бы приобрести графический планшет.

И так, плавно переходим к основной теме статьи. Но я ничего же не сказал про программы. Предлагаю взять Zbrush для скульптинга и 3D Coat для ретопологии и развертки. Первым делом нужно запустить Zbrush. Мы попадаем в основной экран программы. Сначала нам нужно создать сферу.



Во вкладке Tool, которая находится в правой части экрана, выбираем пункт «Sphere3D». Вытягиваем сферу в рабочей области нажатием лкм.



Для перемещения используем горячие клавиши:

  • лкм — вращение.
  • лкм + alt — перемещение.
  • ctrl + пкм — приближение.

Нажимаем «Load Next User Interface Layout».



Появляется панель с кистями. Для редактирования сферы нажимаем «Edit».



Чтобы не получать такое сообщение нужно нажать «Make PolyMesh 3D » в панели Tool.



Теперь можно скульптить. Осталось только включить симметрию на клавишу «X». При нажатии на alt кисть начинает работать в обратную сторону. Если кисть выдавливала, то наоборот будет вдавливать. Для ушей, глаз, носа лучше всего создавать отдельные сферы и скульптить их отдельно. Со временем сетка будет меняться и понадобится пересчитать полигоны. Для этого во вкладке Geometry нужно нажать DynaMesh.

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



Если нет идей для скульптинга, можно зайти на artstation.com и найти понравившуюся работу. Можно найти концепт-арты, добавить Zbrush и использовать как референс для тренировки.

В процессе работы над моделью может понадобиться инструмент «маска». Применить его можно нажав на ctrl. Маска — это область на которую не реагирует кисть. Таким образом можно лепить много чего интересного.



Под конец работы над моделью получится примерно 1 — 3 миллиона полигонов. Такую модель будет сложно открыть в другой программе, поэтому нужно сократить количество полигонов. Для этого во вкладке Zplugin выберем пункт «Decimation Master» и нажмем на Pre-process All. Zbrush запустит процесс и сократит количество полигонов.



Готовую модель можно вывести в формате obj. Его кушают практически все редакторы. Сохранить можно нажав на «Export» в панели Tool.

Ретопология?


После скульптинга у нас появится файл с моделью в расширении .obj. Открываем 3D Coat и перетаскиваем туда файл.

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



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

Развертка


Развертка или UV mapping очень важный процесс в разработке модели. На этом этапе мы уже подготавливаем модель к текстурированию.В чем суть? Представьте картонную коробку, которую разложили на плоскости. Коробку разобрали и теперь она в виде одного листа картона. Так же и с нашей моделью, мы разложили ее в 2D пространстве.



Нажимаем на вкладку uv mapping. 3D Coat показывает развертку модели на данный момент. Синим и красным цветом отмечены артефакты. Чтобы текстура без проблем ложилась на модель нужно, чтобы во вкладке UV Preview был только серый цвет. Как это сделать? На shift + лкм нужно удалить ненужные швы так, чтобы модель разделилась на части. UV развертка нужна для удобства текстурирования и экономии ресурсов.

После того, как на модели не останется артефактов нужно нажать упаковать UV, а потом применить UV раскладку. Поздравляю, модель окончательно готова к анимации и текстурированию.

Комментарии (23)


  1. ZoomLS
    15.04.2019 21:50

    Тема очень интересная. Но после прочтения статьи, осталось ощущение, как в той картинке «Как нарисовать Сову».


  1. pavellyzhin
    15.04.2019 22:08

    Да, интересная тема. Сколько весит файл .obj из примера после экспорта?
    Сколько нужно Внутренней Памяти(ОЗУ) и/или Графической памяти при экспорте и работе с Hi-poly(примерно, 1 — 3 миллиона), Mid-poly — среднее количество полигонов, Low-poly(примерно 5 — 10 тысяч)?


  1. AxisPod
    16.04.2019 05:58

    Аааа, треугольный полигон на ноге, ааа, жесть.


    1. Artystarty
      16.04.2019 10:50

      Просто любопытно, где вы его обнаружили?


  1. karl93rus
    16.04.2019 08:26

    Про полигональное моделирование:

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

    Простите, что? А чем же я занимался лет 6 своей жизни тогда? А я вам скажу. Из бокса лепил домики по чертежам с точностью до миллиметра. И полигональное моделирование для этого подходит более чем прекрасно.


    1. Artystarty
      16.04.2019 11:25

      Имеет смысл поправить: привязка к единицам измерения во многих программах, всё-таки, есть. И в «мэйнстримовском» софте (типа Майи или 3DS Max) и в «альтернативном» (например, в Blender'е) имеются настройки для «калибровки» сцен в удобной метрике. Как сейчас модельки на печать выводить без этих настроек?


  1. DmitriKon
    16.04.2019 09:48

    Предлагаю взять Zbrush для скульптинга и 3D Coat для ретопологии и развертки.


    Отличный выбор! Приготовьте 994$. :)


    1. Kombik Автор
      16.04.2019 09:48

      Или повязку на глаз)


      1. Leopotam
        16.04.2019 10:36

        Тогда еще придется раскошелиться на попугая на плечо :)


        1. igruh
          16.04.2019 10:46

          Без ампутации ноги не аутентично.


          1. Leopotam
            16.04.2019 10:49

            Тогда еще придется постелить на пол коврик, стилизованный под палубу, чтобы ходить по нему, покачиваясь и выражая недовольство через «arrrr!!!».


    1. grvelvet
      16.04.2019 12:33

      А можно взять бесплатный blender где в бетке 2.8 неплохо так допилили режим скультинга.


      1. Foreglance
        16.04.2019 12:53

        Вроде в Blender давненько z-brush есть?


      1. DmitriKon
        16.04.2019 12:56

        Можно. ) Правда, в бетке 2.8 ничего у скульпта не допиливали, к сожалению. И судя по блогу, в ближайшем будущем не собираются.


  1. Artystarty
    16.04.2019 11:14

    Тут нам нужно фактически вручную рисовать полигоны.

    Для Blender'а есть addon'ы, которые позволяют сильно упростить процесс создания топологии по готовой скульптуре: от полностью автоматического (например, DynRemesh) до режима «ручного управления» (RetopoFlow).

    Вокруг глаз и рта полигоны выстраиваем кругом.

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


  1. lOlbas
    16.04.2019 11:23

    Кстати, чаще всего у полигона четыре грани, но бывает и три.

    А почему так? Было бы неплохо привести какое-нибудь сравнение


    1. Artystarty
      16.04.2019 11:43

      Четырёхугольники удобны для так называемого моделирования в режиме subdivision surface (разбиение поверхности на более мелкие полигоны). Применяется для моделирования сглаженных поверхностей с высокой детализацией. С четырёхугольниками на таких поверхностях не возникает искажений / артефактов. Треугольники же, если они есть в модели, могут вносить сумбур и «глюки» в структуру. Треугольники «прокатят» для низкополигональных (low-poly) моделей, которые чаще используются в играх.

      Можно погуглить эту тему, ещё проще и быстрее — глянуть ролики на Youtube.


      1. lOlbas
        16.04.2019 12:27

        Я читал, что экспорт моделей из того же 3ds Max разбивает все квады на треугольники, т.к. драйвера OpenGL и DirectX, например, работают только с треугольниками. Значит, искажения/артефакты возникают на стадии моделирования, но не использования?


        1. karl93rus
          16.04.2019 12:54

          Формат .fbx так работает, да. И для лоуполи модельки это не будет принципиальным моментом. При экспорте сохранятся группы сглаживания и координаты развертки. Но вот если моделировать, скажем так, для картинки, то именно из-за алгоритмов сглаживания полигоны, которые имеют не 4 вершины, а больше или меньше, дадут артефакты. Там не будет нормально рассчитываться свет и текстуры поползут не пойми куда. Получится просто темное или светлое пятно непонятной формы.


        1. Artystarty
          16.04.2019 13:04

          Subdivision surface — математическая процедура, описанная алгоритмом, сглаживает всё, что ей предложат. Применяется, в основном, для визуализации, но не в «real time». Если на входе — сетка, состоящая из треугольников, то результат сглаживания непредсказуем. И не важно, готовая это модель или ещё в процессе создания.

          Экспорт в формат 3ds, возможно, разбивает поверхность на треугольники. В Blender это лечится нажатием 4 клавиш (последовательно — 2+2). Сейчас «тридэшники» экспортируют в основном в OBJ или FBX (более продвинутый формат обмена, придуманный Autodesk на замену 3ds). Оба формата сохраняют правильную топологию из четырёхугольников.

          Как это всё согласуется с драйверами OpenGL и DirectX — интересный вопрос, сам бы хотел знать :)


          1. Chaos_Optima
            16.04.2019 13:16

            Если на входе — сетка, состоящая из треугольников, то результат сглаживания непредсказуем

            Ну вообще-то предсказуем, osd также разбивает треугольники на 3 четырёхугольника и продолжает работать (а теселяционные шейдеры в dx и ogl так вообще работают только с треугольниками). И вообще причина в четырёх угольниках как стандарт виновата pixar из-за своих видней в реализации сабдивов и из-за ptex формата.
            Сейчас «тридэшники» экспортируют в основном в OBJ или FBX (более продвинутый формат обмена, придуманный Autodesk на замену 3ds). Оба формата сохраняют правильную топологию из четырёхугольников.

            ну вообще-то это не так, obj создаёт огромные файлы и грузится слишком долго, fbx вообще от версии к версии меняется и не сохраняет обратную совместимость, к тому же формат закрытый. Нормальные студии используют Alembic, а в последнее время все потихоньку переползают на USD.


            1. Artystarty
              16.04.2019 13:41

              Ну вообще-то предсказуем

              Если OpenSubDiv в теории проделывает некоторую полезную работу, это ещё не значит, что на практике всё замечательно: треугольники в структуре топологии модели не проявляют себя только на сплошных гладких поверхностях (пусть даже равномерно изогнутых). Во всех остальных случаях, особенно на контрастных сгибах, — искажённая геометрия.

              Нормальные студии используют Alembic, а в последнее время все потихоньку переползают на USD.

              Кстати, да, полезное замечание.


  1. ThargoN_SG
    16.04.2019 12:54
    +1

    Я имею небольшой опыт работы в 3DS Max/Blender/Fusion360 и потому меня подобные статьи очень интересуют — однако после прочтения этой у меня возникло ощущение смятения: Много моментов показались спорными, например, как можно было смешать в одно мух и котлетами — полигональное, примитивы и сетка, NURBS, САПРы… Т.е., возможно, это я где-то чего-то недопонимаю, то ли автор где-то намеренно упрощает для новичков, то ли автор где-то ненамеренно сам ошибается… Вероятно, для совсем новичков все ок, для опытного — тоже, он и так все понял, а для меня — «эм, я запутался… :(»
    Автору спасибо за тему — мне такие посты крайне интересны, т.к., как минимум, комменты можно крайне полезные почерпнуть. Надеюсь, мое ворчание будет воспринято, как обратная связь и последующие статьи будут лучше и еще полезнее!