Пожалуй, каждый или почти каждый читатель играл в современные графонистые игры, смотрел мультики Пиксар или хотя бы кино от Марвел или ДС. Или любой другой крупной компании — сейчас сложно найти фильмы без графики. И за просмотром или игрой наверняка задавались вопросом — а как это сделано? А, может, даже фантазировали, а что бы Вы сделали, если бы вдруг освоили 3D-графику?
Автор сообщества Фанерозой, биотехнолог, Людмила Хигерович.


Сегодня эта графика кажется уж слишком дешевой и корявой. Однако в год выхода фильма немногие киноленты могли похвастаться даже этим (опустим историю с хоббитами — она скорее исключение, чем правило). Кадр из фильма «Газонокосильщик», 1992, режиссер Бретт Леонард.

Что ж, ещё лет 30 — 40 назад графоний могли себе позволить только очень богатые компании с очень мощными суперкомпьютерами, а на создание одного ассета (набора функциональных моделей) уходили годы. Двадцать лет назад 3D программы стали доступны простым смертным, и рынок начали наполнять фильмы, наполненные оправданной или неоправданной 3D-графикой, а также игрушки, где юзеры могли побегать в виде низкополигонального человечка или даже монстра.


Осторожно! От этой малополигональной зарубы у некоторых читателей может случиться острый приступ ностальгии! «Готика» от Piranha bytes, 2001 год.

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

От полета в этой игре в облике дракона в начале двухтысячных захватывало дух! Сейчас графика сильно устарела, однако эффекты просвечивания все еще вызывают уважение. «Глаз Дракона» от издательства Акелла, 2002 год.

Софт для 3D-моделирования тоже не стоит на месте и развивается не только в сторону улучшения визуализации, но и в сторону friendly-функций — начиная с упрощения интерфейсов и функций и заканчивая оптимизацией производительности “под картошку”, что позволяет буквально каждому пользователю ПК подобрать себе софт по нуждам и возможностям. При желании можно и на телефон найти программу. Правда, функционал и качество большинства таких приложений оставляют желать лучшего.

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

  • Во-первых, туториалов на одни программы явно больше, чем на другие. Обучающих видео по 3ds max или Zbrush много разного качества и толка, причём сейчас их несложно найти практически на любом языке. Тогда как на менее популярные программы есть десяток туториалов на английском, да и те от разработчиков оригинального софта без особых пояснений.
  • Во-вторых, существует огромная пропасть между туториалами для “чайников” и “тех, кто что-то умеет или прошёл наш базовый курс/школу/читал/смотрел/пробовал” и так далее. При этом начинающие свой путь новички зачастую не любят открывать видео “для нубов”, но и во второй категории мало что могут понять, заваливая комментарии вопросами, а после ещё и обижаясь на автора туториала.
  • В-третьих, почти все туториалы ставят конкретную цель. Да, это хорошо, когда в туториале есть определённый пример и можно сравнить свой результат с результатом автора. Но в большинстве своём это повод для разочарования. Я ни в коем случае не против этого, даже наоборот, сама пропагандирую. Однако как быть с теми, кто даже не знает, с чего начать? Да и стоит ли?

Что ж, хочу сказать, что многие программы заточены под определённый тип или подход к моделированию. Конечно, существуют пакеты или даже самостоятельные программы “10 в одном”, как тот же 3Ds max или Blender. Однако узкоспециализированных программ достаточно много.
Отдельный повод для самобичевания — работы, подписанные как “Вот первое, что я сделал. Не судите строго.” Люди видят работы явно выше, чем их собственное представление о своих силах и думают “Я так точно не смогу.” Но на самом деле, за каждой такой работой стоят часы, сутки и месяцы подготовки, изучения основ программ или даже солидный опыт в моделировании или рисовании в других программах, порой даже оконченные курсы или художественные школы. В крайнем случае, десяток испорченных и поломанных болванок, которые никто, никогда не увидит.

Этот дракон — одна из моих первых работ! — подписал автор статьи, выкладывая рендер на одном из сайтов в далеком 2012. Да, это первая работа в конкретно том софте и конкретно теми инструментами, но до нее было знакомство с простейшими объектами в 3ds max, лепка в корявом пробном режиме MQO, ковыряние в разрезанных и сшитых примитивах и кучка брошенных на полпути недоделок в виде голов, хвостов, лиц и прочего)

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

