Уроки: 3ds Max

Знакомство с PhysX

Приветствую всех любителей 3D графики.
В данном уроке я хочу рассказать и показать вам возможности такого замечательного плагина как PhysX, разработанный компанией NVIDIA, которая в свою очередь специализируется на производстве графических чипов (GPU).

ЧАСЬ ПЕРВАЯ «ТЕОРИЯ»

Что же такое технология NVIDIA PhysX?
PhysX – это мощный физический движок, обеспечивающий реалистичную физику в режиме реального времени, число использующих PhysX разработчиков в самых разных областях превосходит 10000. Технология PhysX оптимизирована под аппаратное ускорение посредством процессоров, поддерживающих высокий уровень параллелизации вычислений. Технология PhysX очень широко распространена в современных видео играх.

Краткий обзор плагина PhysX for 3ds max.

NVIDIA PhysX - это плагин к программе: Autodesk 3ds Max, Autodesk Maya, и Autodesk Softimage.
Он позволяет пользователям этих приложений легко создавать и управлять моделированием физики. Данный плагин поддерживает широкий диапазон особенностей, таких как:
Твердые тела
Спецификация ограничения
Ткань
Жидкости
Мягкие тела
Области силы

Скачать его можно на официальном сайте или по моей ссылке. Распространяется он совершенно бесплатно!
После установки плагина, интерфейс управления PhysX можно найти во вкладке "Utilities".

PhysX состоит из трех главных компонентов:

  • PhysX Control Panel (Панель управления PhysX) - Обеспечивает доступ ко всем главным функциональным возможностям физики. Мы будете проводить большую часть своего времени именно здесь.
  • Geometry Tools (Инструменты Геометрии) - Параметры настройки различных уровней подразделения.
  • PhysX Parameters (Параметры PhysX) - Охватывает общие параметры физики, которые распространены через моделирования физики (например, сила тяжести).

[Image]

Откройте PhysX Control Panel.
В данном свитке находятся основные инструменты для работы с симуляцией физики. Первое что мы видим так это четыре кнопки расположенных друг напротив друга, эти кнопки предназначены для Добавления (Add), и Удаления (Remove) объектов симуляции физики. Не много позже мы познакомимся с ними и не только непосредственно на практике, т. е. на конкретных примерах. Так сказать от теории перейдём к практике…

Первая кнопка Add All Phys (Добавляет всё в Физику) - добавляет все объекты в симуляцию физики.
Вторая кнопка, что расположена ниже под первой Add Selected (Добавить выделенное) - добавляет выделенные объекты в симуляцию физики.
Следующая кнопка это Remove All (Удалить все) - удаляет все объекты из симуляции физики.
Кнопка Remove Sel. (Удалить выделенное) - удаляет выделенные объекты из симуляции физики.
Следующая кнопка, которой мы будем очень часто пользоваться это кнопка Continuous - она запускает процесс симуляции физики над объектами, или делает паузу в прогрессе симуляции физики. То есть что, то вроде кнопки СТАРТ.
Кнопка Step (Шаг) – служит для записи анимации.
Ну и кнопка Reset (сбросить) - сбрасывает прогресс симуляции физики.
Ну и последняя кнопка в данном разделе, она расположена в самом низу свитка. Make Physical/Edit (Сделать Физическим / Редактировать) – здесь находятся обширные настройки физических параметров выделенного объекта.
Также здесь находятся настройки Ткани, Твёрдых тел, Мягких тел, жидкости и т. д.
Всё выше описанные кнопки вы можете видеть на картинке ниже…

[Image]

Так с теорией вроде бы всё. Теперь как я и обещал мы перейдём к практике.
И так начнём!

 

ЧАСТЬ ВТОРАЯ «ПРАКТИКА»

«ФИЗИКА ТКАНИ»

Начнем мы с простого примера, где будем симулировать физику «надутой ткани». Для начала в окне проекции TOP построим ровную поверхность, это можно сделать либо Стандартным примитивом Plane, либо Box. Также нам нужно построить Сферу (Sphere), в данном случае Сфера будет имитировать «надутую ткань», т. е. своего рода будет являться неким воздушным шаром, а наша ровная поверхность будет служить опорой соударения сферы об поверхность.

Стоит, отметить то что, чем плотнее будет сетка объекта, в нашем случае Сферы, тем более реалистичным будет результат в итоге.

[Image]

Теперь нам необходимо настроить всё это.

