Я хочу поделиться некоторым опытом 3D-моделирования, который кажется мне очень важным и полезным при разработке объектов под трёхмерную печать. Расскажу о нескольких приёмах автоматизации моделирования с использованием модификаторов и «многослойных» булевых операций с 3D-объектами. Статья пригодится новичкам.

Я достаточно давно в 3D-графике и начинал моделировать в далёком 2002 году. В те времена считали каждый полигон и жёстко оптимизировали меши, так как слабые компьютеры не тянули сложные сцены. Оптимизация считалась хорошим тоном и уважалась в среде трёхмерщиков.
Применение методов генерации моделей на основе неких составных элементов — тема очень благодатная и чем-то напоминает программирование, в котором общие компоненты выносятся в логические блоки, которые многократно переиспользуются. Этот подход очень прокачивает мозг и позволяет творить небывалые по сложности модели. (Если вам интересна тема, то в Blender сейчас завезли чудо-инструмент, который открывает портал в ад — отдельную вселенную параметрического моделирования, и называется он Geometry Nodes, но это тема отдельного разговора).
Плюсы модификаторов
Недеструктивное редактирование. Всегда можно подкорректировать работу модификаторов.
Автоматизация создания сложных мешей. Редактируем один сегмент — меняется вся большая модель.
Минусы модификаторов
Добавляют дополнительную сложность для освоения и работы в сцене: некоторые модификаторы требуют согласования опорных точек объектов и их поворота, могут «разваливаться» при перемещении объектов.
Требуют вычислительного времени, на высокополигональных сетках могут ощутимо тормозить интерфейс во время выполнения операций над данными. Каждое изменение положения объектов, участвующих в булевых операциях, будет приводить к пересчёту всего стека модификаторов, иногда это делает работу затруднительной.
Минусы Boolean
Почти всегда плохая топология, непригодная для последующих модификаторов и особенно под «сабдив» (subdivision surface).
Некоторое неудобство в необходимости организовывать дополнительные 3D-объекты в сцене. Например, если планируется перемещение и поворот составного объекта, все его части нужно привязать (Parent) к объекту-родителю. Часто для визуального порядка в сцене и правильного рендеринга нужно скрывать операнды. Например, я для этого завожу специальную «папку» (collection), которая скрыта из вьюпорта и из рендера.
Сочетание ручного моделирования и работы модификаторов упрощает работу и делает её частично параметризуемой и недеструктивной. Модификаторы и их последовательное применение можно рассматривать как этапы технологических операций на производстве в физическом мире, в настройки каждого из которых можно внести коррекцию.

Как и в программировании, нет единого правильного шаблона работы. Иногда проще всё держать в одном файле проекта и стараться максимально параметризировать модель, чтобы она собиралась из отдельных ресурсов. Но иногда легче создать несколько файлов, внутри которых будет производиться сборка составных объектов из элементов, а в файле с основным проектом будут использоваться «запечённые» меши или ссылки на объекты. Всё зависит от вашей задачи и необходимости создавать автоматизацию.
Локальная система координат
Чтобы иметь полный контроль и понимание, как работают модификаторы, нужно коснуться темы внутреннего устройства объектов в блендере.
Каждый объект имеет имя и блок данных (Object Data).
У обьектов типа Mesh имеется блок данных, содержащих вершины и их координаты, структуру связей вершин. Допускается сетка, состоящая из нуля вершин и облака несвязанных вершин.
У объектов типа Mesh имеется блок данных, содержащий материалы.
Блоки данных допускают многократное использование (Linked Data): один и тот же блок данных сетки может быть привязан к разным объектам. Если вы измените вершину в одном объекте, она изменится и во всех его связанных копиях.
Обьекты могут содержать модификаторы (Modifiers). Это инструкции, которые изменяют сетку «на лету» (например, сглаживают или дублируют). Они висят на объекте, не меняя исходные координаты вершин в блоке данных, пока вы их не примените (при этом сетка необратимо «запекается» в результат действия стека модификаторов).
-
У объекта есть локальная система координат с центром в его Origin, к ней может применяться поворот, масштабирование (иногда неравномерное по разным осям), изменение положения.
Последний пункт особенно важен, так как некоторые модификаторы могут вести себя непредсказуемым образом, если у объекта есть собственный поворот или неравномерный масштаб. Лично у меня эти неучтённые параметры вызывали самые большие затруднения при работе с модификаторами.
Если визуально сетка выглядит так, как вам нужно, строго рекомендую применить масштаб и поворот, при котором происходит пересчёт данных геометрии таким образом, что сетка остаётся визуально и габаритно той же, но её локальная система координат ориентируется вдоль глобальной по всем осям, а масштабные коэффициенты становятся равными единице. Если вы обучаетесь и не уверены в своих силах, рекомендую применять (Apply) масштаб и поворот, шорткат Ctrl+A.
Чтобы понять, какие у объекта коэффициенты поворота и масштаба, их значения находятся в правой панели в 3D-окне, вызываемой клавишей N, иногда её называют N-панелью. Вкладка Item.
Origin
Origin (опорная точка) в Blender — это персональный центр системы координат объекта, относительно него происходит локальный поворот объекта. Выглядит как маленький кружочек, когда объект выделен.
Чтобы контролировать работу модификаторов, нужно научиться управлять центром координат. Есть несколько независимых путей для этого.
Мы можем войти в режим редактирования сетки, выделить все вершины и сдвинуть их как нам требуется.
В режиме редактирования объектов в окне 3D-проекции на панели окна нажать кнопку Options и отметить галочкой Affect only Origins. Теперь можно будет перемещать центры координат объектов.

