Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная геометрия и графика.doc
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
1.78 Mб
Скачать

Контрольные вопросы и задания

  1. Какие группы моделей используются в программе 3D Studio Max?

  2. В чем заключается метод создания геометрии Loft?

  3. Назовите основные типы булевских операций.

  4. Перечислите основные виды деформаций среды 3D Studio Max.

  5. Какие модификаторы среды 3D Studio Max Вы знаете?

Лабораторная работа №3

Тема: «Имитация динамики в программе 3D Studio Max».

Цель работы: Изучить возможности программы 3D Studio Max по реализации динамических взаимодействий между объектами.

Теоретические сведения

В программе 3D Studio МАХ динамика имитируется путем придания объектам различных физических свойств, например упругости или трения. Для имитации динамики в 3D Studio МАХ служат также средства искривления пространства — Space Warps.

Динамика позволяет автоматизировать создание ключей анимации с помощью расчета позиции, вращения и столкновений объектов, описываемых физическими уравнениями [7, 8].

Определение динамических свойств материалов

При имитации динамики можно использовать любые объекты. С помощью окна Material Editor (Редактор материалов) этим объектам можно присвоить материалы, обладающие динамическими свойствами. Этими свойствами определяется поведение объектов при столкновениях в процессе имитации динамики. Для настройки этих свойств в диалоговом окне Material Editor нужно развернуть панель Dynamics Properties (Динамические свойства). По умолчанию в этой панели устанавливаются параметры, соответствующие свойствам стали.

В поле Bounce Coefficient (Коэффициент упругости) вводится значение коэффициента упругости. Этим значением определяется высота отскока объекта при ударе об пол. По умолчанию это значение равно 1.0, что соответствует абсолютно упругому соударению. Мячик с коэффициентом упругости большим единицы с каждым ударом об пол будет отскакивать выше. «Коэффициент трения покоя» определяется в поле Static Friction (Трение покоя). Этим коэффициентом определяется минимальная сила, которую нужно приложить к объекту, для того чтобы сдвинуть его с места. Чем больше это значение, тем большую силу нужно приложить. В поле Sliding Friction (Трение скольжения) устанавливается коэффициент трения скольжения, которым определяется сила, необходимая для перемещения объекта по поверхности с постоянной скоростью. Например, лед имеет небольшой коэффициент трения скольжения.

Использование динамических искривлений пространства

Некоторые объекты Space Warp разработаны специально для имитации динамики. С их помощью создаются глобальные эффекты, наподобие гравитации, которые применяются ко всем объектам сцены.

Для имитации динамики могут использоваться все объекты Space Warp подкатегорий Particles & Dynamics (Частицы и динамика) и Dynamics Interface (Интерфейс динамики), в частности Gravity (Гравитация), Wind (Ветер), Push (Толкание), Motor (Мотор), Bomb (Бомба), PDynaFlect и UDynaFlect.

Использование средства Dynamics

Имитация динамики настраивается и моделируется с помощью средства Dynamics. Для его активизации выберите вкладку Utilities (Утилиты) и щелкните на кнопке Dynamics. При этом во вкладке Utilities появятся две разворачивающиеся панели.

Использование разворачивающейся панели Dynamics

С помощью разворачивающейся панели можно создавать новые имитации динамики. Для этого нужно выбрать пункт меню New (Новый) и введсти имя имитации в поле Simulation Name (Имя имитации). Кнопка Remove (Удалить) служит для удаления из списка уже существующих имитаций, а при щелчке на кнопке Copy (Копировать) будет создана копия параметров текущей имитации.

Для того чтобы указать, какие объекты должны учитываться при динамических расчетах, нажмите на кнопку Edit Object List (Редактирование списка объектов). Появится одноименное диалоговое окно. В этом окне есть два списка: Objects in the SCENE (Объекты в сцене) и Objects in the SIMULATION (Объекты в имитации). Выделите нужные объекты в левом списке и щелкните на кнопке со стрелкой вправо. Выделенные объекты переместятся в правый список. Аналогичные диалоговые окна используются для выбора эффектов и объектов, участвующих в столкновениях. В диалоговом окне Edit Object List можно создавать группы выделений Selection Set. Выбрать предопределенную группу объектов можно из раскрывающегося списка Selection Sets. Для того чтобы отобразить или выделить поддерево, установите соответственно флажок Display Subtree (Отобразить поддерево) или Select Subtree (Выделить поддерево). Чтобы в именах объектов учитывался регистр, установите флажок Case Sensitive (Учитывать регистр). После выбора всех нужных объектов закройте диалоговое окно, щелкнув на кнопке ОК.

Свойства отдельных объектов, участвующих в имитации динамики, определяются в диалоговом окне Edit Object (Редактирование объекта). Чтобы отобразить это окно, щелкните на кнопке Edit Object.

Для выделения в окнах проекций всех определенных в окне Edit Object List объектов, являющихся частью имитации, щелкните на кнопке Select Objects in Sim (Выделить объекты, участвующие в имитации).

