Как стать автором
Обновить
2781.04
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

3D для каждого: способы создать модель. Часть 1

Время на прочтение8 мин
Количество просмотров40K

Пожалуй, каждый или почти каждый читатель играл в современные графонистые игры, смотрел мультики Пиксар или хотя бы кино от Марвел или ДС. Или любой другой крупной компании — сейчас сложно найти фильмы без графики. И за просмотром или игрой наверняка задавались вопросом — а как это сделано? А, может, даже фантазировали, а что бы Вы сделали, если бы вдруг освоили 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-моделирование на практике, заодно демонстрируя конкретные примеры и методы, так сказать, наглядно.

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

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

Теги:
Хабы:
Всего голосов 47: ↑42 и ↓5+55
Комментарии42

Публикации

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds