Моделирование с использованием сплайнов

Лабораторная работа №4.

Моделирование с использованием сплайнов.

Цель работы: научиться использовать сплайны при моделировании объектов, применять текстурные карты и модификатор Hair and Fur.

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

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

Сегмент – это часть линии сплайна между двумя соседними вершинами.

В 3ds Max используются четыре типа вершин:

Corner (Угловая) – вершина, примыкающие сегменты к которой не имеют кривизны;

Smooth (Сглаженная) — вершина, через которую кривая сплайна проводится с изгибом и имеет одинаковую кривизну сегментов с обеих сторон от нее;

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

Bezier Corner (Безье угловая) — вершина, которая, как и вершина типа Bezier, снабжена касательным вектором. Однако у вершин Bezier Corner касательные не связаны друг с другом отрезком, и ручки Безье можно перемещать независимо.

Разнообразие типов вершин позволяет очень гибко создавать сплайны любых форм. Рекомендации по их использованию: если требуется построить фигуру с изломами, по пути следования сплайна – используйте угловые точки (Corner). Если необходимо иметь плавные искривления сплайна - используйте сглаженные (Smooth) вершины, а если еще при этом необходим контроль над кривизной сплайна в данной точке, нужно использовать вершины Безье (Bezier). Вершины Bezier Corner дают полный контроль над сегментами сплайна в этой точке, но работать с ними нужно крайне осторожно, так как они при визуализации могут создавать на форме изломы и перепады. Сплайнами могут быть как линии произвольной формы, так геометрические фигуры, такие как прямоугольники, звезды, эллипсы (Рис.1).

Рис. 1. Визуализация сплайнов в 3ds Max.

Чтобы создать сплайн, нужно щёлкнуть мышкой на кнопке Shapes (Формы) командной панели Create (Создать) и выбрать в списке объектов Splines (Сплайны). В свитке Object Type (Тип объекта) появится набор стандартных сплайнов. К ним относятся:

Line (Линия);

Circle (Окружность);

Arc (Дуга);

NGon (Многоугольник);

Text (Сплайновый текст);

Section (Сечение);

Rectangle (Прямоугольник);

Ellipse (Эллипс);

Donut (Кольцо);

Star (Многоугольник в виде звезды);

Helix (Спираль).

В свитке Object Type (Тип объекта) выбирается объект требуемого типа. В нижней части появляются свитки с параметрами выбранного объекта: Rendering (Визуализация), Interpolation (Интерполяция), Creation Method (Метод создания), Keyboard Entry (Клавиатурный ввод), Parameters (Параметры).

В свитке Rendering можно отметить флажком параметр Renderable, что позволит сплайну быть видимым при визуализации и задать толщину Thickness, количество сторон Sides и угол поворота Angle.

В свитке Creation Method (Метод создания) можно отметить параметр Edge (От края) или Center (От центра) в зависимости от способа построения: от края или от центра. Объекты Line (Линия) и Arc (Дуга) имеют другие свитки Creation Method (Метод создания). Для линии в нём задается тип вершин, используемых при построении, а для дуги способ построения: либо вначале строятся два конца, а затем середина, либо сначала определяется середина дуги, а затем строятся ее конечные точки.

В свитке Interpolation (Интерполяция) настраиваются параметры интерполяции криволинейных сегментов сплайна, то есть задаётся число точек излома криволинейных сегментов с помощью счетчика Steps (Шагов), а так же устанавливается параметр Optimize (Оптимизация), которые заставляют программу оптимизировать сплайн путем сброса в ноль числа шагов для его линейных сегментов.

Редактирование сплайнов.

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

Доступ к редактированию сплайнов на уровне отдельных сегментов и вершин открывается с помощью кнопки Modify (Изменить) на командной панели. Часто необходимо использовать преобразование объекта-сплайна в редактируемый сплайн (это можно кликнув правой кнопкой мыши на сплайне и выбрав Convert To:>Convert to Editable Spline). Но необходимо учитывать, что при этом теряются параметрические свойства объекта (становится невозможным использовать такие параметры объекта как ширина, высота, радиус и т.д.), зато открывается полный набор возможных команд в свитке Edit Object (Правка объекта) в отличие от использования модификатора Edit Spline (Правка сплайна)