Выделите Сферу и перейдите на вкладку Utilities, после чего в самом низу вы увидите три кнопки, нажмите на кнопку PhysX Control Panel (Панель управления PhysX). После чего откроется один единственный свиток, на дне которого вы найдете кнопку Make Physical/Edit, нажимаем на нее. Идём дальше, в свитке PhysX Control Panel в самом низу, где раньше была кнопка Make Physical/Edit, появился выпадающий список, здесь-то и находятся и ткань и коллекция твердых тел, и коллекция мягких тел ну и т.д. Но нам надо выбрать ткань (Cloth). После того как вы это сделаете внизу появится свиток Cloth Properties. Это свиток с настройками ткани. Смотрите на картинку ниже.

[Image]

В данном свитке находятся самые различные параметры, которые свойственны для ткани, это и Density (Плотность); Thickness (Толщина); Friction (Трение); Gravity (Сила тяжести); Pressure (Давление), и многое другое. Таким образом, ткани можно придать различные физические свойства.

Ну что попробуем настроить?

В самом начале данного свитка нам надо поставить галочки напротив Pressure, это, как известно у нас Давление, давление внутри сферы. Давление помогает держать некую форму.

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

И последнюю галочку мы ставим возле 2-way coll.

Теперь пришло время настроить саму поверхность. Для этого нам нужно её выделить и в выпадающем списке, где мы выбрали для сферы ткань, выбрать для поверхности следующее Static Rigid Body (Статическое Твердое Тело). Ну и теперь нам только осталось нажать на кнопку Add All Phys. (Добавляет всё в Физику) или выделить сферу и плоскость и нажать на Add Selected (Добавить выделенное), это уже кому как нравится. В общем, нажимаем на любую из кнопок, ждём буквально пару секунд, пока кнопка сама не вернётся в исходное состояние.

Последний шаг, мы нажимаем на кнопку Continuous, и смотрим результат.

[Image]

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

Примечание.
Если вы что, то не поняли, вы можете скачать мой файл со всеми выше описанными настройкам, по этой ссылке.

Продолжим тему с тканью…

«ФИЗИКА РАЗРЫВА ТКАНИ»

И так сейчас мы с вами сделаем модель, где при падении, на ткань какого либо объекта она будет реалистично рваться.

Приступим.
Для начала построим Plane, примерно размером 200х200, размер здесь в принципе не имеет значение, и числом сегментов задайте 30х30 (Опять-таки, чем плотнее будет сетка, тем более реалистичным будет разрыв и поведение ткани).
Plane - будет выполнять роль ткани.

[Image]

Далее необходимо построить четыре одинаковых БОКСА (Box), и разместить их по периметру всего Plane, при этом БОКСЫ должны немного заходить в ткань (Plane).

Для чего же они нужны нам, спросите вы.
Ответ: Боксы будут выполнять роль держателей ткани, чтобы сама ткань не провалилась в бесконечную бездну макса при симуляции физики ткани :-)

[Image]

Теперь над всем этим сверху посредине разместим не большую Сферу, она будет падать на ткань и при этом пробивать её насквозь, ну это конечно еще как настроить.
Можно настроить, так что Сфера будет прыгать как на батуте, т.е. сделать ткань более эластичной.

Приступим к настройке.
Выделите Сферу, и перейдите в PhysX Control Panel (Панель управления PhysX), далее в низу открывшегося свитка нажимаем на Make Physical/Edit, и из выпадающего списка выбираем Dynamic RigidBody (Динамическое Твердое Тело).
Во втором свитке RigidBody Properties, есть значение с указанием Mass (массы) объекта, задайте значение примерно 100.

С настройками сферы закончили, теперь перейдём к настройке четырёх Боксов.
Также выделяем все четыре Бокса и также переходим в PhysX Control Panel (Панель управления PhysX), а там в свою очередь нажимаем на Make Physical/Edit.
И из списка выбираем Kinematic RigidBody (Кинематическое Твердое Тело).
Массу также задаем 100, масса влияет, в данном случае на то с какой силой тяжести будет придавлена ткань по краям, если массу сделать на много меньше то ткань слетит.

Ну, последнее что нам осталось так это настроить саму ткань.
Выделяем её и из списка выбираем Cloth (Ткань).
В появившемся свитке Cloth Properties установите галочки напротив 2-way coll. и Tearable – это значение открывает, параметр Tear factor он находится в нижней части данного свитка, в общем, это значение позволяет сделать ткань эластичной или мене эластичной.
С этим значением я советую вам поэкспериментировать.
Ну а пока в целях урока задайте это значение равным 1,01.
Также нужно задать значение Collision Resp (Столкновение) равным 1.
Да и напоследок не забудьте поставить галочку напротив Auto-attach to shapes, в свитке Cloth Properties, это очень важно, а иначе ткань рассыпается на полигоны и будет летать в просторах Макса.