!Предупреждение!


▍ Подходы и методы


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

Полигональное моделирование в самом просто его виде — создание полигонов через вершины:



Полигональное моделирование отличается тем, что поверхность объекта разбивается на точки — вершины (axis), соединяющие их “рёбра” и заполнение между ними — полигоны (polygons). Друг от друга полигоны ограничивают грани или рёбра (lines, ribs), соединяющие 2 вершины.

Совокупность вершин и полигонов называется мешем (mesh). Один цельный меш, не соединённый вершинами и полигонами с другим мешем, называется объект (object). На полигоны меша можно наложить текстуру, создав UV-map — карту наложения.

Полигоны можно разбивать (divide, subdivide), увеличивая детализацию и сглаживая грубые грани, можно сокращать (decimate) для экономии памяти компьютера, уменьшения нагрузки или упрощения работы.

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

Некоторые программы успешно совмещают векторное и полигональное моделирование или могут конвертировать (преобразовывать) один вид модели в другой, превращая облако точек поверхности в вершины или наоборот. К таким программам, например, относятся Autocad и Blender.

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

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

▍ Моделируем, как можем


Итак, начнём с самого простого по навыку, но одного из сложных технически — 3D-сканирование. Фактически, от человека тут мало что зависит, некоторые профессионалы даже не считают этот способ настоящим моделированием.

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

Правда, чтобы получить хорошее качество, нужна хорошая камера, желательно лазерный сканер, мощный компьютер и специальная программа. Впрочем, есть и бюджетные версии — некоторые программы для фотограмметрии вполне совместимы с современным телефоном, и могут быть использованы на домашнем компьютере. Но будьте готовы делать по 600 фотографий одной и той же детали с разных сторон и ждать 20 часов, пока ваша модель скомпилируется. И не забудьте про расстояние — все точки фотографирования должны быть равноудалены от объекта, иначе последний будет перекошен. Ну и для работы потребуется “допилить” модель — “починить” дыры в меше, отрезать куски ненужного фона, поправить UV и т.д.

Отдельный метод на границе сканирования и объектного моделирования мы рассмотрим позднее. Скажем только, что с его помощью актёров из реальной жизни переносят в фильмы и игры.

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

  • Плюсы: точность, простота.
  • Минусы: долго, мало полигонов.

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

Третий способ — примитивы. Собственно, обычно с него все и начинают, так как набор базовых фигур (primitives) есть в каждой программе. На рабочем поле размещают примитив или несколько примитивов, составляют из них композицию, деформируют, режут и сливают. Здесь же можно производить булевые операции (boolean operation). Возможно, вы уже слышали про это в рамках математики. Если нет, то выглядит это следующим образом: мы можем складывать и вычитать геометрию из одного объекта другим. Так, цилиндрами мы можем наделать отверстий в кубе, или сделать квадратное окно в сфере.

  • Плюсы: простота работы, булевые операции.
  • Минусы: низкая точность, грубые формы.

Объектное моделирование — идеальный вариант для создания антенн, машин, механизмом — словом, для разнообразных твердотельных и технических моделей (т.н. Hard surface). Впрочем, для органики, порой тоже приходится использовать нечто подобное — например, для создания глаз.

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

Скульптурирование или лепка (sculpting). Откровенно говоря, самый любимый метод моделирования объектов у автора статьи. Суть его заключается в том, что из базовой формы (примитива) по принципу куска глины или пластилина лепится новая форма с помощью выдавливания и наращивания объёма. Крупные куски отсекаются, тонкими инструментами создаётся мелкая детализация — совсем как в реальном скульптурировании.

Быстрый скульпт базовой морды в Zbrush. На данный момент зебра — самый мощный и функциональный софт для скульптинга. Разумеется, аналоги есть, и они добавлены в каждую крупную программу для моделирования, однако полностью заменить и вытеснить зебру они пока не могут.

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

