Методичка (Основы 3D MAX) / Lab_3 (Шахматы) / Lab_3 (Часть 2)
.docЛабораторная работа № 3 («Основы 3D Studio MAX»)
Тема: Создание шахматных фигур (Часть 2 – создание шахматного коня)
Пожалуй, наиболее сложной шахматной фигурой для моделирования является конь. В общем случае эта фигура не может быть представлена ни как поверхность вращения, ни как трехмерный примитив, форма которого изменена модификаторами, подобно тому, что рассматривалось в лабораторных работах 1 и 2. Создание данной модели требует совершенно иной техники, которая бы позволяла моделировать объекты, произвольной формы.
В настоящее время в 3D Studio MAX существует, по крайней мере, три технологии создания объектов произвольной формы:
- технология каркасного моделирования (наиболее ранняя технология);
- технология лоскутного моделирования;
- моделирование при помощи кривых NURMS (Non-Uniform Rational B-Splines).
В данной работе мы познакомимся с техникой моделирования объектов при помощи сплайнов, которые затем будут преобразованы в лоскуты (patch), составляющие поверхность моделируемого объекта.
На рисунке 1 показан пример модели шахматного коня, который спроектирован при помощи техники лоскутного моделирования.
Новые инструменты, рассмотренные в примере:
- загрузка фонового изображения в видовое окно (меню Views->Viewport Background);
- использование привязок (инструмент
- Snaps);
- изменение формы окна выделения
(инструмент
- Selection Region);
- фиксация выделения (инструмент
- Selection Lock);
- использование команды Cross Section;
- использование модификатора Surface (поверхность);
- использование модификатора Cap Holes (закрытие отверстий);
- использование модификатора Mesh Smooth (сглаживание каркаса);

Рис. 1. Модель шахматного коня
Техника лоскутного моделирования объектов произвольной формы состоит в нанесении сетки из сплайнов поверх изображения моделируемого объекта, которое обычно помещается в фон одного или нескольких видовых окон. Затем при помощи специального модификатора (Surface) эта сетка превращается в поверхность трехмерного объекта.
1. Загрузка изображения в видовое окно
Для данного примера нам достаточно будет одного изображения бокового вида, которое прилагается к лабораторной работе в виде файла Knight.jpg (рис. 2).

Рис. 2. Изображение фигуры
Для того чтобы поместить это изображение в видовое окно 3D Studio MAX необходимо выполнить следующие действия (рис. 3):
- перейдите в видовое окно вида слева (Left);
- в главном меню выберите следующее: Views > Viewport Background (Виды->Фон видового окна);
- в раскрывшемся диалоговом окне, в разделе Background Source (Источник фонового изображения) выберите Files… (Файлы) и укажите путь к файлу Knight.jpg;
- в разделе Aspect Ratio (Коэффициент сжатия) укажите Match Bitmap (Соответствует растру изображения). Этот параметр необходим для того, чтобы изображение сохраняло свои пропорции;
- левее расположен флажок Lock Zoom/Pan
(Зафиксировать прокрутку и масштабирование),
установите его, если он не был предварительно
установлен. Фиксация прокрутки и
масштабирования обеспечивает перемещение
и масштабирование фона видового окна
при использовании инструментов управления
видовыми окнами (например,
и
);
- нажмите ОК, закрывая диалог.
Изображение появится в видовом окне.
Если при этом изображение строительной сетки создает неудобства, отключите ее, нажав клавишу G.

Рис. 3. Диалог настройки фонового изображения в видовых окнах
При помощи инструмента Line постройте линию в видовом окне с изображением (рис. 4). Эта линия должна примерно повторять контур изображения. Для тренировочного примера постарайтесь придерживаться того количества вершин, которое показано на рисунках.

Рис. 4. Создание контурной линии
Теперь нам необходимо соединить некоторые
из вершин сплайна дополнительными
сегментами. Для того чтобы точно соединять
вершины друг с другом воспользуемся
привязкой к вершинам. Выберите на
основной панели инструментов инструмент
(привязка), активируйте его, а затем
щелкните по нему правой кнопкой мыши.
В открывшемся диалоговом окне (рис. 5),
во вкладке Snaps
(привязки), нажмите кнопку Clear
All для удаления всех
флажков, и после этого установите целевой
объект привязок – Vertex
(вершины), установив соответствующий
флажок. Закройте окно привязок.