Итак, нажимаем на кнопку Add All Phys. а потом на кнопку Continuous. И смотрим результат.

Так же вы можете скачать видео финального результат по этой ссылке. Финальную сцену можно скачать здесь.

[Image]

Вот ещё один пример, где полоски ткани реагируют на прохождение объекта через них. В общем, с тканью можно фантазировать и экспериментировать, так как вам захочется.

[Image]

На этом с физикой ткани мы закончим, и перейдём дальше, а дальше будет не менее интересно…

«ФИЗИКА ДЕФОРМАЦИИ ТВЁРДЫХ ТЕЛ»

В данной части урока, которая будет описана ниже, мы попробуем смоделировать физику деформации твёрдого тела, т.е. при воздействии одного объекта на другой, последний в свою очередь будет деформироваться, проще говоря, на нём будут вмятины.

Приступим.

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

Далее нам надо сделать объект, который впоследствии будет деформироваться. У меня этим самым объектом будет металлическая бочка, её вы можете видеть на картинке ниже. Как делать, её я объяснять не буду, ибо в цели данного урока это не входит. Вы же можете попытаться смоделировать этот простейший объект своими усилиями либо построить просто цилиндр или сферу либо что-то еще, это в принципе не так важно, что будет деформироваться. Так же как и в предыдущих примерах, плотность сетки положительно влияет в данном случае на реалистичность деформации. Так, с этим мы разобрались. Пойдём дальше…

Осталось нам только сверху над бочкой поместить объект, который будет являться причиной деформации, а именно его вес. Для этой цели можно выбрать Сферу или что-то ещё.

[Image]

Вот как это должно всё примерно выглядеть.

[Image]

Перейдём к настройкам.
И первым что мы настроим это…. будет бочка.
Выделяем её и идём уже по знакомому нам не раз пути PhysX Control Panel (Панель управления PhysX), там нажимаем на Make Physical/Edit, и из списка выбираем Metal Cloth, после того как мы выберем это внизу нам откроется не большой свиток, где совсем не много настроек.

С этими настройками также лучше всего поэкспериментировать. Ведь именно так вы лучше поймете, что к чему, нежели просто вбивая значения с данного примера.
Но всё равно я покажу, что мы настраиваем.

Для начала задайте значение Sphere Number – это значение указывает, на то куда будет приходиться удар и где возникнет деформация. Если поставить значение равный 1 то деформация будет одна, если поставить, к примеру, значение равным 3 то деформация будет совсем другая, т.е. уже не в том месте что было при значение 1. Это уже кому как понравится, я же поставил значение 6.

Следующее что надо настроить это Core Mass (Основная Масса) – это значение также лучше подбирать, от него тоже зависит конечный результат.
Моё значение равно 45.

Ну и последнее что мы настроим это Impulse Thresh – на деформацию это значение в принципе не влияет. От него зависит, как бочка поведет себя после деформации.
Если значение поставить равным 0 то бочка после удара лишь немного сдвинется в сторону, если же задать более высокое значение, то бочка отлетит подальше.
Моё значение равно 70.

С настройкой бочки мы, наконец, закончили, теперь настроим сферу.

Нажимаем на кнопку Make Physical/Edit, и из списка выбираем Dynamic RigidBody (Динамическое Твердое Тело). Для неё нам надо только указать массу Mass, зададим это значение побольше, где то 1000.
И после чего переходим к настройкам поверхности.

Выделяем её и из списка выбираем Static Rigid Body (Статическое Твердое Тело). Здесь нам настраивать не чего не надо.
Жмём на кнопку Add All Phsy. и потом на Continuous.

И после чего наслаждаемся проделанной вами работой.

[Image]

Видео вы можете скачать здесь, а финальный файл урока здесь.

Следующее в чём мы будем разбираться так это с Мягкими телами.

«ФИЗИКА МЯГКИХ ТЕЛ»

Для начала построим ровную поверхность, где будет в последствие раздавлено мягкое тело.
После чего сделаем само мягкое тело. Для примера я выбрал всё туже Cферу и расположил её чуть выше поверхности, которую мы построили раньше.
И теперь нам осталось только построить объект, который раздавит мягкое тело (сфера), под тяжестью своего веса, для этого я выбрал Бокс (Box).
Расположить его надо над всем тем, что мы сделали ранее.
Cмотрите на картинку ниже.

[Image]

Приступим к настройке.
Начнём с ровной поверхности, выделите её и из выпадающего списка выбираем Static Rigid Body (Статическое Твердое Тело).