Мой любимый, самый универсальный. В режиме редактирования сетки выбираем то, к чему мы хотим привязать Origin. Например, я хочу, чтобы он был ровно по середине выделенного ребра куба. Выделяю его и вызываю меню Snap (по умолчанию вызывается сочетанием клавиш Shift + S). Выбираю Cursor to selected. Затем выхожу из режима редактирования сетки в объектный режим и вызываю меню управления Origin через глобальный поиск всех команд, который вызывается клавишей F3. В винтажных версиях блендера это меню вызывалось через Пробел и некоторые называли его пробел-меню. Указываем Origin to 3D cursor, и он становится в новое место.


Посмотреть, что получилось

Почему я рекомендую делать именно по третьему способу? Краткое наставление-совет: я долгое время игнорировал 3D-курсор и не понимал, для чего он нужен, но со временем всё чаще стал его использовать для точного позиционирования частей объекта и особенно для выравнивания групп вершин через однозначное и точное указание координат посредством 3D-курсора. Его нужно воспринимать как трёхмерный объект нулевого размера, имеющий атрибуты любого другого объекта: XYZ-координаты и поворот, который всегда находится под рукой и к которому удобно привязывать или измерять размер объекта в конкретной точке поверхности. Я использую удобное переключение точки трансформации с клавиатуры клавишами, расположенными рядом: , (Б) Median Point / Bounding Box Center и . (Ю) 3D Cursor. (Возможно, в современных версиях Blender настроено иначе).

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

У меня заказали трёхмерную модель персонажа в виде маски под 3D-печать. Она сочетала в себе органические формы, логотип и каналы для пропускания через пластик завязок. И при этом должна быть монолитной сеткой без разрывов и прочих топологических дефектов.
Экспериментируя, я пришёл к выводу, что в Blender модификатор булевых операций довели до хорошего качества, и если в него поступает геометрия, 100% подпадающая под критерии manifold, то результат будет отличным и пригодным для последующих булевых операций.

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

Благодаря такому подходу мне удалось создать модульную модель, пригодную для быстрого внесения правок. Правда, есть один существенный минус: булевые операции требуют много памяти и ресурсов процессора и выполняются каждый раз, когда вы открываете файл и вносите правки в модели.
NB! Будет преступлением не сказать, что если вы решите делать нечто подобное, для быстрой работы отключайте все галочки у каждого ресурсоёмкого модификатора, когда собираетесь править сетки. Позже галочки вернёте, и всё пересоберётся как надо. Если у вас модели с небольшим количеством полигонов, то булевые модификаторы могут работать даже в realtime. При перемещении объектов сетка будет перестраиваться мгновенно.
Предполётный чеклист
Чтобы всё получилось чисто и булевые операции сработали как нужно, необходимо проверить сетки объектов.

Вывернутые нормали — довольно частая проблема, способная свести с ума, когда Boolean начинает глючить при идеальных с виду объектах. Это может произойти на этапах моделирования, связанных с ручным перемещением и экструзией вершин.

Для однозначного понимания положения нормалей можно воспользоваться полезными функциями. Кнопка панели Face Orientation активирует режим, в котором внутренняя сторона полигонов станет ярко-красной. В режиме редактирования сетки там же, на панели вьюпорта, есть кнопка Mesh Edit Mode. В панели, которую она активирует, нажимаем третью кнопку для отображения векторов нормалей, которые выходят всегда строго с видимой стороны полигонов.

