Здравствуйте, уважаемые читатели! Вот и наступило время очередного погружения в мир 3ds Max, на этот раз — на страницах нашего печатного издания. Как вам уже известно, одно из основных предназначений 3ds Max — моделирование трехмерных объектов. Достаточно часто бывает необходимо создать сцену или отдельную модель, что невозможно осуществить, используя только примитивы. Многие объекты, окружающие нас в повседневной жизни, имеют несимметричную поверхность, и воспроизвести ее в трехмерной графике довольно сложно. Объекты категории “Геометрия в 3ds Max” являются базовым материалом для создания более сложных моделей. Для редактирования поверхности примитивов используются различные способы моделирования:

  • моделирование на основе примитивов;
  • использование модификаторов;
  • сплайновое моделирование;
  • правка редактируемых поверхностей («Редактируемая поверхность», «Редактируемая полигональная поверхность», «Редактируемая патч-поверхность»);
  • создание объектов с помощью булевых операций;
  • создание трехмерных сцен с использованием частиц;
  • NURBS-моделирование (NURBS — Non Uniform Rational B-Splines, неоднородные нерациональные В-сплайны).

Моделирование на основе примитивов было продемонстрировано в предыдущих статьях, а здесь мы рассмотрим сплайновое моделирование -– один из эффективных способов создания трехмерных моделей. В конечном итоге создание модели с помощью сплайнов (трехмерных кривых) сводится к построению сплайнового каркаса, на основе которого создается огибающая трехмерная геометрическая поверхность.

Основная часть сплайнов представляет собой объекты стандартной формы, такие как прямоугольник, круг или звезда. Построение таких сплайнов вряд ли можно считать рисованием. Для их создания применима та же формула, которая использовалась в предыдущих уроках при построении объектов-примитивов: «удерживаем правую кнопку мыши, перетаскиваем, отпускаем, опять щелкаем» и т.д. Некоторые навыки рисования нужны при создании сплайнов лишь одного типа — линия.

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

Общие сведения о сплайнах

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

Вершины сплайна различаются по типу и определяют степень кривизны сегментов сплайна, прилегающих к этим вершинам. Первая вершина, обозначающая начало сплайна, в момент создания помечается квадратиком белого цвета. В «Максе» поддерживаются четыре типа вершин сплайнов, как показано на рис. 1 на примере сплайна-линии:

Рис. 1. Подобъекты сплайна-линии:

    • с изломом — в такой вершине сплайн претерпевает излом. Участки сегментов вблизи нее не имеют кривизны;
    • сглаженная — вершина, через которую кривая сплайна проводится с плавным изгибом, без излома, имея одинаковую кривизну сегментов при входе в вершину и выходе из нее;
    • Безье — вершина, подобная сглаженной, но позволяющая управлять кривизной сегментов сплайна при входе в вершину и при выходе из нее. Для этого вершина снабжается касательными векторами с маркерами в виде квадратиков зеленого цвета на концах. У вершин типа Безье касательные векторы всегда лежат на одной прямой, а удаление маркеров от вершины, которой принадлежат векторы, можно изменять. Перемещение одного из маркеров вершины Безье всегда вызывает центрально-симметричное перемещение второго. Перемещая маркеры касательных векторов вокруг вершины, можно изменять направление вхождения сегментов сплайна в вершину и выхода из нее, а изменяя расстояние от маркеров до вершины — регулировать кривизну сегментов сплайна;
    • Безье с изломом — вершина, которая, как и вершина типа Безье, снабжена касательными векторами. Однако у вершин Безье с изломом касательные векторы не связаны друг с другом и маркеры можно перемещать независимо.

Доступ к редактированию сплайнов на уровне подобъектов, т.е. отдельных сегментов и вершин, возможен с помощью командной панели «Изменить».

Формы могут состоять из нескольких отдельных сплайнов. Если форма состоит более чем из одного сплайна, можно применять модификаторы и преобразования к сплайнам как к набору объектов либо объединить их в пределах формы в один более сложный сплайн.

Порядок создания сплайнов

Для создания сплайнов выполните следующие действия.

Щелкните на кнопке «Формы»  командной панели «Создать» и выберите в раскрывающемся списке разновидность объектов «Сплайны». В свитке «Тип объекта» появятся кнопки с надписями, соответствующими типам стандартных сплайнов. Всего в свитке «Тип объекта» имеются инструменты для создания следующих 11 стандартных сплайнов: линия, прямоугольник, круг, эллипс, дуга, кольцо, N-угольник, звезда, текст, спираль и сечение.