Редактирование сплайна на уровне формы позволяет присоединить к ней другие готовые сплайны, создавать отрезки линий в качестве сегментов текущего сплайна, изменять параметры интерполяции криволинейных сегментов, заданных при его создании. К примеру, для присоединения к выделенной сплайновой форме другого сплайна необходимо раскрыть свиток Geometry (Геометрия) и выбрать кнопку Attach (Присоединить). Затем переместить курсор в окно проекции и указать на присоединяемый сплайн. Когда курсор примет специальный вид, щелкнуть левой кнопкой мыши. Два сплайна будут соединены в одну форму.

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

Основные параметры, применяемые при редактировании вершин. Параметр Connect (Соединить) позволяет соединять две вершины на концах разомкнутого сплайна отрезком прямой. Используя кнопку Break (Разбить), можно разбить любую, кроме концевых, вершину сплайна на две совпадающие, но не соединяющиеся вершины. Нажав на кнопку Refine (Уточнить), можно вставить дополнительную вершину в произвольной точке сплайна без изменения его формы. Такая вершина может понадобиться, например, для разрыва в этом месте сплайна либо для уточнения формы сплайна. Вставить дополнительные вершины позволяет также команда Insert (Вставить), которая дает возможность вставить вершину в любой точке сплайна, сразу же переместить ее и продолжить добавление новых вершин. Нажимая кнопку Weld (Слить), можно объединить две концевые или совпадающие вершины в одну, при этом в счетчике Weld Threshold (Порог слияния) задается расстояние, при котором будут объединяться совпадающие вершины. Для удаления вершин необходимо выделить их и нажать кнопку Delete (Удалить).

Редактирование сплайнов на уровне сегментов позволяет разбивать сплайн на отдельные части, добавлять новые вершины к существующим сегментам, отделять сегменты, преобразуя их в самостоятельные формы и удалять сегменты. Для того, чтобы иметь возможность редактирования сплайнов на уровне сегментов, в свитке Selection (Выбор) нужно щёлкнуть на кнопке с пиктограммой Segment (Сегмент). Для изменения типа сегмента необходимо выделить один или несколько сегментов. Выделенные сегменты отличаются красным цветом. Выставив курсор на любой из них и щелкнув правой кнопкой мыши, можно вызвать контекстное меню, где в нижней части приведен перечень типов сегментов: Curve (Кривая) и Line (Линия). Текущий тип отмечен флажком. Кроме того, нажав кнопку Break (Разбить) в свитке Geometry (Геометрия), можно разбить сплайн на два отдельных сплайна путем вставки вершины в указанной точке. Нажав кнопку Refine (Уточнить) в свитке Geometry (Геометрия), можно вставить вершину в произвольной точке сплайна, не разбивая сплайн и не меняя его формы. Если выделить сегмент и нажать кнопку Detach (Отделить), то это позволит отделить сегмент сплайна, превратив его в самостоятельный объект. Для равномерного разбиения выделенного сегмента на более мелкие сегменты за счет размещения равноудаленных вершин по всей длине сегмента нужно щёлкнуть на кнопке Divide (Разделить). При этом в счётчике Divisions (Деления) надо указать число разбиений. Кнопка Delete (Удалить) позволяет удалять выделенный сегмент сплайна, а кнопка Insert (Вставить) выполняет ту же операцию, что и аналогичная команда редактирования вершин.