Динамические эффекты можно назначить каждому объекту отдельно в диалоговом окне Edit Object. Для того чтобы назначить всем объектам одни и те же эффекты, установите в разворачивающейся панели Dynamics переключатель Global Effects (Глобальные эффекты) и щелкните на кнопке Assign Global Effects (Назначить глобальные эффекты). Появится диалоговое окно Assign Global Effects. Выделите в левом списке этого окна все требуемые искривления пространства и щелкните на кнопке со стрелкой вправо. Закройте окно Assign Global Effects, щелкнув на кнопке ОК.

Подобно тому, как назначаются эффекты, выбираются столкновения объектов. Столкновения можно задавать как каждому объекту в отдельности, так и глобально. Чтобы назначить глобальные столкновения, щелкните на кнопке Assign Global Collisions (Назначить глобальные столкновения) Появится диалоговое окно Assign Global Collisions. В левом списке этого окна выделите все объекты, участвующие в столкновениях, и щелкните на кнопке со стрелкой вправо. Остальным объектам могут быть назначены другие динамические эффекты, однако при столкновениях объекты будут проходить сквозь них.

В нижней части разворачивающейся панели Dynamics находится кнопка Solve (Решить), при щелчке на которой создаются ключи анимации. Для того чтобы после расчета имитации соответственно обновлялись окна проекций, установите флажок Update Display w/Solve (Обновлять экран с решением).

Использование разворачивающейся панели Timing & Simulation

В разворачивающейся панели Timing & Simulation выбирается отрезок анимации, в котором будет имитироваться динамика. В поле Calc Intervals Per Frame (Количество вычислений за один кадр) вводится число вычислений для каждого кадра. Это значение может лежать в пределах от 1 до 160. Чем оно больше, тем дольше производятся расчеты.

В поле Keys Every N Frames (Ключ каждые N кадров) определяется частота создания ключей анимации. Например, если в это поле ввести 2, то ключи будут создаваться через один кадр. С помощью поля Time Scale (Масштаб времени) можно ускорить или замедлить имитацию. Значению 1 соответствует нормальная скорость анимации, значения от 0,1 до 1 замедляют анимацию, а от: 1 до 100— ускоряют. Этим параметром можно воспользоваться для создания замедленной анимации с имитацией динамики.

Для того чтобы ограничить движение объектов с помощью системы обратной кинематики, установите флажки IK Joint Limits (Совместные границы обратной кинематики) и IK Joint Damping (Совместная амортизация обратной кинематики).

Редактирование объектов имитации

В левом верхнем углу диалогового окна Edit Object расположен раскрывающийся список Object (Объект), в котором перечислены все объекты имитации. Из этого списка можно выбрать объект, который впоследствии будет редактироваться.

В группе Dynamic Controls (Динамические элементы управления) расположены два флажка: Use Initial State (Использовать начальное состояние) и This Object is Unyielding (Этот объект неподвижен). Если флажок Use Initial State установлен, то при вычислениях будет учитываться скорость объекта в начальный момент времени. Если снять этот флажок, то в начальный момент времени объект будет считаться неподвижным, а все существующие ключи анимации при вычислениях будут перезаписаны. Флажок This Object is Unyielding устанавливается для того, чтобы объект не перемещался при столкновениях.

При щелчке на кнопке Move Pivot to Centroid (Переместить опорную точку в центр масс) опорная точка объекта перемещается в его центр масс. Перемещение опорной точки в центр масс ускоряет вычисления, однако при этом изменяется местоположение других объектов, связанных с этой опорной точкой.

Для того чтобы сохранить все параметры объекта, установленные в окне Edit Object, в группе Load/Save Parameter Sets (Загрузить/Сохранить набор параметров) введите имя набора в поле Set Name (Имя набора) и щелкните на кнопке Save. Этот набор можно будет загрузить позже и применить к другому объекту. Если нескольким объектам необходимо установить одинаковые динамические параметры, использование наборов параметров существенно сэкономит время. Для того чтобы загрузить определенный набор, выделите его в списке Available Parameter Sets (Имеющиеся наборы параметров) и щелкните на кнопке Load.

Каждому объекту можно назначить различные эффекты, щелкнув на кнопке Assign Object Effects (Назначить эффекты объекту) в группе Assign Effects/Collisions (Назначить эффекты/столкновения). Для того чтобы назначить объекты, с которыми будут происходить соударения щелкните на кнопке Assign Object Collisions. При щелчке на этих кнопках отображаются диалоговые окна, похожие на Assign Global Effects и Assign Global Collisions, в которых можно выбрать нужные эффекты или столкновения.

В группе Material Editor Physical Properties (Физические свойства редактора материалов) можно выбрать те же свойства, что и в окне Material Editor. Так, в поле Bounce вводится коэффициент упругости, в поле Static Friction — коэффициент трения покоя, а в поле Sliding Friction — коэффициент трения скольжения. Любое свойство, установленное в окне Material Editor, можно деактивизировать, установив флажок, расположенный под соответствующим полем. Чтобы присвоить материалу объекта значение какого-либо свойства, щелкните на кнопке, расположенной под соответствующим полем.

