Шаг 3
Выделите сплайн-профиль, перейдите на командную панель «Изменить», раскройте список модификаторов, найдите и выберите в нем строку «Вращение». Сразу же будет создано тело вращения на основе установленных по умолчанию параметров, а в нижней части командной панели «Изменить» появится свиток «Параметры» модификатора «Вращение», позволяющий изменить параметры, описываемые ниже.
С помощью кнопок группы «Выравнивание» определим способ выравнивания формы относительно оси вращения. Установим «Макс.», т.е. совместим ось вращения с правым краем габаритного контейнера формы. Только так бутылка примет нужную нам конфигурацию. Как уже можно догадаться, «Мин.» совмещает ось вращения с левым краем габаритного контейнера формы, «Центр» обеспечивает вращение формы относительно оси, проходящей через центр ее габаритного контейнера.
Чтобы объединить все вершины, совмещенные на оси тела вращения, установите флажок «Слияние на оси». Это даст еще и небольшую экономию треугольников. Так же ради экономии в счетчике «Сегменты» будем уменьшать количество сегментов до тех пор, пока не начнут проявляться ребра. Для полностью круглых объектов лучше всего подходит число 12.
Вот в принципе и все с настройками бутылки (рис. 1).
Несколько слов о других настройках свитка…
Счетчик «Сектор» задает величину углового сектора вращения формы в диапазоне от 0 до 360°.
Установка флажка «Перевернуть нормали» позволяет изменить направление нормалей граней, так как при создании тела вращения нормали могут оказаться направленными внутрь оболочки.
Кнопки X, Y и Z группы «Направление» используются для указания, относительно какой из осей глобальной системы координат будет происходить вращение формы. По умолчанию вращение производится относительно вертикальной оси (оси Y) оконной системы координат.
Если тело создается путем вращения замкнутой кривой, создающей у тела стенки определенной толщины, а угол поворота меньше 360°, то боковые торцы образовавшегося цилиндрического сектора по умолчанию останутся открытыми, как показано на рис. 2, а. Чтобы «накрыть» эти торцы, установите в разделе «Накрытие» флажки «Накрыть в начале» и «Накрыть в конце».
Укажите тип поверхности тела вращения, установив переключатель «Результат» в одно из трех положений:
-
«Кусок» — будет создана сетка кусков Безье;
-
«Сетка» — будет создана сетка с треугольными гранями;
-
NURBS — будет создана поверхность типа NURBS.
Рекомендую всегда использовать положение «Сетка» как наиболее экономное в плане треугольников. По крайней мере, используйте его, если не знаете, какой из типов выбрать.
Чтобы иметь возможность применить к телу вращения материалы на основе карт текстуры, установите флажок «Проекционные координаты». Кроме того, можете установить или сбросить следующие флажки в самом низу свитка «Параметры».
-
«Назначать идентификаторы материалов» — если этот флажок установлен, то всем граням боковой поверхности будет автоматически присвоен идентификатор материала, равный трем, граням начального торца тела вращения (как мы уже знаем, торцы появляются, если сектор вращения меньше 360°, а контур профиля замкнут) — идентификатор, равный единице, а конечного торца — двум. Это дает возможность впоследствии применить к телу вращения трехкомпонентный материал. При установке данного флажка становится доступным флажок «Использовать идентификаторы формы», заставляющий программу автоматически назначать идентификаторы материала граней на основе идентификаторов соответствующих сегментов формы-профиля.
-
«Сглаживание» — установка этого флажка обеспечивает сглаживание граней на поверхности тела вращения.
И снова об экономии. Наша бутылка имеет неоправданно большой полигонаж. Например, моя модель состоит из 1104 треугольников. Для сравнения: модель легкового автомобиля для игры достаточно хорошего качества будет состоять из 5000—7000 треугольников. Причина такого высокого полигонажа в том, что при рисовании профиля мы воспользовались кривыми Безье. Это плохой прием, никогда так не делайте. Мы применили его только для того, чтобы вы поняли, что это такое и как с этим работать. Иногда, например для рисования образца, вспомогательного объекта, данный прием может быть полезен. Но при моделировании объекта всегда нужно использовать прямые или ломаные линии, но не округлые. Потому что только так можно контролировать количество изломов линии, а следовательно, и количество треугольников.
Повторим шаг 2, только вместо кривых Безье для изгиба линии мы просто добавим несколько точек. Все точки профиля должны быть типа «С изломом». Чтобы добавить точку в уже нарисованную линию на определенный сегмент, выберите режим редактирования точек; в свитке «Геометрия» активируйте кнопку «Вставить», щелкните в нужном месте сплайна для создания там вершины. Далее вершины нужно распределить так, чтобы получился профиль, например, как на рис. 3.
Запомните один закон: если профиль недостаточно закруглен, добавьте вершин на участок, где требуется усилить закругленность.
Дальше полностью повторяем шаг 3. Не пугайтесь, увидев результат, вы все правильно делаете, а угловатость исправляется следующим образом. В списке модификаторов выберите модификатор «Сглаживание», в свитке «Параметры» установите флажок «Автосглаживание», задайте значение «Порог» (я задал 45). Как видите (рис. 4), внешне бутылки стали почти одинаковыми, за исключением нескольких деталей, которые при желании можно исправить. Главная разница — в полигонаже: во второй бутылке 456 треугольников, более чем в 2 раза меньше!
Примечание: чтобы узнать, сколько треугольников в вашем объекте, выделите его и нажмите клавишу 7 — в верхнем левом углу появится искомая цифра.
Теперь сами создайте пару бокалов (рис. 5), все необходимые для этого знания у вас есть.
Создание трехмерных тел методом сплайнового каркаса
Метод сплайнового каркаса наряду с методом лофтинга (который мы еще рассмотрим в будущих статьях) является одним из наиболее универсальных методов построения трехмерных тел из сплайнов, так как позволяет строить тела абсолютно любой формы. Такие тела не обязаны иметь осевую симметрию, как того требует метод вращения профиля.
Создание трехмерного тела методом сплайнового каркаса осуществляется в два этапа. Сначала строится собственно каркас, представляющий собой пространственную решетку из отдельных сплайнов, которая должна воспроизводить форму моделируемого тела и служить опорой для оболочки трехмерного объекта. Затем к этому каркасу применяется модификатор «Поверхность», который формирует трехмерную поверхность, «натягивая» ее на каждую ячейку решетки каркаса, как на рамку.
Что такое сплайновый каркас?
Сплайновый каркас — это в общем случае трехмерная сетка, построенная из множества кривых-сплайнов и имеющая следующие особенности.
-
Все сплайны в составе каркаса должны являться подобъектами одной и той же сплайновой формы. Чтобы все сплайны принадлежали к одной и той же форме, используйте один из следующих приемов:
-
перед созданием сплайнов сбросьте флажок, расположенный справа от кнопки «Начать новую форму» в свитке «Тип объекта» командной панели «Создать»;
-
если сплайны были созданы как отдельные формы, сначала преобразуйте их к типу «Редактируемый сплайн», а затем присоедините к одной форме с помощью команды «Присоединить»;
-
создайте единственный сплайн, преобразуйте его к типу «Редактируемый сплайн», щелкните на квадратике со знаком «плюс» слева от строки «Редактируемый сплайн» в стеке модификаторов, выберите в раскрывшемся списке подобъектов вариант «Сплайн» и создайте нужное количество копий этого сплайна методом перетаскивания при удерживаемой клавише
.
Ячейки сплайнового каркаса должны образовываться сплайнами, пересекающимися в точках своих вершин.
В отличие от стандартной сетки, состоящей только из треугольных граней, в сплайновом каркасе допускается наличие как треугольных, так и четырехугольных ячеек. Ячейки с числом вершин более четырех считаются недопустимыми.
Ребра каркаса, обрамляющие каждую треугольную или четырехугольную ячейку, должны иметь вершины только в углах ячеек и не иметь более никаких промежуточных вершин.
После применения модификатора «Поверхность» ячейки каркаса, имеющие четыре вершины, преобразуются в четырехугольные куски Безье. Ячейки с тремя вершинами превращаются в треугольные куски. В итоге на сплайновый каркас как бы натягивается сетка из кусков Безье.
На ячейки каркаса, имеющие пять и более вершин, модификатор «Поверхность» не может нанести поверхность. Такие ячейки остаются открытыми и выглядят как дыры в оболочке трехмерного тела. После устранения лишних вершин такие ячейки автоматически накрываются поверхностью.
* * *
На этом мы завершаем наш урок. Конечно, все вышеизложенные методы сплайнового моделирования не исчерпываются, и в будущих статьях мы рассмотрим еще несколько интересных методов и модификаторов для сплайнового моделирования.
Построение сплайнового каркаса вручную
Давайте смоделируем чайную ложечку. Так как ячейки сплайнового каркаса должны образовываться сплайнами, пересекающимися в точках своих вершин, для обеспечения точного совпадения вершин пересекающихся сплайнов в этом случае используется средство трехмерной привязки вершин сплайнов к вершинам других сплайнов.
Шаг 1. Нарисуйте с помощью линий верхнюю часть каркаса ложки (рис. 6). Склонируйте ее и расположите на 2 мм выше первой части. Далее объедините обе части в один сплайн. Теперь самая трудоемкая и требующая внимательности работа — объедините линиями крайние точки разных частей, т.е. те точки, которые расположены по их периметру.
Шаг 2. Теперь, когда подготовка сплайна завершена, применяем к нему модификатор «Поверхность» (где его искать, вы уже знаете). В параметрах модификатора вы найдете следующие настройки.
-
«Порог» — задает радиус области вокруг каждой из вершин сплайна, при попадании в которую других вершин все они сливаются в одну. При этом маркеры управляющих векторов вершин Безье тоже рассматриваются как вершины. Если расстояние между какими-то вершинами сплайнового каркаса оказывается меньше величины «Порога», эти вершины после применения модификатора «Поверхность» сливаются в одну. В связи с этим величина данного параметра существенным образом влияет на вид поверхности, получающейся после «натягивания» сетки кусков на сплайновый каркас. Чтобы устранить возникающие искажения, уменьшите пороговое расстояние слияния.
-
«Перевернуть нормали» — меняет направление нормалей кусков Безье на противоположное.
-
«Удалить внутренние куски» — установка этой настройки обеспечивает удаление «лишних» внутренних кусков Безье, которые появляются в результате применения модификатора, однако не могут наблюдаться в обычных условиях. В ряде случаев это позволяет существенно улучшить внешний вид полученного объекта.
-
«Использовать только выделенные сегменты» — для построения поверхности будут использованы только сегменты сплайна, выделенные на уровне подобъектов. Поэкспериментируйте со всеми этими настройками, чтобы добиться наилучшего вида ложки.
У меня вышла вот такая (рис. 7). Не шедевр, конечно, да и до экономии треугольников там далеко, но если учесть, что делалась она на скорую руку, то вполне себе ложечка. Да и задачу свою она выполняет, а именно демонстрирует ручное построение сплайна-каркаса и возможнос-ти модификатора «Поверхность».