Редактирование сплайнов на уровне сплайнов. Данный вид редактирования позволяет объединять, замыкать, выполнять булевые и другие операции над сплайнами. Для редактирования сплайнов в свитке Selection (Выбор) необходимо щёлкнуть на кнопке с пиктограммой Spline (Сплайн). Выделенный сплайн приобретет красный цвет в окнах проекций. Если нажать кнопку Outline (Контур), то выполненное действие позволяет построить контур любой ширины выделенного сплайна. Он представляет собой замкнутый сплайн. Кроме того, над сплайнами можно выполнять булевы операции. Здесь понадобятся, как минимум, два сплайна, которые должны быть составными частями одной двумерной формы. Для того, чтобы объединить оба сплайна, нужно щёлкнуть на кнопке Attach (Присоединить) в свитке Geometry (Геометрия), и далее щелкнуть на присоединяемом сплайне. Затем щелкнуть мышкой последовательно на кнопках Union (Объединение) и Boolean (Булевые). После этого нужно навести на второй сплайн курсор и, когда он примет специальный вид, щелкнуть левой кнопкой мыши. Две другие булевы операции: Intersection (Пересечение) и Subtraction (Исключение) выполняются аналогично. Для работы с командой Mirror (Отразить) необходимо назначить один из вариантов зеркального отражения и щелкнуть на кнопке Mirror (Отразить). Выделенный сплайн зеркально отразится в соответствии с пиктограммой на кнопке группы вариантов. Флажок Copy (Копия) позволяет создать зеркальную копию выделенного сплайна. Нажатие кнопки Reverse (Обратить) ведет к обращению порядка следования вершин выделенного сплайна.

Задание 1. Моделирование часовой шестерёнки с помощью сплайнов.

1. Выберите на вкладке Create (Создать) в объектах типа Shapes (Формы) вид Splines (Сплайны). В окне проекции Top (Сверху) постройте сплайн Star (Звезда). В свитке Parameters (Параметры) данного сплайна укажите следующие значения: Radius 1 = 50, Radius 2 = 45, Points = 50.

2. Создайте внутри звезды один сплайн Circle (Окружность) посередине шестерёнки с радиусом = 7.

3. Создайте ещё один сплайн окружности над предыдущей окружностью с параметром радиуса = 11.

4. Убедитесь, что большая окружность выделена. На командной панели Hierarchy (Иерархия) при нажатой кнопке Pivot в свитке Adjust Pivot в области Move/Rotate/Scale нажмите кнопку Affect Pivot Only и переместите опорную точку в центр сплайна Star так, как показано на рисунке (Рис.2). Переместив опорную точку, повторно нажмите на кнопку Affect Pivot Only.

Рис. 2. Перемещение опорной точки большей окружности в центр звезды.

5. Воспользуйтесь командой Array (Tools > Array…), чтобы создать пять копий окружности, изменив подчёркнутые параметры со значений по умолчанию на следующие: Rotate (Поворот) по координате Z = 360, количество элементов одномерного массива (1D) = 5 (Рис.3)

Рис. 3. Настройки создаваемого массива кругов.

6. Щёлкните на объекте Star (Звезда) правой кнопкой мыши, чтобы вызвать контекстное меню. Выполните команду Convert to: > Convert to Editable Spline (Преобразовать > Преобразовать в редактируемый сплайн).

7. В свитке Geometry (Геометрия) настроек объекта Star (Звезда) нажмите кнопку Attach (Присоединить) и в окне проекции Top (Сверху) щёлкните последовательно на всех созданных окружностях для присоединения их к объекту Star (Звезда). В результате должен получиться объект формы профиля будущей шестерёнки, который состоит из нескольких сплайнов.

8. На вкладке Modify (Изменение) командной панели выберите из раскрывающегося списка модификаторов модификатор Extrude (Выдавливание). В свитке его параметров укажите Amount = 4.

9. Откройте редактор материалов. Установите материал Standard в режим Multi-Layer. Установите цвет канала Diffuse тёмно-коричневым: R=25, G=19, B=5. Установите Diffuse Level = 50, в области First Specular Level установите цвет Color: R=255, G=215, B=129, Level = 120, Glossiness = 25.

В области Second Specular: цвет – белый, Level = 170, Glossiness = 90. В свитке Maps параметру Reflection задайте карту Falloff.

В свитке Falloff Parameters в верхний слот (чёрный слот) установите значение 30 и карту материала Raytrace, в нижний слот (белый слот) установите значение 90 и карту материала Raytrace (Рис.4). В списке Falloff Type выберите Fresnel. Примените данную текстуру к шестерёнке.

Рис. 4. Редактор материалов.

10. Чтобы при визуализации материал на шестерёнке отобразился корректно, необходимо установить освещение сцены. Для этого зайдите в командную панель Create, выберите в объектах типа Lights вид Standard и любой из источников света. Сцена может содержать как один, так и несколько источников света разных типов. Управление источниками света осуществляется с помощью их перемещения инструментом Select and Move. Визуализируя шестерёнку, подберите подходящее освещение.

