Пожалуй, каждый или почти каждый читатель играл в современные графонистые игры, смотрел мультики Пиксар или хотя бы кино от Марвел или ДС. Или любой другой крупной компании — сейчас сложно найти фильмы без графики. И за просмотром или игрой наверняка задавались вопросом — а как это сделано? А, может, даже фантазировали, а что бы Вы сделали, если бы вдруг освоили 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)
kovserg
13.01.2022 19:24+1Думаю следует упомянуть вот такую удобную штуку www.pureref.com
И вот это видео www.youtube.com/watch?v=1jHUY3qoBu8
iShrimp
13.01.2022 19:50+1ZBrush, конечно, хорош для моделирования простых гладких форм. Но как в нём создать ветвистую или дырявую структуру (например, сердце со всеми камерами, клапанами, аортой)?
Все программы, работающие с мешами, оперируют поверхностью, но плохо умеют оперировать объёмом. Например, нарисовать кровеносный сосуд, который то разветвляется, то снова сливается в один, проникает в органы, придавливает окружающие ткани (а не пересекает их), - очень непростая задача.
В 2D-графике всё просто: есть векторные редакторы и есть растровые. Хотя у растра ограничено разрешение, он по своей природе ближе к реальности благодаря замечательному свойству: растр не позволяет двум фигурам занимать один участок пространства. Он гарантирует, что каждый пиксель (кроме граничных) принадлежит не более чем одной фигуре. Также, только в растровой графике полноценно доступны эффекты размытия, выделения границ, заливки.
А существуют ли растровые 3D-редакторы, в которых можно создавать анатомические формы со сложной изменчивой топологией?
bawan
13.01.2022 20:54+1В Cinema 4d, к примеру, есть инструмент volume builder, с его помощью такие задачи вполне решаемы.
VoronaDragon
13.01.2022 21:14+2Да, по крайней мере, раньше существовали растровые 3д редакторы. Сейчас это реализовано в основном вокселями (3д-пикселями). Такая графика аналогична растровый рисовалкам, но требует значительных ресурсов для обработки за счёт того, что каждый воксель обрабатывается процессором отдельно.
По поводу сложных форм с дырками и ветвлением - в зибраш и аналогичных программах поддерживается булеан (алгоритм вычитания и сложения геометрии) и рисование т.н. курва и - мягко идущими трубками, ветвями и нитями, которые можно в процессе заставить стелиться по поверхности, опоясать меш, ветвиться, утолщаться и утончаться, а также таскать за середину с сохранением позиций начала и конца. Такими инструментами сделаны волосы и хвосты у модельки в верху поста.
Увы, я не за компьютером, но на следующий пост приберешла небольшую запись как раз с созданием анатомически моделей с помощью зебры)
iShrimp
14.01.2022 17:35Скажите, пожалуйста, в ZBrush можно "вылепить" два щупальца и слить их концами? А основаниями? И чтобы при этом не сломалась топология? Я в раздумьях, какой софт установить.
VoronaDragon
13.01.2022 21:15+1Да, по крайней мере, раньше существовали растровые 3д редакторы. Сейчас это реализовано в основном вокселями (3д-пикселями). Такая графика аналогична растровый рисовалкам, но требует значительных ресурсов для обработки за счёт того, что каждый воксель обрабатывается процессором отдельно.
По поводу сложных форм с дырками и ветвлением - в зибраш и аналогичных программах поддерживается булеан (алгоритм вычитания и сложения геометрии) и рисование т.н. курва и - мягко идущими трубками, ветвями и нитями, которые можно в процессе заставить стелиться по поверхности, опоясать меш, ветвиться, утолщаться и утончаться, а также таскать за середину с сохранением позиций начала и конца. Такими инструментами сделаны волосы и хвосты у модельки в верху поста.
Увы, я не за компьютером, но на следующий пост приберешла небольшую запись как раз с созданием анатомически моделей с помощью зебры)
spinagon
14.01.2022 08:43+2https://www.voxelmade.com/magicavoxel/
Но это больше как пиксель-арт
VoronaDragon
14.01.2022 16:39Да, именно)
Это и есть те самые воксели, механизм "рисования" которыми во многом перенят у пиксельной графики
iShrimp
14.01.2022 17:39К сожалению, там размер поля ограничен 256*256*256, нет поддержки прозрачности для поверхностных вокселей и, соответственно, нет гладкого рендеринга (marching cubes). Это программа для воксель-арта.
wAgo
13.01.2022 22:19-5Какой смысл "лепить" биоморфные фигурки (не чертежи) на экране если проще вылепить руками, а потом отсканировать скульптуру в 3D. Вылепить модель специально для сканирования, и не придётся "чинить меши". Конечно понадобится потом раскрашивать поверхность, но это полюбому будет быстрее чем маяться на плоском экране...
phanerozoi_evidence Автор
13.01.2022 22:45+21) Придется "чинить меши" и также заниматься вылепливанием биоморфной фигурки. Ибо даже мощный скан, а я знаю как он работает, допускает сильные неточности, например в научной модели, которые обывателю могут быть и не видны, он как и вы, отчасти в дилетантской манере спросит "а зачем?", а по факту в модели дыры и анатомические артефакты и не дилетант это все видит.
2) Зачем делать двойную работу? Сначала тратить дофига времени на скульптуру, потом тратить время на сканирование, которое не всегда быстро и устранять еще дефекты скана вручную, если проще просто вылепить скульптуру не хуже в 3D программах?
3) Прогуглите ради интереса сколько стоит хороший 3D скан, а потом задайте себе вопрос, зачем мне покупать скан ради того, чтобы сканировать биоморфные фигурки сделанные вручную, если я могу сделать ровно тоже самое в 3D и сэкономить кучу денег?
VoronaDragon
13.01.2022 23:11+3Все зависит от скила, т.е. навыка художника. Кому-то проще в 3д ыылкпить, кому-то руками.
Но 3д сканирование в любом случае предполагает починку - даже с самым передовым лазерным сканером моделька будет иметь дыры, несостыковки и корявые полигоны, а в худшем случае - вообще будет состоять из облака точек. И проблема раскраски не стоит - сканер вполне может считать цвет поверхности и раскрасить её по точкам.
И поверьте, вы не хотите знать, с какими заморочками сталкиваются 3дшники, когда их просят адаптировать скан под игру, например, или под печать (что чуть ли не хуже).
Я одинаково хорошо леплю и в глине, и в зибраш, и починкой сканов вылепленных из глины моделей занималась непосредственно, так что имею возможность сравнить, так сказать, на личном опыте)
Да, так делают, но крайне редко.
wAgo
14.01.2022 00:24-4У меня товарищь занимается 3Д печатью, он до того обленился что сканирует всё то барахло поломанное что приносят(шестерёнки, фары, ручки), а потом правит чертежи со штангенциркулем. Почемуто он не находит более быстрым и дешовым вариантом сразу рисовать чертежи вручную, уж казалось бы что сложного шестерёнку срисовать, но сканирование получается быстрее, а значит дешевле для заказчика )). Сканер самодельный какая-то хрень опенсорсная из лазертных указок, пары вебкамер и ардуино, никаких милЛЛЛионных сумм на это не потребовалось...
slava94
14.01.2022 07:45+3Сравнение не уместно. 3д печать и моделлинг для геймдева - это совсем разные вещи. Игровые модели - это не чертеж, который штангенциркулем можно поправить. Они требуют правильно направленную топологию, сетку оптимальной плотности, ограничены в количестве полигонов, к ним нужны текстурные развертки, которые удобнее, опять же, разворачивать на модели с правильной топологией, все это ещё с возможностью анимации. Современным принтерам почти пофиг на топологию, артефакты геометрии в виде пересечений, а текстурные развертки и анимация им тем более не нужны. 3д сканы используются в геймдев моделировании, но только как болванки, основы для ретопа, где не нужна точность и детализация. Для примера, используют сканы каких-нибудь коряг. А вылепить персонажа из глины и отсканировать - это не канает ни в каком виде, двойная/тройная работа, это если человек ещё лепить руками умеет. Допустим, потратит человек несколько часов на проработанную "скульптуру" из глины или чего-то там. Отсканирует. И все равно с нуля придется строить то же самое, используя скан в качестве "подосновы", потому что для геймдева результат скана не канает. Но дело даже не в этом. Нормальный моделер эскиз какого-нибудь чупакабры в zbrush накидывает за час, с проработкой мелких деталей(хоть и черновых) и т.п., руками так быстро не слепить никак, потому что скорость операций в программе для скульптинга - молниеносная.
slava94
14.01.2022 07:54+3Короче, главная мысль в том, что править корявую 3д модель - дольше, чем слепить с нуля в софте правильную. И лепить в софте - это гораздо быстрее, если речь идёт о биоморфных формах сложнее уровня "палка-палка-огуречик".
Плюс, как вы сказали, вашему приятелю ПРИНОСЯТ уже готовые объекты. Не думаю, что он бы стал бы тратить время и лепить фару с линейкой и циркулем, чтобы ее отсканировать. Я думаю, его основная цель - перенести размеры и пропорции объекта без дотошного обмера, т.е., по сути это та же болванка, и в этом кроется экономия времени. И для таких целей скан используется в геймдеве, например для переноса моделей автомобилей в том же gran turismo и forza. Когда уже есть готовый объект, и надо его точно повторить. Только моделеры все равно выстраивают меши с нуля, просто с сохранением точных форм оригинала благодаря болванке. А если процесс творческий, а не прикладной, и нет цели что-то дотошно воспроизвести, то построить условную "шестерёнку" даже в том же 3д Максе - это 20 секунд.
VoronaDragon
14.01.2022 16:42+2Когда речь идёт о простых геометрические формах - да, в отсутствии скилл моделирования сканирование - достаточно распространённый метод. Но именно что простых форм, у которых не так много сложных поверхностей, пересечений и плавных участков.
Да, механические детали часто сканируют для заводского прототипирования или домашнего самодела, но для точного производства все ещё используют автокад или проф оборудование.
Quiensabe
16.01.2022 00:27+1И не забудьте про расстояние — все точки фотографирования должны быть равноудалены от объекта, иначе последний будет перекошен.
Это не так.
GritsanY
Довольно занимательно написано, спасибо за статью.
Чисто из любопытства прочитал, не собираюсь основной своей деятельностью делать. Но может как хобби, или детей учить своих.
VoronaDragon
Спасибо)
Я считаю, что если человек, не особо заинтересованных в изучении темы, прочитал с удовольствием, значит, написано не зря!
А так, думаю, 3д в любом случае будет полезно попробовать - и весело, и пространственое мышление развивает)