Скелетное моделирование присутствует в разных программах, и реализовано в каждой по-своему. Так, например, выглядит скелетное моделирование в ZBrush — мы создаем какие-то базовые формы (основу, скелет) из Зсфер (Zsphere), и обращиваем ее «кожей». «Мясистость» контролируется величиной костей и соединяющих их переходов. После создания кожи ее так же можно модифицировать, подобно тому, как модифицировали бы любой полигональный объект.

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

Что ж, придётся показать, на что способно 3D-моделирование на практике, заодно демонстрируя конкретные примеры и методы, так сказать, наглядно.

Однако это придётся отложить на следующий длиннопост, так как примеров масса, а этот текст, итак, раздулся. Поэтому, до новых Встреч!

Все картинки в посте, кроме скриншотов игр и кадра из фильма — авторские. Модели также созданы автором текста.

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


  1. GritsanY
    13.01.2022 16:52
    +3

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


    1. VoronaDragon
      13.01.2022 21:06
      +1

      Спасибо)

      Я считаю, что если человек, не особо заинтересованных в изучении темы, прочитал с удовольствием, значит, написано не зря!

      А так, думаю, 3д в любом случае будет полезно попробовать - и весело, и пространственое мышление развивает)


  1. Ziner
    13.01.2022 19:24
    +4

    1
    1
    2
    2

    Моя самая первая работа в Zbrush по видео-уроку.

    Есть шансы на обучение?)


    1. VoronaDragon
      13.01.2022 21:06
      +1

      Очень круто)


    1. phanerozoi_evidence Автор
      13.01.2022 22:48
      +1

      Хорошая работа


  1. kovserg
    13.01.2022 19:24
    +1

    Думаю следует упомянуть вот такую удобную штуку www.pureref.com
    И вот это видео www.youtube.com/watch?v=1jHUY3qoBu8


    1. VoronaDragon
      13.01.2022 21:07
      +1

      Спасибо! Очень интересная программа)

      Как пинтерест, но для винды)


  1. iShrimp
    13.01.2022 19:50
    +1

    ZBrush, конечно, хорош для моделирования простых гладких форм. Но как в нём создать ветвистую или дырявую структуру (например, сердце со всеми камерами, клапанами, аортой)?

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

    В 2D-графике всё просто: есть векторные редакторы и есть растровые. Хотя у растра ограничено разрешение, он по своей природе ближе к реальности благодаря замечательному свойству: растр не позволяет двум фигурам занимать один участок пространства. Он гарантирует, что каждый пиксель (кроме граничных) принадлежит не более чем одной фигуре. Также, только в растровой графике полноценно доступны эффекты размытия, выделения границ, заливки.

    А существуют ли растровые 3D-редакторы, в которых можно создавать анатомические формы со сложной изменчивой топологией?


    1. pehat
      13.01.2022 20:34
      +7

      Minecraft.


      1. VoronaDragon
        13.01.2022 21:16
        +2

        Как вариант, да

        Это практически чистая воксельная графика


    1. bawan
      13.01.2022 20:54
      +1

      В Cinema 4d, к примеру, есть инструмент volume builder, с его помощью такие задачи вполне решаемы.


    1. VoronaDragon
      13.01.2022 21:14
      +2

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

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

      Увы, я не за компьютером, но на следующий пост приберешла небольшую запись как раз с созданием анатомически моделей с помощью зебры)


      1. iShrimp
        14.01.2022 17:35

        Скажите, пожалуйста, в ZBrush можно "вылепить" два щупальца и слить их концами? А основаниями? И чтобы при этом не сломалась топология? Я в раздумьях, какой софт установить.


    1. VoronaDragon
      13.01.2022 21:15
      +1

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

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

      Увы, я не за компьютером, но на следующий пост приберешла небольшую запись как раз с созданием анатомически моделей с помощью зебры)


    1. spinagon
      14.01.2022 08:43
      +2

      https://www.voxelmade.com/magicavoxel/

      Но это больше как пиксель-арт


      1. VoronaDragon
        14.01.2022 16:39

        Да, именно)

        Это и есть те самые воксели, механизм "рисования" которыми во многом перенят у пиксельной графики


      1. iShrimp
        14.01.2022 17:39

        К сожалению, там размер поля ограничен 256*256*256, нет поддержки прозрачности для поверхностных вокселей и, соответственно, нет гладкого рендеринга (marching cubes). Это программа для воксель-арта.


  1. wAgo
    13.01.2022 22:19
    -5

    Какой смысл "лепить" биоморфные фигурки (не чертежи) на экране если проще вылепить руками, а потом отсканировать скульптуру в 3D. Вылепить модель специально для сканирования, и не придётся "чинить меши". Конечно понадобится потом раскрашивать поверхность, но это полюбому будет быстрее чем маяться на плоском экране...


    1. phanerozoi_evidence Автор
      13.01.2022 22:45
      +2

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

      2) Зачем делать двойную работу? Сначала тратить дофига времени на скульптуру, потом тратить время на сканирование, которое не всегда быстро и устранять еще дефекты скана вручную, если проще просто вылепить скульптуру не хуже в 3D программах?

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


    1. VoronaDragon
      13.01.2022 23:11
      +3

      Все зависит от скила, т.е. навыка художника. Кому-то проще в 3д ыылкпить, кому-то руками.

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

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

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

      Да, так делают, но крайне редко.


      1. wAgo
        14.01.2022 00:24
        -4

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


        1. slava94
          14.01.2022 07:45
          +3

          Сравнение не уместно. 3д печать и моделлинг для геймдева - это совсем разные вещи. Игровые модели - это не чертеж, который штангенциркулем можно поправить. Они требуют правильно направленную топологию, сетку оптимальной плотности, ограничены в количестве полигонов, к ним нужны текстурные развертки, которые удобнее, опять же, разворачивать на модели с правильной топологией, все это ещё с возможностью анимации. Современным принтерам почти пофиг на топологию, артефакты геометрии в виде пересечений, а текстурные развертки и анимация им тем более не нужны. 3д сканы используются в геймдев моделировании, но только как болванки, основы для ретопа, где не нужна точность и детализация. Для примера, используют сканы каких-нибудь коряг. А вылепить персонажа из глины и отсканировать - это не канает ни в каком виде, двойная/тройная работа, это если человек ещё лепить руками умеет. Допустим, потратит человек несколько часов на проработанную "скульптуру" из глины или чего-то там. Отсканирует. И все равно с нуля придется строить то же самое, используя скан в качестве "подосновы", потому что для геймдева результат скана не канает. Но дело даже не в этом. Нормальный моделер эскиз какого-нибудь чупакабры в zbrush накидывает за час, с проработкой мелких деталей(хоть и черновых) и т.п., руками так быстро не слепить никак, потому что скорость операций в программе для скульптинга - молниеносная.


        1. slava94
          14.01.2022 07:54
          +3

          Короче, главная мысль в том, что править корявую 3д модель - дольше, чем слепить с нуля в софте правильную. И лепить в софте - это гораздо быстрее, если речь идёт о биоморфных формах сложнее уровня "палка-палка-огуречик".

          Плюс, как вы сказали, вашему приятелю ПРИНОСЯТ уже готовые объекты. Не думаю, что он бы стал бы тратить время и лепить фару с линейкой и циркулем, чтобы ее отсканировать. Я думаю, его основная цель - перенести размеры и пропорции объекта без дотошного обмера, т.е., по сути это та же болванка, и в этом кроется экономия времени. И для таких целей скан используется в геймдеве, например для переноса моделей автомобилей в том же gran turismo и forza. Когда уже есть готовый объект, и надо его точно повторить. Только моделеры все равно выстраивают меши с нуля, просто с сохранением точных форм оригинала благодаря болванке. А если процесс творческий, а не прикладной, и нет цели что-то дотошно воспроизвести, то построить условную "шестерёнку" даже в том же 3д Максе - это 20 секунд.


        1. VoronaDragon
          14.01.2022 16:42
          +2

          Когда речь идёт о простых геометрические формах - да, в отсутствии скилл моделирования сканирование - достаточно распространённый метод. Но именно что простых форм, у которых не так много сложных поверхностей, пересечений и плавных участков.

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


  1. Quiensabe
    16.01.2022 00:27
    +1

    И не забудьте про расстояние — все точки фотографирования должны быть равноудалены от объекта, иначе последний будет перекошен.

    Это не так.