Рис. 5. Окно настройки привязок
В параметрах линии, перейдите на уровень
вершин (
)
и выберите команду Create
Line. Теперь, при
перемещении указателя мыши в области
созданного вами контура, вы увидите
синий крестообразный маркер привязки,
«прилипающий» к вершинам сплайна. При
помощи команды Create
Line постройте
дополнительно еще семь сегментов как
показано на рисунке 6а. Обратите внимание,
что никакие вершины не свариваются друг
с другом. По сути это сделать невозможно,
так как из одной вершины могут выходить
максимум два сегмента, но никак не более
того. Поэтому вершины, построенных вами
сегментов просто примыкают к вершинам
сплайна контура, а установка привязок
делает это примыкание наиболее точным.

|
(а) |
(б) |
Рис. 6. Построение сетки сплайнов на изображении
Далее при помощи команды Refine (уточнить) создайте несколько дополнительных вершин на построенных сегментах (рис. 6 б). Если необходимо, временно отключите привязки. Теперь соедините полученные вершины сплайнами (рис. 7). Не забывайте использовать привязки.
Обратите особое внимание на структуру получившейся сетки. Как видите, все ее ячейки определяются либо тремя, либо четырьмя углами. Это очень важно для модификатора, который превращает в последствии эту сетку в поверхность, так как он может работать только с трех или четырехугольными ячейками. Теперь проверьте, чтобы все вершины сетки имели тип Corner (угловая) и если необходимо измените тип. Так как в последствии мы собираемся изгибать полученную сетку, то установка углового типа вершин нам необходима, потому что, как вы знаете, угловые вершины гораздо «послушнее» при настройке изгибов линии, чем другие типы вершин.

Рис. 7. Построенная сплайновая сетка
Сетка, которую мы построили, является
совершенно плоской. Для придания объема
необходимо перетащить на себя (или от
себя) внутренние вершины сетки таким
образом, чтобы убрать их из плоскости
рисунка. Для того чтобы выделить все
внутренние вершины сразу можно
воспользоваться окном выделения. По
умолчанию установлена прямоугольная
форма окна выделения. В данном случае
она нам не подходит, потому что в нашей
сетке невозможно заключить все внутренние
вершины в одну прямоугольную область,
не зацепив вершин контура. Поэтому
меняем форму окна выделения. Для этого
в основной панели инструментов выберите
инструмент
(прямоугольное окно выделения) и
разверните прикрепленную панель,
ассоциированную с ним. В этой панели
выберите инструмент
(окно выделения при помощи лассо). Далее
выберите инструмент
(выделить) и указателем мыши начертите
контур выделения вокруг внутренних
вершин сетки и двух нижних вершин (рис.
8 а).

|
(а) |
(б) |
Рис. 8. Выделение и перенос внутренних вершин сплайновой сетки
Теперь для переноса вершин необходимо
перейти на вид перспективы. Чтобы при
этом случайно не снять выделение
активируйте инструмент
(Selection Lock
– зафиксировать выделение), который
находится в левой нижней части окна 3D
MAX. Этот инструмент
предотвращает снятие выделения с
объектов при работе с инструментами
или видовыми окнами. Теперь в окне
перспективы при помощи инструмента
перемещения
переместите выделенное количество
вершин вдоль оси X
(рис. 8 б). Повторным щелчком на инструменте
снимите фиксацию выделения. Теперь
снова установите вид окна выделения
и подкорректируйте (перемещением)
отдельные из перенесенных вершин, так
чтобы форма стала похожа на рисунок 8
б. Не забудьте, что вершины в узлах
сплайновой сетки не слиты, т.е. там
находится не по одной, а по две вершины,
которые необходимо переносить
одновременно. Поэтому выделять такие
вершины нужно только при помощи окна
выделения.
Итак, судя по рисунку 8 б, мы получили
половинку трехмерного каркаса фигуры.
Теперь при помощи инструмента
(Mirror) сделайте для нее
зеркальную копию и разведите обе
половинки в стороны (рис. 9а). Затем
используйте команду Attach,
чтобы соединить обе половинки в единую
форму. Теперь необходимо соединить обе
половинки при помощи сегментов. Для
этого перейдите на уровень сплайнов
и выберите команду Cross
Section (только 3D
MAX 7). В окне перспективы
сделайте щелчок по вершине уха одной
половинки, перенесите указатель на
другую половинку и сделайте второй
щелчок по вершине уха второй половинки.
В результате обе половинки будут
соединены сегментами по контуру
сплайновой сетки (рис. 9 б). Для завершения
работы команды щелкните правой
кнопкой мыши в любом месте видового
окна.