Над кнопками типов объектов в свитке «Тип объекта» находится кнопка «Начать новую форму», которая по умолчанию заблокирована во включенном (нажатом) состоянии. Если разблокировать ее, сбросив расположенный справа флажок, то все вновь создаваемые сплайны будут принадлежать к одной и той же форме. В этом случае, чтобы начать новую форму, придется щелкнуть на кнопке «Начать новую форму».

Нажмите на кнопку объекта нужного типа. В нижней части командной панели «Создать» появятся свитки с параметрами выбранного объекта. Как правило, это свитки «Визуализация», «Интерполяция», «Метод создания», «Клавиатурный ввод» и «Параметры». Из всей совокупности сплайнов только объекты типа сечение и спираль не имеют свитка «Интерполяция».

Если требуется сделать сплайн видимым в составе визуализированной сцены, например, если сплайн представляет собой строку текста, изображает проволоку или веревку, то во вкладке «Визуализация» установите флажок «Показать при визуализации»: объект на этом этапе становится видимым, а установленный флажок «Показывать в окне проекции» позволяет визуализировать сплайновый примитив в окне проекции.

Задайте толщину визуализируемой линии сплайна в счетчике «Толщина свитка «Визуализация». Линия будет визуализироваться в виде трубки с диаметром, равным параметру «Толщина», при этом число сторон поперечного сечения такой трубки задается счетчиком сторон. Счетчик «Угол» задает угол поворота поперечного сечения относительно продольной оси сплайна. Если флажок «Показывать в окне проекции» установлен, становится доступным еще один флажок — «Использовать настройки для окон проекций». Его установка позволяет при отображении сплайнов в виде сетки в окнах проекций использовать для простоты иные параметры толщины трубки, числа сторон и углов ориентации сечения сплайна, чем это будет при визуализации. Например, можно указать существенно меньшее число сторон. Чтобы задать иные значения названных параметров, следует установить переключатель «Окно проекции». При необходимости применения к линии сплайна материала на основе текстурных карт установите флажок «Проекционные координаты», как показано. С помощью переключателей «Округлый» и «Прямоугольный» можно выбрать сечение сплайна. При выборе прямоугольного сечения устанавливаются значения «Длина» и «Ширина», определяющие толщину сплайна. Параметр «Соотношение» обозначает соотношение длины и ширины прямоугольного профиля сплайна. Если нажать кнопку с изображением замка, расположенную рядом с этим параметром, то при изменении длины или ширины профиля другой параметр автоматически будет изменяться так, чтобы их соотношение оставалось неизменным. Разницу между округлым и прямоугольным сечениями можно увидеть на рис. 2.

Рис. 2.  Сплайн-дуга с округлым и прямоугольным сечениями

Настройте параметры интерполяции криволинейных сегментов сплайна, т.е. автоматической замены их совокупностью прямолинейных отрезков, в свитке «Интерполяция». Набор параметров этого свитка одинаков для всех объектов:

  • задайте число точек излома криволинейных сегментов с помощью счетчика шагов. 3ds Max будет разбивать криволинейные сегменты на прямолинейные отрезки, число которых на единицу больше числа точек излома;
  • не сбрасывайте установленный по умолчанию флажок «Оптимальная» (имеется в виду интерполяция), чтобы 3ds Max не разбивал на отрезки прямолинейные сегменты сплайнов. Все криволинейные сегменты используют при этом заданное число шагов;
  • установите флажок «Адаптивная», чтобы заставить программу автоматически подбирать число шагов разбиения для каждого сегмента сплайна, исходя из его кривизны. Установка этого флажка делает невозможным задание числа шагов и включение режима «Оптимальная».

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

Под действием модификатора, назначаемого объекту, свойства последнего изменяются. Так, модификатор может всячески деформировать объект — изгибать, вытягивать, скручивать и т.д. Модификатор также способен служить для управления положением текстуры на объекте или изменять физические характеристики объекта, например делать его гибким.

* * *

Итак, мы научились работать со сплайнами. В следующий раз рассмотрим применение модификаторов, которые превращают двухмерные сплайны в трехмерные объекты.


Создание трехмерных тел методом вращения профиля

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