В группе Collision Test (Тест столкновения) находятся переключатели Box (Параллелепипед), Cylinder (Цилиндр), Sphere (Сфера) и Mesh (Ячейка), позволяющие установить точность вычислений. Если установлен переключатель Box, вычисления будут производиться быстрее, чем в остальных случаях, поскольку при расчетах будет предполагаться, что объект имеет форму параллелепипеда. Однако полученные в данном случае расчеты столкновений будут не очень точными. Если установить переключатель Mesh, то при расчете столкновений будут использоваться реальные поверхности объектов, однако при этом на вычисления затрачивается больше всего времени.

В группе Physical Properties (Физические свойства) можно выбрать значение плотности, массы и объема. Плотность определяется в поле Density и измеряется в граммах на кубический сантиметр. Масса определяется в поле Mass и измеряется в килограммах. Объем объекта задается в поле Volume и измеряется в кубических сантиметрах. Поскольку эти значения взаимосвязаны, то для модификации, например, объема, независимо от массы и плотности, установите флажок Override Automatic Volume (He использовать автоматический объем).

Переключатели Vertices (Вершины), Surface (Поверхность), Bounding Box (Описанный параллелепипед), Bounding Cylinder (Описанный цилиндр), Bounding Sphere (Описанная сфера), Mesh Solid (Тело из ячеек) подгруппы Calculate Properties Using (Вычислять свойства с помощью) позволяют выбрать способ, а значит, и точность вычисления значений свойств объекта. При установке переключателей вокруг объекта описывается простая фигура, что упрощает вычисления. Выбор переключателя Mesh Solid существенно увеличивает время вычислений и к тому же активизирует автоматическое разрешение. Установив флажок Override Automatic Resolution (Не использовать автоматическое разрешение), его можно отключить. В этом случае в поле Grid (Сетка) можно выбрать размер ячеек в сантиметрах.

Пример: Сцена «Боулинг»

Для выполнения динамической имитации игры в боулинг выполните ряд действий.

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

2. Активизируйте вкладку Create и щелкните на кнопке Space Warps. Из раскрывающегося списка выберите элемент Partides & Dynamics, щелкните на кнопке Gravity и создайте в окне проекции объект Gravity. Расположите этот объект за шаром и нацельте его на шар. В разворачивающейся панели Parameters введите в поле Strength (Сила) значение 10.

3. Активизируйте вкладку Utilities и щелкните на кнопке Dynamics. В разворачивающейся панели Dynamics щелкните на кнопке New и введите в поле Simulation Name имя Bowling. Затем щелкните на кнопке Edit Object List, выделите в левом списке окна Edit Object List все объекты и щелкните на кнопке со стрелкой вправо. Щелкните на кнопке ОК.

4. В группе Effects установите переключатель Effects by Object. Щелкните на кнопке Edit Object и выберите элемент Sphere из раскрывающегося списка OBJECT, расположенного в левом верхнем углу диалогового окна Edit Object. Затем щелкните на кнопке Assign Object Effects в левом списке диалогового окна Assign Object Effects, дважды щелкните на элементе Gravity для того, чтобы переместить его в правый список, и закройте это окно, щелкнув на кнопке ОК. Выберите из раскрывающегося списка OBJECT объект Box, использующийся в качестве дорожки, установите флажок This Object is …. и щелкните на кнопке ОК.

5. В группе Collisions установите переключатель Global Collisions и щелкните на кнопке Assign Global Collisions. В левом списке диалогового окна Assign Global Collisions выделите все объекты и щелкните на кнопке со стрелкой вправо. Затем щелкните на кнопке ОК.

6. В разворачивающейся панели Timing & Simulation введите в поле End Time значение 40. Затем установите флажок Update Display w/Solve и щелкните на кнопке Solve. При этом кадры имитации будут отображаться в окнах проекции. По завершении просчета щелкните на кнопке Play Animation для того, чтобы просмотреть имитацию.

Задание к лабораторной работе

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

Варианты заданий

1. Создать динамическую имитацию игры в «Боулинг».

2. Создать динамическую имитацию игры в «Бильярд». Для этого необходимо разместить треугольником на «столе» шары и один шар на некотором расстоянии от остальных. Разбить пирамиду дополнительным шаром.

3. Создать динамическую имитацию мяча, прыгающего по ступенькам. Для этого необходимо создать несколько ступенек (объектов Box, расположенных по принципу лестницы), левее и выше верхней ступеньки создать шар, от шара провести горизонтальную линию (вкладка Create/Shapes/Line), сделать эту линию траекторией движения (выделить шар, вкладка Motion/Trajectories/Convert From, выделить линию), создать объект Gravity в конце первой ступени.

4. Создать динамическую имитацию столкновения трёх шаров, движущихся навстречу друг другу.

5. Создать динамическую имитацию игры «Городки».

6. Создать динамическую имитацию сбивания преград шаром.

Требования к отчету

Отчет по лабораторной работе должен содержать:

1. Цель работы, вариант задания, краткое описание проделанной работы.

2. Ответы на контрольные вопросы.

3. Выводы по проделанной работе.