Опыт владения личной 3D мастерской ч.5 - Немного о самом 3D моделировании
Всем доброго времени.
Довольно сильно задержал пост, за что опять же извиняюсь (если вдруг кто ждал)
Сегодня я думаю будет заключающая часть серии про мастерскую и всё что с ней связано. Возможно буду выпускать какие-нибудь посты по 3D плюшкам / хитростям / хинтам / мелочам уже со стороны моделирования в Blender, но это не точно - поглядим. Напоминаю, что всё сказанное в посте исключительно моё личное мнение с учетом знаний и опыта, а не истина в последней инстанции. Много буду хвалить блендер, кто топит за другие редакторы - извините, все хороши :)
Сегодня мы говорим про один из столпов 3D мастерской. Про сам процесс моделирования.
Для печати чтобы получить необходимую модельку мы можем просто попытаться найти её в интернете. Количество деталей уже готовых к печати у нас в интернете пруд пруди. Конкретно про ресурсы, на которых это можно найти и бесплатно скачать / задешево купить я уже описывал в прошлой части - в ней об этом довольно подробно описано. (Thingiverse, Cults 3D, CGTrader и пр.)
Другое дело, когда деталь нужно моделировать самому. Тут у нас возникает очень широкий круг возможностей т.к. 3D редакторов огромное множество. Да, 3D моделирование бывает разное и даже очень.
Моделирование в целом можно разделить всего на 2 категории - Полигональное и параметрическое. Очень условно эти же две категории можно разделить соответственно на "Для творчества" и "Инженерное". Опять же эти вещи в определенной степени условные. Никто вам не запретит решать инженерные задачи в творческом 3D редакторе или наоборот, но тут скорее больше вопрос плавности входа и удобности работы в софте, а так же специализации самого софта.
Если очень кратко и поверхностно описывать и разделять современные 3D редакторы то я выделил следующие:
- Blender 3D - полностью бесплатный и довольно мощный 3D софт для полигонального моделирования. Максимально универсальный.
- 3Ds Max - платный адобовский софт. Чаще всего применяется для рендеринга (визуализации) т.к. обладает очень крутыми и фотореалистичными движками рендеринга - V-Ray и Corona
- Maya - опять же платный адобоовский. Чаще всего применяется для создание мультипликации и различных анимации и эффектов.
- ZBrush - платный и очень мощный софт для скульптинга / ретопологии скульпта
- SolidWorks - платный инженерный софт для твердотельного моделирования, очень тяжелый и серьёзный. В нем можно смоделировать, например автомобиль, вместе с планами сборки каждого его элемента, в т.ч. мелких деталей и винтиков в двигателе и других агрегатах.
- Компас 3D - инженерно/чертежный софт
- SketchUp - Онлайн 3D редактор с бесплатной версией. Параметрическое моделирование / булевые операции. Большое количество простых 3D деталек / скетчей выходят отсюда
- ThinkerCad - так же Онлайн 3D редактор - параметрический с не очень широким инструментарием, но довольно простой в освоении и использовании. Многие в кружках робототехнике начинают учить детей 3D моделированию именно с него.
- Rhino - (риноцериус - носорог) софт для моделирования и работы с кривыми. Очень актуально для мелких деталей и вещей сложных форм и их переходов. За счет чего это практически основной софт если вы моделируете 3D изделия для ювелирки. К сожалению, платный.
Смысл в том, что каждый из этих софтин довольно сильно старается специализироваться на чем то одном и по моему мнению выделяется из всего этого обилия именно Blender потому что является универсальным. Да, скульптить в нём не так удобно как в ZBrush, а анимировать не так как в Майке, но в нём можно делать просто умопомрачительное количество вещей более чем комфортно.
В блендере можно - моделировать полигонально / твердотельно (булевые операции) / работать с кривыми / скульптить / делать ретопологии / анимировать со всем сопутствующим (ригинг, скининг, блендшейпы, графы, драйвера, частицы, геометри ноды и пр.) / делать видео монтаж / использовать как графический редактор (неудобно для некоторых 3D нужд ОК) / визуализировать как фотореалистичная (движок Cycles) так и в движке реального времени Evee и в простом виде WorkBench / анимировать 2D графику и motion design / работать с физикой и частицами генерировать / создавать PBR материалы и тучу всего другого о чем я не упомнил.
В блендере огромные возможности по расширению функционала с помощью туч аддонов, которые позволяют чем только в нём не заниматься и какие только невероятно сложные CG задачи решать.
Самое же главное и фундаментальное в нём то, что он абсолютно бесплатный. Качается что с офф сайта, что со стима, что с микрософт стора (в последних двух случаях сам обновляется).
- И что с того что он бесплатный? - Вы можете сказать, а я Вам отвечу, что из этого утверждения вытекает один невероятно важный фактор. За счет своей бесплатности у Blender-a огромнейшее сообщество, огромное число гайдов, уроков, курсов, материалов, книг, в т.ч. и на русском языке, и такое же немалое комьюнити (так же в т.ч. русскоязычное). То же самое касается аддонов. Их много и пишутся они просто на питоне, порог входа в написание таких вещей очень низкий.
По итогу в нём много готовых и невероятных решений, в т.ч. и под те задачи которые нам нужны для 3D печати. Много ассетных аддонов, как материальных так и модельных (напр. Blenderkit) К примеру, в стандартный блендер вшит такой аддон как BoltFactory - который позволяет в два клика создать любой болт или гайку, с любой шляпкой, шлицем, шириной и шагом резьбы, и абсолютно любыми другими параметры которые имеют болт или гайка.
Исходя из этого я в целом рекомендую эту софтину как предмет для изучения и хобби всем, кто хочет зайти в 3D сферу. На этом софте работают в большом количестве CG студий с разноплановыми задачами. Благодаря различным аддонам блендер можно специализировать почти под что угодно, например под рисование планировок (ArchiMesh вшитый стандартный) и расстановок мебели в них (с помощью ассетных аддонов тот же BlenderKit) - особо даже не надо уметь моделировать, и получать фотореалистичные рендера (можете загуглить Фото интерьера Blender Cycles)
(Сам прочитал и выглядит будто реклама блендера, но я действительно подписываюсь под всем вышесказанным и так считаю)
Т.к. я вступая в 3D печать уже немного владел Blender-ом, я максимально старался адаптировать процесс именно под него и спокойно под ним работаю.
Какие в целом критически важные вещи нужны для моделирования деталей для 3D печати:
- Работа с размерами (без понимания длин, ширин, высот и пропорций, понятное дело ничего того что попадет в эти понятия не смоделировать)
- Работа с референсными изображениями и чертежами (чтобы можно было смоделировать что-либо по картинке на фоне, если изгиб, к примеру, не описан или идёт не по радиусу, или в целом мы имеем несколько картинок с разных планов со сложными формами и приходится работать с чертежом со всех сторон)
- Работа с булевыми операциями (очень необходимая вещь для многих моделей) в блендере можно работать например с такими:
- Возможность редактирования уже готовых моделей из интернета и выгрузки в нужных форматах и размерах
- Удобство и комфорт работы
Как вы могли догадаться всеми этими качествами Blender обладает. С размерами Blender естественно очень корректно может работать - расстояния можно измерять линейками / подсвечивать длинны ребер, опираться на деменшены или совершать действия на нужные расстояния, работать можно как с метрической системой, так и с имперической - дюймовой, можно хоть в километрах всё моделировать или в микрометрах. С референсами тоже можно тысячей разных путей работать, есть даже аддоны которые из черно-белых картинок могут доставать пути в виде кривых. Булевые операции и туча других крайне полезных модификаторов (например автофаски по заданным факторам), так же присутствуют. Блендер спокойно глотает все модели универсальных форматов .glb .fbx .obj .stl и так же спокойно их выгружает. Умеет сам модификаторами упрощать геометрию (снижать кол-во полигонов), преобразовывать функцией 3х угольную геометрию в 4х угольную (актуально для работы с .stl исходниками), искать дыры, ошибки модели и многое другое. Так же, .Blend файлы могут хранить очень много всего в себе, и даже использоваться как библиотеки. В них внутрь файла запросто вшиваются текстуры, кисти, материалы, HDRI-йки и многое другое что используется в проекте.
Так в чем же проблемы и минусы полигонального моделирования для 3D печати. Минус же конечно один - оно полигональное. Если в случае параметрического моделирования у Вас есть объекты с заданными параметрами, к примеру Цилиндр определенного размера и с определенным количеством вершин по кругу и еще какой-либо объект вы их запросто комбинируете друг с другом, булите и т.д. и всё еще имеете возможность править фундаментальные параметры этого всего, то полигональное работает совсем не так, а на более низком уровне.
Что вообще значит полигональное? Это значит что работаем мы с Мешем и строим полигоны (3х угольники / 4х угольники). Меш - это объект состоящий из точек, рёбер и плоскостей. Две точки связанные друг с другом образуют ребро, а несколько ребёр могут скрепляться меж друг другом поверхностью - фейсом (плоскостью), образуя объект как натянутая ткань палатки между точками. Замкнутые между друг другом плоскости не имеющие дыр образуют - внутренний объем объекта - вот именно и его видит наш любой слайсер, преобразующий 3D модель в машинный код (G-Code) для 3D принтера.
Т.е. по сути мы работаем напрямую с составляющими модели и оперируем над ними, а не над крупными параметрическими объектами, которые можем изменять в любой момент. Мы в любой момент можем править точки, ребра или плоскости и использовать различные инструменты чтобы решать свои же косяки / воплощать свои задумки.
Основная сложность это именно доступ к работе с такой низкоуровневой частью моделей. Можно запросто накосячить тысячи разных способов и я даже покажу как на примере 4-х угольной пирамидки:
Всё вышеуказанное повлияет на результат при 3D печати. Благо после того как вы заслайсите модель, вы увидите что что-то не так.
В целом правил по топологии и моделирования не таки уж сложные, постараюсь понятно описать:
- Модель должна иметь объем который при этом не нарушен (нет дыр внутрь геометрии) - (смотрим на 3-ю пирамидку) - стенки физически имеют толщину в 0 см или километров всё равно 0. Поэтому чисто физически что увидит там слайсер остается только гадать. Может как увидеть нормальную пирамидку (ввиду простоты формы) так и не увидеть ничего, т.к. нет объема. Пункт сводиться к одному утверждению - в модели не должно быть элементов с нулевой толщиной.
- Модель не должна пересекаться с другими моделями. (Например, вы решили взять две 4х угольных пирамидки и сделать из них ёлочку поставив друг в друга). У плоскостей есть такая особенность как нормаль - то куда смотрит их лицевая часть и обратная. Именно нормали образуют понятия внутреннего объема. Таким образом вставив два объекта друг в друга они будет нереально конфликтовать. Слайсер запросто может выдать любую булевую операцию на своё усмотрение - например вычесть из объема верхней пирамидки нижнюю, или наоборот. Так же он может попробовать их объединить, или сожрать пару слоёв печати в высоту сделав их пустотой (запросто). Поэтому для таких объединений нужно либо изначально всё выращивать из одного либо пользоваться булевой операцией объединения (Union).
- Нормали не должны быть вывернуты (слайсер спросит вас за объем и скажет что он ничего не понимает, поэтому вот вам "графские развалины" вместо модели)
- Не должны быть вывернуты и точки, иначе тоже сложно представить что слайсер нафантазирует за вас.
- Желательно геометрия должна быть 3х или 4х угольной. 3х угольники это однозначные единицы (полигоны). Их можно интерпретировать только одним способом - ровно таким же как он и выглядит. Любой четырёхугольный фейс можно интерпретировать уже двумя способами с разбивкой на треугольники (именно так все движки и видят модели, чтобы физически и графически их построить). Либо с диагональю из первого угла во второй, либо из третьего в четвертый, а в случае, если 4х угольник слегка гнутый, результаты того что получается будут 50/50. Отсюда вытекает еще одно правило - 4х угольники не нужно гнуть до посинения (градусов 30 на скручивание максимум) иначе при интерпретации можно получить не совсем то что планировалось. А N-угольники (где N>4) лучше вообще не использовать, или использовать только без твиста (скручивания даже на пару градусов) т.к. их интерпретаций на много больше.
Соблюдая вышеописанные правила вы будете получать модели, которые никак не будут конфликтовать с вами, слайсером и принтером и вы будете получать именно то, что хотите. Стоит еще напомнить, что если в вашей модели будет элемент с толщиной меньше чем толщина сопла вашего 3D принтера, то с 99% вероятностью в слайсере на процессе слайсинга вы такой элемент не увидите и принтер его естественно не отпечатает.
Работая с параметрическими 3D редакторами многое описанное выше становится почти не актуально, поскольку с моделью мы работаем более поверхностно и редактор с меньшей вероятностью позволит нам накосячить, потому что вглубь себя не пускает. Однако по пайплайну (процессу работы) параметрических 3D редакторов можно работать и в блендере. Например для тонкостенных объектов можно работать с таким крутым модификатором как Solidify, который позволит на ходу менять толщину стенок до нужных цифр или используя другие хитрости, которых очень много.
Собственно резюмируя всё вышесказанное небольшой FAQ:
1. Какой софт использовать для построения моделей для 3D печати
- Любой, с которым вам максимально комфортно работается и который подходит под ваши задачи / род деятельности и удовлетворяет требованиям описанным сильно выше.
2. Если хочется попроще или для простых деталек / шестеренок и не хочется особо глубоко влезать в 3D моделинг:
TinkerCad / SketchUp - бесплатно и онлайн
3. Если хочется серьёзный и универсальный софт на вырост:
Blender 3D (мой личный выбор и основная рекомендация)
4. Если у Вас есть необходимость / желание научиться работать в другом софте совмещая это с 3D печатью:
- Тот софт в котором вы хотите развиваться
5. Что проще освоить Параметрическое моделирование или Полигональное?
- Войти и начать проще в параметрических редакторах. Воплощать свои задумки с точностью до последнего вертекса бесценно удобнее при понимании полигонального пайплайна с использованием фишек из параметрического.
А почему я еще не скачал блендер?
6. Сколько нужно времени чтобы научиться моделировать?
- Всё зависит от конечных задач. Если нужны простые детальки для 3D печати, то стартовое обучение и практика займет у вас не более полудня. Путь до совершенства - бесконечен.
Итак. Как же научиться моделированию.
Вариантов несколько. Я как человек, который обучался самостоятельно могу порекомендовать в первую очередь YouTube. Там количество материала на нужные темы стремится к бесконечности. Плюс можно удобно ставить на паузу и повторять. Нужно ли изучать софт фундаментально? Вопрос спорный. Если Вы хотите стать супер специалистом, то понимание базы даст вам возможность решать очень широкий спектр задач чисто на понимании как это работает. Я рекомендую делать и изучать то что Вам нужно и нравится и обязательно как можно больше практиковаться. Лепить и делать то что хочется, смотреть Sketchfab, Artstation - формировать насмотренность и вдохновляться крутыми моделями и идти к цели. А терпение и труд - всё перетрут, даже не сомневайтесь.
По текстовым статьям изучать 3D редактор не менее удобно чем по видео и их так же, например, по блендеру огромное количество. Плюсом есть книги, но это всё в целом ориентировано не на печать, а на сферу 3D графики в целом и в книгах можно почерпнуть очень много интересных способов и моментов касательно топологии, пайплайнов, и пр.
Работа с преподавателем. На том же а-о специалистов много. Цена начинается от 500 р. за занятие, а так же имеются цены и далеко за несколько тысяч(оценивать адекватность цены не буду, всё зависит от человека в первую очередь). Есть люди увлеченные, есть зарабатывающие. Рекомендую первых. Если человек любит 3D моделирование и готов разделить эти знания - привить человеку любовь к этому замечательному процессу, и научить в первую очередь получать УДОВОЛЬСТВИЕ от процесса моделирования и воплощения своих идей - то с таким человеком стоит заниматься и приобщаться.
Я, к сожалению, из-за занятости на работе сейчас уже потихоньку начинаю закругляться с обучением 3D моделированию в формате личных уроков, но планирую писать простые и понятные видеоуроки в формате сжатых и понятных повторюшек + заданий по импровизации. Пишите, если вдруг Вам, кому-либо такой формат будет интересно. Распространять я планирую такие вещи за бесплатно.
Ну вот собственно и всё чем я хотел с Вами поделиться. Моя мастерская просуществовала в течение двух с половиной лет и не принесла мне много денег, как мне хотелось, однако она принесла мне намного большее чем я хотел - страсть и любовь к 3D печати и моделированию, невероятно сильные жизненные уроки и в целом большое количество относительно эфемерных вещей, которые сделали из меня того, кто я есть сейчас. Как уже писал в комментариях, мастерская закрылась из-за того что работая в одиночестве это всё превратилось в лютую затягивающую рутину, работу ради работы, да, с неожиданно интересными и доходными заказами, но и с подавляющим количеством проходных, непонятных и геморных заказов, неадекватных и не ценящих твою работу клиентов, и доходом чуть выше среднего по городу при работе 6/1 по 8 часов. В определенный момент, я подсчитал, что зарабатываю на моделировании фрилансом почти столько же, тратя на это в разы меньше времени и сил и решил развиваться в этом направлении. Сейчас же работаю в двух студиях - игровой и аутсорсовой, и держу парочку старых учеников, которым всё так же интересно изучать бескрайний мир 3D моделирования, в котором путь к совершенству - бесконечен.
Скачек технологий и доступность 3D сферы сейчас это настоящее чудо - новое, неординарное, направление искусства и самовыражения. Занимайтесь 3D печатью, моделированием и несите её в массы. Эта сфера открыта для всех, кто не забоится вступить на её территорию с правильными мыслями и огнём в глазах.
Всем спасибо, кто дочитал. На все вопросы отвечаю в комментариях, если вдруг еще интересны какие-то темы, которые не описал в постах - пишите, накатаю еще одну простынку. Извините, если был нудным и за знаки препинания и опечатки (иногда предложения переписываю, могу что-нибудь куда-нибудь не туда склонить).
До новых встреч! :)