Рис. 5. Результат.

Задание 2. Моделирование зубной щётки.

1. Нарисуйте с помощью инструмента Line примерный контур ручки зубной щётки, включив отображение сплайна в окне проекций и на финальной картинке визуализации.

2. В свитке Rendering установите прямоугольный профиль сечения сплайна (Rectangular) и подберите его параметры таким образом, чтобы параметр Length был в два раза больше параметра Width.

3. Щёлкните левой кнопкой мыши по названию окну проекции. Нажмите на Configure... В появившемся окне ViewPort Configurations на вкладке Rendering Method в области Rendering Level поставьте флажок возле свойства Edged Faces. Это позволит включить режим отображения рёбер модели.

4. Так как форма ручки должна быть сглаженной, примените к модели ручки сглаживающий модификатор Mesh Smooth (Modify > Modifier List > MeshSmooth). В свитке Subdivions Amount установите знач. Iterations = 3.

5. Временно отключите модификатор MeshSmooth (это делается нажатием "лампочки" в стеке модификаторов). Выделите в стеке модификаторов объект Line и из раскрывающегося списка назначьте ему модификатор Edit Poly, чтобы доработать форму зубной щётки.

6. Перейдите в режим работы с полигонами. В свитке Selection нажмите на кнопку Polygon. Выделите полигоны инструментом Select Object на торце модели. Воспользуйтесь инструментом Bevel из свитка Edit Polygons несколько раз, чтобы придать объекту нужную форму (Рис.6)

Рис. 6. Форма щётки.

7. Выделите два верхних полигона созданной в предыдущем пункте поверхности, удерживая нажатой клавишу Ctrl, и перейдите в окно проекции Top. В свитке Edit Geometry нажмите кнопку View Align, чтобы выровнять положение этих полигонов.

Рис. 7. Поверхность щётки после применения инструмента Bevel.

8. Используя инструмент Bevel, доработайте форму поверхности, на которой будет размещаться щетина. Примените его несколько раз (Рис.7).

9. Создайте декоративные элементы на ручке. Переключитесь в режим работы с рёбрами (Edge) и выделите одно из рёбер на сгибе. Нажмите кнопку Loop в свитке Selection, чтобы выделить петлю из прилегающих рёбер.

10. Выберете инструмент Chamfer в свитке Edit Edges и укажите в его настройках 3 сегмента.

11. В режиме работы с полигонами, выделите одно кольцо полигонов и с помощью неоднократного использования инструмента Bevel приведите его к такому виду, как на рисунке (Рис.8). Аналогичное действие примените к двум соседним кольцам полигонов. Результат моделирования ручки зубной щётки показан на рисунке (Рис.8)

Рис. 8. Слева – форма декоративного элемента щётки; справа – результат моделирования.

12. Выделите модель зубной щётки, и, щёлкнув по ней правой кнопкой мыши, вызовите контекстное меню. Выберите пункт Freeze Selection. Это позволит временно "заморозить" положение объекта.

13. Чтобы создать щетину на зубной щётке, необходимо указать области, откуда она будет произрастать. На реальной щётке щетина располагается пучками вдоль нескольких рядов. Каждый такой пучок имеет в сечении форму круга, поэтому в площадке для щетины удобно использовать основание цилиндра. Создайте в окне проекции геометрический примитив цилиндр и подберите его настройки таким образом, чтобы размер основания подходил для диаметра одного пучка щетины. Разместите его на поверхности щётки.

14. Удерживая нажатой клавишу Shift, сдвиньте объект. Выберите число копий равное 8 (Рис.9). Должен получиться ряд цилиндров.

Рис. 9. Копирование цилиндров.

15. Нажмите на кнопку выбора объектов (Select by Name) на панели инструментов, и выберите из списка все цилиндры в сцене.

16. Удерживая нажатой клавишу Shift, создайте ещё три ряда цилиндров.

17. Выделите все цилиндры таким же образом, как в пункте п. 15. Сгруппируйте цилиндры командой основного меню Group > Group.

18. Выделите модель зубной щётки, и, щёлкнув по ней правой кнопкой мыши, вызовите контекстное меню. Выберите пункт Freeze Selection. Это позволит "разморозить" положение объекта.