Чтобы создать трехмерное тело методом вращения профиля, необходимо сначала нарисовать двухмерную форму — профиль, который должен представлять собой одну зеркальную половину поперечного сечения будущего тела вращения. Кривая формы-профиля может быть как разомкнутой, так и замкнутой. Профиль можно сделать в виде стандартного сплайна, сплайна-линии или NURBS-кривой.

Алгоритм рисования примерно такой: как правило, вначале рисуется линия, точнее сказать, расставляются точки линии примерно той формы, какая требуется, а затем производится доводка формы путем редактирования сплайна.

Попробуем создать изображение бутылки вина и пары бокалов.

Шаг 1

Нам нужно нарисовать с помощью линии профиль бутылки, например, как на рис. 3. Но можете дать волю фантазии и изобразить бутылку абсолютно любой формы. Чтобы создать замкнутый сплайн, щелкните на первой вершине. Когда появится запрос «Замкнуть сплайн?», щелкните на кнопке «Да». Если вы щелкнули вблизи от первой вершины, так что появился запрос «Замкнуть сплайн?», но замыкать сплайн не требуется, то щелкните на кнопке «Нет».

Рис. 3. Приблизительный профиль бутылки

К сведению: для завершения процесса создания разомкнутой линии просто щелкните правой кнопкой мыши.

Если вы раньше уже работали с пакетами векторной графики, то это не вызовет у вас особых затруднений. Но если такой практики у вас не было, то скорее всего нужный профиль вы нарисуете далеко не с первого раза.

У нас получился замкнутый профиль (просто он проще для понимания). Но если вы моделируете крупную сцену с множеством объектов или работаете для заказчика, то имеет значение количество треугольников и иногда полигонов в каждом объекте. Как вы помните, чем меньше треугольников, тем меньше такая модель требует вычислительных ресурсов компьютера, но тем хуже она выглядит. И наоборот, чем больше треугольников, тем более качественно она выглядит, но тем дольше она обрабатывается системой. Поэтому хороший дизайнер всегда ищет золотую середину, когда и качество модели удовлетворяет запросам, и полигонаж при этом оптимизирован, насколько возможно без потери качества. Пока что нам нет особого смысла задумываться над экономией треугольников и полигонов, но навык «экономного моделирования» лучше вырабатывать сразу, чтобы потом не переучиваться. Как известно, научиться легче, чем переучиваться. Поэтому профиль бутылки следует сделать разомкнутым, в нашем случае это даст на 8—10% меньше треугольников. Но не расстраивайтесь, перерисовывать заново ничего не придется, нам нужно всего лишь отредактировать сплайн.

Рис. 4. Кнопки и меню переключения режимов  редактирования сплайнаШаг 2

Объект Линия по умолчанию является редактируемым сплайном. Редактируемый сплайн может быть откорректирован на следующих уровнях подобъектов: вершина, сегмент и сплайн. Для перехода в один из этих режимов редактирования выделите объект, перейдите на вкладку «Изменение командной панели» и, развернув список в стеке модификаторов, переключитесь в нужный режим редактирования (рис. 4).

В процессе редактирования можно перемещать вершины линии, изменять их тип, настраивать форму сегментов линии за счет манипулирования касательными векторами вершин Безье, а также удалять и добавлять новые вершины и сегменты.

Перейдем в режим редактирования сегментов, выделим ненужный и удалим его. А не нужен нам тот сегмент, который проходит по линии оси симметрии (рис. 5). Чтобы удалить сегмент, можно просто нажать клавишу , предварительно выделив его.

Уверяю вас, удаление данного сегмента никак не повлияет на внешний вид бутылки, а вот треугольников в рисунке будет меньше.

Далее переходим в режим редактирования вершин и придаем нашей бутылке более округлые и изящные формы. Если нужно изогнуть какую-то линию (сегмент), выделяем по очереди вершины, к которым данный сегмент примыкает, в контекстном меню выбираем «Безье с изломом» и таким образом преобразовываем вершину в нужный нам тип. Далее активируем функцию перемещения объектов и двигаем касательные векторы, добиваясь нужной кривизны сегмента. Вот что получилось у меня (рис. 6).

Рис. 5. Удаленный сегмент

Рис. 6. Законченный профиль бутылки

К сведению: далеко не все сплайны являются редактируемыми. Для преобразования сплайна в редактируемый щелкните на нем правой кнопкой мыши и в появившемся контекстном меню выберите команду «Преобразовать • Преобразовать в редактируемый сплайн».


Предыдущие два урока см. на «Мир ПК-диске» №5.