Самопересечение — коварный дефект топологии, при котором полигоны (грани) модели проникают сквозь саму себя или занимают одно и то же физическое пространство, нарушая математическую целостность объекта. Петли самопересечения могут быть микроскопическими и находиться в неожиданных местах.
Non-Manifold — это топологический дефект 3D-сетки, описывающий геометрию, которая не может существовать в реальном физическом мире.
В идеальной («manifold») сетке у каждого ребра есть ровно две соседние грани, в сетке нет разрывов (открытых рёбер), внутренних граней находящихся в замкнутом обьёме сетки, Т-образных рёбер (из которых выходит более чем 2 полигона), свободной геометрии — одиночных вершин и рёбер, не связанных с сеткой.
Для проверки модели на топологические дефекты в режиме редактирования сетки (обязательно, работает только в режиме выделения вершин и рёбер, не граней!) вызовите глобальное меню (F3) и Select Non-Manifold. Выделятся проблемные части геометрии.

Практика
Давайте я покажу, как создаётся модель колонны из нескольких объектов с использованием модификаторов. Я использовал переработанную модель колонны, скачанную с сайта Sketchfab, имеющую свободную лицензию. Автор модели Tomáš Musílek.

Начнём с капители, эта часть находится наверху. Для моделирования осесимметричных объектов очень удобно применять модификатор Mirror (Отражение). Присмотритесь: завиток симметричен по двум плоскостям — право-лево и вперёд-назад.

Значит, нам достаточно смоделировать одну «четвертинку» и подготовить модель так, что при отражении по двум осям у нас получится готовая деталь.

Для этого нужно учесть несколько условий:
Точка симметрии, относительно которой работает модификатор, — это Origin модели.
Швы соединения частей должны идеально лежать по плоскости отражения.
Non-manifold-геометрия только в виде открытых рёбер, которые станут швами соединения.
Активировать галочку Merge — она указывает модификатору соединять вершины, чтобы не было щелей (разрывов топологии) в местах стыков.
Основание и капитель, состоящая из двух деталей, прикрепляются к стволу колонны последовательными булевыми операциями через модификаторы.

Если результат устраивает, можно сделать копию обёекта (главное его при этом не сместить) и превратить его в единый меш при помощи комбинации Alt+C (Convert to ...) и выбрать mesh.
Ротонда
Работая над колонной, захотелось сделать что-то поинтереснее и более комплексное, задействующее модификаторы. Давайте я кратко расскажу, как работал над моделью. Этот файл можно скачать по ссылке и самостоятельно разобраться и поэкспериментировать.

Совет: если вы создаёте объект, имеющий плоскость или ось симметрии, обязательно располагайте её так, чтобы она была в нулевой координате мира. Так вы значительно облегчите себе работу.
Я вставил модель готовой колонны из предыдущего файла и расположил её на некотором отдалении от центра. Все размеры в метрической системе и примерно соответствуют реальным, стиль архитектуры вольный, не ругайтесь :)
Используя 3D-курсор, стоящий в нуле глобальной системы координат, я создал связанную копию колонны, повёрнутую на 45 градусов, и повторил процедуру до заполнения окружности.
Затем смоделировал ступенчатое основание и кольцо над колоннами, используя примитив — окружность.

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

Теперь воспользуемся мощным модификатором, который называется Array (Массив), и настроим смещение по объекту, галочка Object offset.
Для того, чтобы всё получилось как надо, нужно 3D-курсор установить в опорную точку объекта Shift+S (Snap), Cursor to selected. Затем добавить в это место объект-пустышку. Shift+A (Add) Empty, Arrows.
Укажите в модификаторе Array эту пустышку. Смотрите, как это работает. Копии объекта (количество которых в модификаторе указывается в поле Count) наследуют поворот, масштаб и смещение объекта-пустышки. Это сложно объяснить на словах, проще попробовать самому, как это работает. Если вы повернёте пустышку на некоторый угол относительно оси Z, то все копии нашего сегмента кольца унаследуют этот угол.

Манипулируя количеством копий объекта и углом поворота пустышки, добился замыкания кольца. Очень важно отметить галку Merge и дополнительную, которая сшивает первую и последнюю копию, чтобы сетка стала целостной и пригодной для булевых операций.

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

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

Затем я добавил к одной из колонн конические детали для позиционирования, если вы захотите напечатать модель. При помощи этих же конусов я вырезал посадочные места в кольце над колоннами.


Послесловие
Если материал покажется полезным, я сделаю продолжение с парой интересных и полезных техник рассечения объектов под 3D-печать, которые уже были опробованы на практике. Файлы доступны по ссылке для скачивания и использования под лицензией CC0.
© 2026 ООО «МТ ФИНАНС»