Теперь настроем сферу, т.е. сделаем из неё мягкое тело, но перед этим её надо немного преобразовать, без этого не как не обойтись.
В общем, выделяем сферу и нажимаем на кнопку Geometry Tools (Инструменты Геометрии), она расположена сразу под кнопкой PhysX Control Panel (Панель управления PhysX), после чего задаём значение Subdivision lvl примерно 20, а потом нажимаем здесь же на кнопку Build Mesh.
Что мы видим?
Геометрия сферы изменилась.
После этого нажмите клавишу Delete на своей клавиатуре, что бы удалить исходную сферу.

На что же влияет значение Subdivision lvl?
Ответ простой. Чем больше вы укажете это значение, тем из большего числа элементов (треугольников) она будет состоять.

Ну а теперь сделаем её мягким телом.
Нажимаем на кнопку Make Physical/Edit, и из списка выбираем SoftBody (мягкое тело), но перед этим не забудьте выделить нашу не много измененную сферу.
Все настройки оставляем как есть.

Выделяем последний объект, это Бокс (box) и из списка выбираем Dynamic RigidBody (Динамическое Твердое Тело).
Массу задаем примерно 5.

После чего добавляем всё в физику нажатием кнопки Add All Phys. а потом на кнопку Continuous.

[Image]

Видео вы можете скачать тут, а финальный файл урока тут.

Не много отвлечемся от темы :-)
Как вы думаете, почему у этого кролика такой не радостный вид??? Я бы даже сказал , что он сильно нервничает!

[Image]

Если вы сдаётесь, то я расскажу вам…
Всё дело в том что кролик решил стать добровольцем в эксперименте по SoftBody т.е. по мягким телам, а как известно кролики у нас очень мягкие существа.
А почему он тогда кричит, спросите вы?
Просто кролик не ожидал, что на него кинут такой большой ящик :)))

P.S. ВОВРЕМЯ СОЗДАНИЯ ДАННОГО УРОКА НЕ ОДНОГО КРОЛИКА НЕ ПОСТРАДАЛО…

И последнее пример мой будет о Динамики твёрдых тел.

«ФИЗИКА ТВЁРДЫХ ТЕЛ В ДИНАМИКЕ»

Начнем.
А начнем мы с построения такого вот нестандартного шкафа.
Шкаф состоит из нескольких полок, которые не много наклонены.
Сзади и спереди шкафа расположены Plane, они выполняют роль стекал.

[Image]

Со шкафом разобрались, переходим дальше, а дальше нам надо сделать несколько шариков различного размера, можно сделать их и одного размера, но интересно будет, когда они всё-таки разные будут.
После чего их нужно расположить сверху в хаотическом порядке. Это вы можете видеть на картинке ниже.
Как вы, наверное, уже догадались, шары будут катиться вниз по полкам.

[Image]

Теперь будем настраивать.
Выделите все шары и из списка выберите Dynamic RigidBody (Динамическое Твердое Тело).
После чего нужно выделять по одному шару и задавать им разную массу.
Осталось только выделить все части шкафа, шары не трогаем, и из выпадающего списка выбрать Static Rigid Body (Статическое Твердое Тело).

Всё что нам осталось добавить все объекты в симуляцию физики и запустить сам процесс.

[Image]

Ну и как всегда видео и файл прилагается.

На этом мой урок про PhysX окончен…

В заключение хочу сказать. Возможности PhysX намного больше и обширны, и со временем, они будут только расти, я же рассказал вам лишь о не которых из них.
На мой взгляд, я выбрал и рассказал вам о наиболее интересных возможностях PhysX…

[Image]

Давыдов Артём (Альтаир)

85981 Автор:
Актуальность: 637
Качество: 599
Суммарный балл: 1236
Выбор Публики
Голосов: 124 оценки

Отзывы посетителей:

2 3 4 5 | След.
аватар
 
Сhin@man 7 0
Цитирую Artin Strouke:


ну ващет рэй фаэр работает на физиксе...это просто оболочка...плюс дробление по ворому
аватар
 
Artin Strouke 1 0
Цитирую Александр Пигусов:

Цитирую Александр Пигусов:


в новом максе PhysX инструменты находятся уже в строке команд, где файл, кустомизе, и прочие основные команды.
Всё до воли понятно, даже там есть ХЕЛП с картинками и до воли полезен, но я сам лично не разобрался как сделать деформацию предмета, как в данном уроке делается с бочкой или синим шариком.

И по сравнению с рей фаер, не ясно, можно ли в Физиксе просчитывать симуляцию с учетом уже готовой анимации?
аватар
 