19. С помощью сочетания клавиш Alt-A, выровняйте положение группы цилиндров относительно щётки, задав такие же параметры, как на рисунке (Рис. 10)

Рис. 10. Параметры выравнивания цилиндров.

20. Подобрав оптимальное положение группы цилиндров на щётке, разгруппируйте их (Group > Explode). Выделив два цилиндра, с помощью клавиши Shift создайте ещё две пары цилиндров под щетину у основания и конца зубной щётки.

21. Снова заморозьте ручку зубной щётки (см.п.12), чтобы случайно не выделить её в процессе настройки волос.

22. Выделите все цилиндры, как в п.15, и конвертируйте из в Editable Poly.

23. Выделите любой цилиндр и с помощью команды Attach List в свитке Edit Geometry присоедините к нему остальные объекты. На получившимся едином полигональном объекте будут произрастать щетинки.

24. Назначьте полигональному объекту модификатор Hair and Fur из раскрывающегося списка модификаторов. В окне проекции появились хаотично расположенные волосы.

25. Чтобы волосы "росли" из основания каждого цилиндра, необходимо перейти в режим работы с полигонами и выделить на каждом цилиндре верхний полигон. Затем нажмите на кнопку Update Selection в свитке Selection, чтобы обновить расположение волос (Рис.11). Теперь волосы растут только с верхней части цилиндров.

Рис. 11. Выравнивание волос по основаниям цилиндров.

26. Сделайте визуализацию изображения клавишей F9.

27. Чтобы щетина не сгибалась у основания волос, установите в свитке Frizz Parameters параметр Frizz Root = 0.

28. В свитке General Parameters уменьшите параметр, отвечающий за разброс длины волос: Rand.Scale = 8. Кроме этого, нужно указать одинаковую толщину основания и торца каждого волоса – за это отвечают параметры Root Thick и Tip Thick. Задайте им одинаковое значение (например, равное 11), и визуализируйте изображение ещё раз.

29. Щетина слишком распушена на торце. Чтобы это исправить, в свитке Frizz Parameters уменьшите параметр Frizz Tip до 20.

30. Положением щетины можно также управлять вручную с помощью инструмента Style Hair в свитке Styling. Переключитесь в окно проекции Left и нажмите кнопку Style Hair, чтобы воспользоваться инструментом. С помощью виртуальной кисти придайте щетине нужное направление (Рис.12)

Рис. 12. Выравнивание положения щетины.

31. Чтобы увеличить длину щетины, в области Styling выберите инструмент Scale и примените его. С помощью инструмента Hair Cut, который находится в той же области, обрежьте лишнюю часть щетины. Чтобы закончить работу с инструментом Style Hair, нажмите на кнопку Finish Styling.

32. Выполните Rendering > Effects. В свитке Effects выберите эффект Hair and Fur. В свитке Hair and Fur в области Hair Rendering Options для Hairs выберите свойство geometry. Это улучшит качество щетины при визуализации.

33. Выровняйте щетину с помощью инструмента Select and Move, поместив цилиндры, из которых она выступает, внутрь модели щётки.

34. Сделайте финальную визуализацию модели.

Рис. 13. Результат.

Задание для самостоятельного выполнения: используя полученные знания и модификатор Hair and Fur, создайте цветочный горшок с травой.

Контрольные вопросы:

1. Какие типы вершин существуют в 3ds Max?

2. Перечислите стандартные сплайны 3ds Max (минимум пять).

3. Дайте определение понятию Сегмент в рамках сплайнового моделирования.

4. Какой параметр отвечает за видимость сплайна при визуализации?

5. Зачем при применении позолоченной текстуры использовалось освещение сцены?

6. С помощью какого инструмента к сплайну можно присоединить другие сплайны?

7. Каким образом можно осуществить выбор множества объектов сцены, не прибегая к их выделению в окнах проекций?

8. С помощью какого инструмента в 3ds Max производится выравнивание волос?

9. Каким образом можно предотвратить нежелательные действия над объектом сцены?

10. Что произойдёт, если сдвинуть выделенный объект при нажатой клавише Shift?

PAGE 16

Моделирование с использованием сплайнов