Поиск
3D
 Имитация воды модулем reactor
1
2 3 4 5

Имитация воды выполняется в модуле reactor ( реактор ) без помощи коллекций и модификаторов. Для этой цели используется объемная деформация Water ( Вода ), которая применяется к примитиву Plane ( Плоскость ). Собственно, моделируется только поверхность воды. Тем не менее, на жесткое тело, погруженное в такую «воду», действует выталкивающая сила, благодаря которой поведение тела в воде выглядит вполне реалистично: тела могут тонуть, плавать на поверхности или находиться во взвешенном состоянии в толще воды.

Чтобы освоить моделирование воды, выполните следующие действия:

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

    Рис. 4.64. Исходный вид трехмерной сцены с моделью бассейна, подготовленной для анимации модулем reactor

  2. Запустите утилиту reactor ( реактор ). Объявите плоскость, изображающую основание сцены, и параллелепипед-бассейн как вогнутые объекты. С этой целью установите для каждого из них переключатель Simulation Geometry ( Моделируемая геометрия ) в свитке Properties ( Свойства ) на панели Utilities ( Утилиты ) в положение Use Mesh ( Использовать сетку ) группы Concave ( Вогнутый объект ). Массы этих объектов оставьте равными нулю.
  3. Очень важно правильно задать массу тел, которые должны падать в воду. С этой целью установите в качестве единиц измерения метры и измерьте объемы этих тел в кубических метрах с помощью утилиты Measure ( Измерить ). Расчет массы выполнить достаточно просто. Один кубический метр воды весит 1000 кг . Так что если умножить объем тела в кубических метрах на 1000, вы получите массу тела, при которой оно будет обладать такой же плотностью, как вода, то есть будет иметь нулевую плавучесть. Тело с нулевой плавучестью может находиться в воде во взвешенном состоянии, не погружаясь и не всплывая. Чтобы тело плавало, необходимо принять его массу меньше, чем объем в кубометрах, помноженный на 1000; чтобы тонуло — больше. В рассматриваемом примере объем прямоугольного блока оказался 1,4 м 3 ; объем шара — 2,44 м 3 . Следовательно, блок массой более 1400 кг будет тонуть в воде, а менее 1400 кг — плавать. Для сферы масса нулевой плавучести составляет 2440 кг . Примем массу блока равной 1600 кг , чтоб он тонул, а массу сферы — 2000 кг , чтобы она плавала.
  4. Создайте объемную деформацию Water ( Вода ). Для этого можно, к примеру, воспользоваться кнопкой  Create Water ( Создать Воду ) панели инструментов reactor ( реактор ). Объемная деформация создается, как обычная плоскость. Щелкните на кнопке Create Water ( Создать Воду ). На панели Create ( Создать ) появится свиток Properties ( Свойства ) с параметрами объемной деформации (рис. 4.65).

    Рис. 4.65. Свиток Properties со средствами настройки объемной деформации Water

Щелкните в одном из углов бассейна и растяните плоскость объемной деформации по диагонали до другого угла. Отпустите кнопку мыши. В качестве настроек всех параметров воды оставьте значения, принятые по умолчанию. Щелкните правой кнопкой мыши, чтобы выключить инструмент Create Water ( Создать Воду ). Поднимите сетку объемной деформации, в центре которой помещается надпись Water ( Вода ), на такой уровень, где должна находиться поверхность воды в бассейне (рис. 4.66).