|
(а) |
(б) |
Рис. 9. Копирование и соединение половинок
Перейдите на вид спереди, на уровень
вершин
.
Выделите все вершины одной половинки
(рис. 10 а). При помощи инструмента
перемещения сближайте половинки до
достижения нужного расстояния (рис. 10
б). Обратите внимание, что весь получившийся
сетчатый каркас, за исключением основания
обладает одной особенностью – ячейки
сетки либо треугольные, либо четырехугольные.

|
(а) |
(б) |
Рис. 10. Сближение половинок
Примените к полученной форме модификатор
Surface (Поверхность).
При этом сплайновая сетка превратится
в лоскутную поверхность (рис. 11). В
настройках модификатора установите
флажок
(удалять внутренние лоскуты). Внутренние
лоскуты могут образовываться, как
перепонки, внутри формы и будут мешать
нам при дальнейших построениях.

Рис. 11. Поверхность, полученная применением модификатора Surface
Кроме того, уменьшите детальность лоскутов, установив параметр Steps (количество шагов) равным 1. Если ваша фигура выглядит неправильно (рис. 12), то измените состояние флажка Flip Normals (Обратить нормали). Смысл обращения нормалей рассматривался нами в лабораторной работе №2 при проектировании вазы для цветов.

Рис. 12. При получении такой формы измените состояние флажка Flip Normals
Образование «дырок» в каркасе, например как на рисунке 13, говорит о том, что соответствующие вершины в узлах сетки находятся недостаточно близко друг к другу (рис. 14).

Рис. 13. Из-за несовпадения вершин сплайновой сетки поверхность может быть образована не везде

Рис. 14. Вершины в узлах сетки находятся слишком далеко друг от друга
Для исправления ситуации воспользуйтесь командой Fuse на уровне вершин для их сближения.
Нижняя часть каркаса все еще остается открытой (рис. 15а). Чтобы ее закрыть примените к объекту модификатор Cap Holes (рис. 15 б).

|
(а) |
(б) |
Рис. 15. Закрытие отверстий в каркасе при помощи модификатора Cap Holes
На данном этапе мы получили низкополигональную трехмерную модель фигуры. Превратим ее в высокополигональную при помощи модификатора сглаживания. Далее примените к объекту модификатор Mesh Smooth (сглаживание каркаса). Этот модификатор производит сглаживание каркаса объекта при помощи дополнительного разбиения его геометрии. В настройках модификатора установите в выпадающем меню Subdivision Method (метод разделения) значение Classic, а параметр Iterations (итерации) установите равным 2. В результате должен получиться объект, изображенный на рисунке 16.

Рис. 16. Сглаженный каркас фигуры
Перейдите на вид слева (там, где в видовом
окне загружено изображение фигуры),
включите инструмент
(показать конечный результат), перейдите
на уровень вершин сплайновой сетки
объекта в стеке и откорректируйте фигуру
так, чтобы она максимально совпадала с
изображением (рис. 17).

Рис. 17. Окончательна корректировка формы
Создайте такое же основание как у пешки (рис. 18 а) и установите его так, чтобы фигура коня немного погружалась в основание. Используйте булеву операцию объединения (Union) для получения составного объекта фигуры коня и основания (рис. 18 б).

|
(а) |
(б) |
Рис. 18. Создание основания и объединение объектов
Преобразуйте фигуру в редактируемый каркас, назовите объект Knight и сохраните проект.