Не чего понять не могу. На скрине написано версия 2.8.1 , а по ссылке вообще первая. И кто может подсказать ну нету у меня в утилитах такой вкладки все обыскал, думал места не хватает залез в настройки, но и там нету есть только PhysX Debug Visualizer и все, что делать то где его найти? http://spaces.ru/pictures/?sid=&comment=43561707
аватар
 
Кашин Сергей 1 0
ВАХ! Наконец-то появилось что-то, альтернативное тупому реактору!! Автору РЕСПЕКТ!!!!Спасибо, дружище! Напиши что-нибудь новое по этому плагину. Все будут тебе очень благодарны!
аватар
 
Андрей Прохорцев 19 0
[smile=хороший урок) но плагин как-то касячит чуток)
аватар
 
DAN SEA 7 0
Всем приведы...Если кто знает и юзает Nvidia PhysX SDK 2.8.1- подскажите что бы это значило..Итак...рву ткань...художественно рву-кидая на нее разные предметы сверху...реактор для этого не пользую-вместо него пользую более производительный движок Nvidia PhysX. Но есть некоторые глюки..А именно..есть ткань. И есть импортированная модель в формате 3ds -скажем голова человека:-)..я ее кидаю на ткань- и она при симуляции начинает движение не с того места- куда я ее перетащил -а с того места "по умолчанию" -где она появилась в сцене при импортировании! Пробовал разное- конвертирование, копирование и т.д.-ни чего не помогает....как с этим боротся? И еще(частный случай вышесказанного)- голова появилась скажем лежа на боку..я ее развернул, разместил над тканью-после чего все добавил в физику..а вот хрен! движение она начнет с места импортирования и в позе- в какой была по умолчанию в самом начале!...всю голову сломал...
аватар
 
WaTKinS 2 0
Кто-нибудь может дать нормальную ссылку на Nvidia Physx для Макса 2009 32 битного? А то я заколебался ждать 15 минут в Deposit-е(да еще если дожидаюсь, то типа "ПО проверяется бла-бла-бла"), а на оф. сайте еще не зареган т.е еще проверяют.
аватар
 
WaTKinS 2 0
Совместим с ATI AGEIA
аватар
 
telemix 23 0
для 2010
---
http://developer.nvidia.com/object/physx_dcc_plugins.html
аватар
 
Andrey3D 6 0
Понял, дурак, не воспользовался поиском
http://www.render.ru/forum/viewtopic.php?post_id=818430
аватар
 
Andrey3D 6 0
А кто в 2010 максе уже с Physx работал? Там интерфей совсем другой и у меня кроме RBodies ничего сделать не получается, объекты совсем не хотят мяться :-(
аватар
 
JaxxTrend 7 0
мде, без ткани в 2010 чет совсем не интересно.... что же такое?
аватар
 
大阪... 1 0
Я уже решил проблему, PhysX SDK сам у меня есть но нужно было ещё установить PhysX System Software
аватар
 
Альтаир 102 0
Цитирую 大阪:
Здраствуйте а у меня возникает такая проблема:

Когда я пытаюсь добавить объект в физику, у меня выскакиевает:

Warning: Fail to create PhysX SDK. PLease check whether you install correct PhysX driver

Что это означает и как с этим бороться

У меня правда установленна и эта версия плагина и 2.0


Либо у вас не установлен не посредственно сам PhysX SDK, либо видеокарта не на чипе NVIDIA
аватар
 
大阪... 1 0
Здраствуйте а у меня возникает такая проблема:

Когда я пытаюсь добавить объект в физику, у меня выскакиевает:

Warning: Fail to create PhysX SDK. PLease check whether you install correct PhysX driver

Что это означает и как с этим бороться

У меня правда установленна и эта версия плагина и 2.0
аватар
 
tarakan 7 0
на те http://rapidshare.com/files/330243063/PhysX_32_bit_3dsMax_Plug-in_V_2.01.msi
аватар
 
evil666 14 0
почему вовремя просчета физики обьекты не соприкасаются с плоскостью (статическое тело), а даже находятся на не малом расстоянии. если в нем как в реакторе нужно выставлять расстояния между обьектами и кол-во соударений. то где это делается?
а в прочем урок полезный, буду ждать приятные новости и новые уроки по этому плагину...
аватар
 
bihoy 1 0
Как сохранить видео в версии v2.01
аватар
 
1Best>|animation... 1 0
Да что-такое, уже второй урок попадается без картинок, мол написано "Image" в прямоугольнике?
аватар
 
esp1001 2 0
Выйти он то вышел, но без fluids и cloth :( Так что пока остаётся игрушкой для развлечений.
2 3 4 5 | След.
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 1023 уникальных посетителей