Рис. 4.66. Окончательный вид трехмерной сцены с моделью бассейна, подготовленной для анимации модулем reactor

  1. Просмотрите анимацию воды в окне предварительного просмотра, щелкнув на кнопке Preview in Window ( Просмотреть в окне ) в свитке Preview & Animation ( Просмотр и анимация ) утилиты reactor ( реактор ). Жесткие тела падают в воду, и, как и предполагалось, брусок тонет, а шар плавает, слегка покачиваясь на волнах. Обратите внимание на то, как реалистично выглядит поверхность воды в окне предварительного просмотра.
  2. Измените массу бруска, установив значение 1200 кг . Для шара уменьшите массу до 500 кг . Снова просмотрите анимацию. Теперь брусок будет плавать, правдоподобно ныряя и раскачиваясь на волнах, а полегчавший шар после падения может даже слегка выпрыгнуть из воды.
  3. Слегка измените настройки свойств воды в свитке Properties ( Свойства ) на панели Modify ( Изменить ). Увеличьте значение параметра Wave Speed ( Скорость волн ) с 1 м/с до 3 м/с. Величину Max Ripple ( Максимальная рябь ) также увеличьте с 1 м до 3 м . Еще раз просмотрите анимацию, обращая внимание на то, как изменился вид волн.

     

  4. Пока вода существует только в окне предварительного просмотра. Объемные деформации не являются визуализируемыми объектами, поэтому при попытке построить изображение сцены, вы не увидите воды. Для имитации поверхности воды, которую можно визуализировать, создайте плоскость, изображающую воду, использовав примитив Plane ( Плоскость ). Подгоните размер и положение плоскости под размер и положение сетки деформации Water ( Вода ). Обязательно увеличьте сегментацию плоскости до 30–40 по каждому измерению. Свяжите плоскость с объемной деформацией с помощью кнопки Bind to Space Warp ( Связать с воздействием ) главной панели инструментов 3 ds max . Для удобства можете выделить плоскость, щелкнуть на кнопке Bind to Space Warp ( Связать с воздействием ), затем нажать клавишу h и выбрать имя деформации Water01 ( Вода01 ) в окне Select Space Warp ( Выбор объемной деформации ).
  5. Создайте материал для воды. Цвет можно выбрать светло-лиловый или зеленовато-синий. Настройте хороший яркий блик, полупрозрачность Opacity ( Непрозрачность )   = 75. В канал Reflection ( Отражение ) можете поместить карту текстуры типа Bitmap ( Растровая карта ) и выбрать в качестве проецируемого изображения какую-нибудь фотографию реальной поверхности воды.
  6. Щелкните на кнопке Create Animation ( Создать анимацию ) свитка Preview & Animation ( Просмотр и анимация ) утилиты reactor ( реактор ), чтобы создать ключи анимации жестких тел и вершин плоскости, имитирующей водную поверхность. После этого можно будет скрыть из вида деформацию Water ( Вода ), воспроизвести анимацию в окнах проекций и выполнить ее визуализацию ( рис . 4.67).

а

б

Рис. 4.67. Визуализированные кадры анимации воды в бассейне до начала падения жестких тел ( а ) и после их падения в воду ( б )

Для моделирования круглого бассейна или бассейна иной формы, отличной от прямоугольной, следует также имитировать воду с помощью плоскости. Затем нужно превратить плоскость в редактируемую сетку, а чтобы края не торчали, выделить нужные вершины сетки с помощью круглой рамки, инвертировать выделение и удалить лишние вершины.

Свиток Properties объемной деформации Water

В свитке Properties ( Свойства ) объемной деформации Water ( Вода ) можно настраивать следующие параметры:

  • Size X (Размер по X), Size Y (Размер по Y) — размеры сетки объемной деформации;
  • Subdivisions  X (Сегментов по X), S ubdivisions  Y (Сегментов по Y) — число сегментов сетки объемной деформации по каждой из координат;
  • Landcsape ( Ландшафт ) — при установке этого флажка оказывается возможным указать с помощью кнопки с надписью < none > ( <нет> ) объект, ограничивающий область действия объемной деформации. Щелкните на кнопке, а затем на объекте геометрической модели сцены, играющем роль емкости для воды. Это может быть как сосуд, в который налита вода, так и ландшафтный объект, изображающий, например, побережье озера. При наличии такого объекта вершины сетки объемной деформации будут анимироваться только до границ касания сетки с объектом. Волны будут отражаться от стенок сосуда или берегов;
  • Wave Speed ( Скорость волн ) — скорость распространения гребней волн по поверхности воды;
  • Min Ripple ( Минимальная рябь ), Max Ripple ( Максимальная рябь ) — пределы изменения высот генерируемых волн;
  • Density ( Плотность ) — коэффициент, задающий плотность воды относительно ее истинного физического значения. Для расчета истинной плотности необходимо данный параметр умножить на 1000 кг/м 3 ;
  • Viscosity ( Вязкость ) — задает степень сопротивления воды внешним возмущениям при формировании волн и сопротивления движению тел в воде;
  • Depth ( Глубина ) — задает глубину воображаемой толщи воды.

Остальные параметры свитка Properties ( Свойства ) объемной деформации Water ( Вода ) полностью аналогичны соответствующим параметрам свитка Properties ( Свойства ) модификатора reactor Cloth ( реактор: Ткань ), рассмотренного в разделе «Имитация тканей модулем reactor».

Среда, 20.06.2018, 14:03
Приветствую Вас Гость
Главная | Регистрация | Вход
Форма входа

Дата
«  Июнь 2018  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930

Copyright MyCorp © 2018
Создать бесплатный сайт с uCoz