3D Engineering

...Лучшее из общего.

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Обязательно увеличьте сегментацию

Михаил Маров

Отрывок из книги:
Реальная анимация и виртуальная реальность (+CD)
Михаил Маров
Издательский дом "Питер", 2005


Имитация воды модулем reactor

Имитация воды выполняется в модуле 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 ( Вода ) можно настраивать следующие параметры:

  • SizeX (Размер поX), SizeY (Размер по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 ( реактор: Ткань ), рассмотренного в разделе .

 

Архив статей

 май   Июнь 2019   июл

ВПВСЧПС
   1
  2  3  4  5  6  7  8
  9101112131415
16171819202122
23242526272829
30 
Julianna Walker Willis Technology

Случайная новость

Алексей Тебеньков

В этом уроке я хочу подробно рассказать, как создать фотореалистичный интерьер при помощи 3d Max и плагин Vray.Этот урок в основном рассчитан на начинающих пользователей, которым несложно будет поэтапно повторить все действия на скриншотах, но возможно опытные пользователи также почерпнут из урока что-нибудь новое.
Чтобы без труда выполнить этот пример необходимы базовые знания по моделированию (примитивы, низкополигональное моделирование), текстурированию. Также я расскажу, как использовать плагин Cloth и модуль Panorama exporter.

СОДЕРЖАНИЕ:

Часть 1: Настройка интерфейса и моделирование.
Часть 2: Текстурирование и материалы.
Часть 3: Освещение.
Часть 4: Рендеринг.

Часть 1: моделирование и настройка интерфейса.

Для начала зайдем в главное меню Customize—Unitssetup. В окошке надо выставить Metric
Масштаб 1 см. Затем нам необходимо выставить шаг сетки в 10 см в Customize—Grid and snaps settings (см. иллюстрации) По этой сетке мы будем строить сплайны, формирующие каркас стен нашей комнаты.
Построение стен: здесь можно выбрать три наиболее распространенных варианта:
1) Самый простой - создать стены из боксов, его не рекомендуется использовать вместе с глобальным освещением, так как в углах могут возникнуть артефакты, также это построение не будет точным.
2) Создать плэйн и выстраивать полигоны по сетке перед экструдированием путем перемещения вершин и полигонов, способ практически не дает артефактов, но он более трудоемок. Его не рекомендуется использовать для создания многокомнатных интерьеров, потому что замучаетесь.
3) На мой взгляд, наиболее рациональным, позволяющим в промышленных объемах создавать точные модели, является способ, основанный на построении сплайнов с последующим экструдированием (вытягиванием). Этим способом мы и создадим наш интерьер.
Для этого мы создадим сплайн и, растягивая сегменты по клеточкам (теперь понятно, почему мы настраивали сетку?) на необходимое расстояние, которое мы подсмотрели в чертеже или измерили рулеткой.


Совет: Удобнее при моделировании в начало координат (перекрестие в центре экрана) ставить один из внутренних углов.

В итоге у вас должен получиться примерно такой план своей комнаты, вот что получилось у меня:

Следующий этап – это экструдирование полученного сплайна на высоту нашей комнаты (в моем случае 280см) параметр Amount сегментов надо установить 3, cap start и cap end надо установить, если планируется рендер разреза.

Затем надо полученный объект преобразовать в полигональную сетку. После чего перейдите на подуровень Vertex и переместите 2 средних ряда вершин как у меня на рисунке.

Следующим шагом будет выделение полигонов рядом с дверью и применение к ним команды Bridge Аналогичным методом создается оконный проем, выделяются полигоны предполагаемого окна с двух сторон, затем применение команды Bridge.

Создание окна:

После этого сделайте скос под небольшим углом внутрь комнаты путем масштабирования 4 вершин.

Важно! Не пользуйтесь для создания проемов и сквозных отверстий булевыми командами, так как они искажают структуру сетки и практически не дают возможности дальше редактировать сеть. Из-за искажений могут появиться проблемы, связанные с расчетом глобального освещения. Поэтому применяйте булевы операции в самом конце редактирования и только в случаях с особо сложной формой отверстий.

Построение пола и потолка:

Пол создаётся обычным плэйном. Для создания потолка придется вновь использовать сплайны.
Постройте сплайн, используя привязки. Для этого надо нажать клавишу «S» или выбрать мышкой кнопки как на рисунке.

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

Выполнив эту операцию, построите аналогичный сплайн снизу. Также создайте окружности инструментом Circle. Примените модификатор extrude с настройками, как и у стен (см. рис. выше) с той лишь разницей, что глубина выдавливания = -20 см. Перекрытие делается так же, как и пол, с помощью плэйна.

Сцену можно загрузить.

Создание рам, окон, плинтусов.

Раму для окна создадим из двух прямоугольников, затем экструдирование, пара фасок командой Chamfer и применение Smooth (не путать с Meshsmooth и turbosmooth) c включенной галочкой Autosmooth и углом порога 46 градусов. Перекладина - box



Плинтус пола и потолка создаются так: создаем сплайн, повторяющий контуры нашей комнаты, делаем копию. То есть один сплайн для потолка другой для пола. Создайте также профиль нашего плинтуса.

Выделяем контур. Затем заходим в compoundobjects и находим loft, после этого жмем кнопку getshape выделяем профиль. Чаще всего могут возникнуть проблемы с лофтингом, например, плинтус смотрит не в ту сторону, заходим на подуровень shape и разворачиваем профиль на 180 гр.

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

Потолочный плинтус создаем отражением нижнего по оси У.



Мебель.
Мебель создадим простую из примитивов, так как это не основная цель урока. Основные этапы создания дивана на рисунках:
диван создан из трех боксов, сняты несколько фасок (chamfer) и применен модификатор smooth с галочкой autosmooth, не meshsmooth! Почему, расскажу ниже.

полки создаются из боксов.

Стол создаём из сплайнов, (нажмите рисунок, чтобы увеличить) Экструдим, делаем фаски, применяем сглаживание. И так все элементы этого стола, (нажмите рисунок, чтобы увеличить).

Сцена на этом этапе здесь (450 Кб)

Полки создаются так же, как и стол.

Сцена с одним источником света в окне для наглядности - рендер (Vray), про его использование см.ниже.


Совет: Старайтесь использовать как можно меньше полигонов в сцене, для этого не используйте meshsmooth ,используйте smooth с галочкой autosmooth, также очень полезен модификатор Multires. Для его использования нажмите generate и впишите процент остающихся полигонов, (как правило, процент от 60 до 100 никак не влияет на качество модели, но уменьшает число полигонов на треть)

СОЗДАНИЕ МЕЛКИХ ОБЪЕКТОВ

Я опишу только способ создания.

далее