![](https://habrastorage.org/webt/nf/am/zy/nfamzyxup38bdqzxtiqt4cnrinw.png)
Пожалуй, каждый или почти каждый читатель играл в современные графонистые игры, смотрел мультики Пиксар или хотя бы кино от Марвел или ДС. Или любой другой крупной компании — сейчас сложно найти фильмы без графики. И за просмотром или игрой наверняка задавались вопросом — а как это сделано? А, может, даже фантазировали, а что бы Вы сделали, если бы вдруг освоили 3D-графику?
Автор сообщества Фанерозой, биотехнолог, Людмила Хигерович.
![](https://habrastorage.org/getpro/habr/post_images/590/1fd/7f8/5901fd7f822275f1d033517b42e551f0.png)
Сегодня эта графика кажется уж слишком дешевой и корявой. Однако в год выхода фильма немногие киноленты могли похвастаться даже этим (опустим историю с хоббитами — она скорее исключение, чем правило). Кадр из фильма «Газонокосильщик», 1992, режиссер Бретт Леонард.
Что ж, ещё лет 30 — 40 назад графоний могли себе позволить только очень богатые компании с очень мощными суперкомпьютерами, а на создание одного ассета (набора функциональных моделей) уходили годы. Двадцать лет назад 3D программы стали доступны простым смертным, и рынок начали наполнять фильмы, наполненные оправданной или неоправданной 3D-графикой, а также игрушки, где юзеры могли побегать в виде низкополигонального человечка или даже монстра.
![](https://habrastorage.org/getpro/habr/post_images/0d4/600/ae1/0d4600ae145b7aba4a8ac40e9f8cc674.png)
Осторожно! От этой малополигональной зарубы у некоторых читателей может случиться острый приступ ностальгии! «Готика» от Piranha bytes, 2001 год.
Сегодня не проходит и месяца, чтобы не была анонсирована какая-нибудь крутая (или не очень) игрушка с трассировкой лучей или киношка с полностью перерисованными фонами и героями. Скрины приводить не буду, т.к. Fair use работает через раз, а примеры вы и сами можете привести, даже побольше, чем я. Лучше скину картинку со своей любимой игрой из моего детства.
![](https://habrastorage.org/getpro/habr/post_images/0e6/cd4/08f/0e6cd408fc7c10efb2c2e5e8ee22f6c3.png)
Софт для 3D-моделирования тоже не стоит на месте и развивается не только в сторону улучшения визуализации, но и в сторону friendly-функций — начиная с упрощения интерфейсов и функций и заканчивая оптимизацией производительности “под картошку”, что позволяет буквально каждому пользователю ПК подобрать себе софт по нуждам и возможностям. При желании можно и на телефон найти программу. Правда, функционал и качество большинства таких приложений оставляют желать лучшего.
Но при обилии программ в них легко запутаться. Не умаляет проблемы и избыток туториалов, хотя бы потому, что избыток этот иллюзорный.
- Во-первых, туториалов на одни программы явно больше, чем на другие. Обучающих видео по 3ds max или Zbrush много разного качества и толка, причём сейчас их несложно найти практически на любом языке. Тогда как на менее популярные программы есть десяток туториалов на английском, да и те от разработчиков оригинального софта без особых пояснений.
- Во-вторых, существует огромная пропасть между туториалами для “чайников” и “тех, кто что-то умеет или прошёл наш базовый курс/школу/читал/смотрел/пробовал” и так далее. При этом начинающие свой путь новички зачастую не любят открывать видео “для нубов”, но и во второй категории мало что могут понять, заваливая комментарии вопросами, а после ещё и обижаясь на автора туториала.
- В-третьих, почти все туториалы ставят конкретную цель. Да, это хорошо, когда в туториале есть определённый пример и можно сравнить свой результат с результатом автора. Но в большинстве своём это повод для разочарования. Я ни в коем случае не против этого, даже наоборот, сама пропагандирую. Однако как быть с теми, кто даже не знает, с чего начать? Да и стоит ли?
Что ж, хочу сказать, что многие программы заточены под определённый тип или подход к моделированию. Конечно, существуют пакеты или даже самостоятельные программы “10 в одном”, как тот же 3Ds max или Blender. Однако узкоспециализированных программ достаточно много.Отдельный повод для самобичевания — работы, подписанные как “Вот первое, что я сделал. Не судите строго.” Люди видят работы явно выше, чем их собственное представление о своих силах и думают “Я так точно не смогу.” Но на самом деле, за каждой такой работой стоят часы, сутки и месяцы подготовки, изучения основ программ или даже солидный опыт в моделировании или рисовании в других программах, порой даже оконченные курсы или художественные школы. В крайнем случае, десяток испорченных и поломанных болванок, которые никто, никогда не увидит.
![](https://habrastorage.org/getpro/habr/post_images/fbb/965/3ce/fbb9653ce5d01033a31774ad12883201.png)
Поэтому я решила познакомить Вас не с основами моделирования как таковыми, и не с программами для моделирования, хотя упоминать конкретные примеры буду, это неизбежно. Я познакомлю вас с подходами к моделированию и методами создания моделей вне зависимости от конечного результата. Да, это всё было просто огромное лирическое отступление. Но сейчас перейдём к делу.
!Предупреждение!
![](https://habrastorage.org/r/w1560/webt/iu/p3/91/iup391t5yidfusnn6fsdwuwej7k.png)
![](https://habrastorage.org/webt/iu/p3/91/iup391t5yidfusnn6fsdwuwej7k.png)
▍ Подходы и методы
Существует два основных подхода к моделированию — объектный, также называемый векторным, и полигональный. Векторная 3D-графика строится на фиксированных формах (поверхностях геометрических объектов), представляющих собой совокупность множества точек поверхности или только информации о габаритах объекта (длина-ширина-высота, диаметр, объём, точки пересечения и т.п.). В некоторых случаях такой подход выгоден, например, в промышленном моделировании. Но порой работать в таком ключе становится сложно. Наложить на такой объект текстуры, например, не представляется возможным — вместо этого используют шейдеры (shaders), эффекты, имитирующие вид и поверхность материалов.
Полигональное моделирование в самом просто его виде — создание полигонов через вершины:
![](https://habrastorage.org/webt/gu/40/oh/gu40oheylazwfth8y340mdlrwmk.gif)
Полигональное моделирование отличается тем, что поверхность объекта разбивается на точки — вершины (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. На данный момент зебра — самый мощный и функциональный софт для скульптинга. Разумеется, аналоги есть, и они добавлены в каждую крупную программу для моделирования, однако полностью заменить и вытеснить зебру они пока не могут.
Есть также и пограничные методы, использующие сразу несколько технологий, например, скелетное моделирование или альфа-проекция. Однако это может оказаться весьма сложным для понимания, и возможно заслуживает более подробного анализа и представления, чем мы можем позволить себе здесь.
![](https://habrastorage.org/getpro/habr/post_images/0c9/23c/64f/0c923c64f9997a5995693e8486a93c47.png)
Всё это очень интересно, но как же определиться с применением? Что если я хочу, скажем, освоить только определённую технологию для вполне конкретной цели? Например, создавать исключительно персонажей для игр? Или наоборот, переносить на большие экраны свои или чужие фантазии? А, может, я прирождённый техник, и мечтаю печатать на 3D-принтере свои механизмы?
Что ж, придётся показать, на что способно 3D-моделирование на практике, заодно демонстрируя конкретные примеры и методы, так сказать, наглядно.
Однако это придётся отложить на следующий длиннопост, так как примеров масса, а этот текст, итак, раздулся. Поэтому, до новых Встреч!
Все картинки в посте, кроме скриншотов игр и кадра из фильма — авторские. Модели также созданы автором текста.
![](https://habrastorage.org/webt/ou/g5/kh/oug5kh6sjydt9llengsiebnp40w.png)