Закрыть
Форум Mirror's Edge
  • Страница 1 из 1
  • 1
Модератор форума: Art  
Форум » Всё обо всём » 3D Графика » [Урок] Знакомство с PhysX by Альтаир (Изучение плагина PhysX for 3ds max)
[Урок] Знакомство с PhysX by Альтаир
Администраторы
Сообщений: 2077
Дата: Суббота, 27.03.2010, 09:10 / Сообщение № 1 

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

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

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

Краткий обзор плагина 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) - Охватывает общие параметры физики, которые распространены через моделирования физики (например, сила тяжести).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Продолжим тему с тканью…
    «ФИЗИКА РАЗРЫВА ТКАНИ»

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

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

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

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

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

    Приступим к настройке.
    Выделите Сферу, и перейдите в 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. И смотрим результат.

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

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

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

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

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

    Приступим.

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

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

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

    Перейдём к настройкам.
    И первым что мы настроим это…. будет бочка.
    Выделяем её и идём уже по знакомому нам не раз пути 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.

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

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

    Следующее в чём мы будем разбираться так это с Мягкими телами.
    «ФИЗИКА МЯГКИХ ТЕЛ»

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

    Приступим к настройке.
    Начнём с ровной поверхности, выделите её и из выпадающего списка выбираем 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.

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

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

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

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

    И последнее пример мой будет о Динамики твёрдых тел.
    «ФИЗИКА ТВЁРДЫХ ТЕЛ В ДИНАМИКЕ»

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

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

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

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

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

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

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

    КОНЕЦ
  • Пользователи
    Сообщений: 129
    Дата: Пятница, 06.08.2010, 01:58 / Сообщение № 2 
    Альтаир, Physix - это вещь очень красивая! good2


    DVJ BAZUKA – первый профессиональный DVJ в мире, который микширует аудио и видео одновременно.
    Форум » Всё обо всём » 3D Графика » [Урок] Знакомство с PhysX by Альтаир (Изучение плагина PhysX for 3ds max)
    • Страница 1 из 1
    • 1
    Поиск:
    clicking on ".rsvp" adds class "open" on ".overlay" clicking on ".close-overlay" removes class "open" on ".overlay" clicking on ".rsvp, .overlay-m-open, .overlay-m-open-en, .open-bs-modal" adds class "no-scroll" on "html" clicking on ".close-overlay, .overlay-m-close, .close" removes class "no-scroll" on "html" clicking on ".open-menuprofile" adds class "open-mpro" on ".menumi" clicking on ".close-menuprofile" removes class "open-mpro" on ".menumi" clicking on ".overlay-m-open" adds class "overlay-m-visible" on ".overlay-m" clicking on ".overlay-m-close" removes class "overlay-m-visible" on ".overlay-m"
    ME-Чат
    ME-Чат
    0
    Правила форума
    Данные правила действуют на всей конференции. В отдельных разделах и форумах конференции возможно наличие собственных правил, которые уточняют и детализируют правила поведения в них. При этом данные правила остаются обязательными в любом случае.

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

    I. Регистрация пользователей.

    • Регистрируясь на форуме, пользователь соглашается выполнять данные Правила.
    • Для регистрации на форуме пользователь должен предоставить действующий адрес электронной почты. Мы гарантируем конфиденциальность указанной информации.
    • Выбор имени пользователя (nickname) является вашим исключительным правом. Администрация оставляет за собой право принять меры к прекращению использования nickname, если его использование нарушает общепринятые моральные и этические нормы или является оскорбительным для других пользователей форума. Запрещена регистрация nickname, схожих с уже существующими до степени, которые могут ввести в заблуждение других пользователей форума.
    • Запрещена неоднократная регистрация одним пользователем, вне зависимости от целей, с которыми такая регистрация проводится. Данное нарушение является крайне серьезным и ведет к блокированию всех учетных записей.
    • Если вы не проявляете активность на форуме в течение длительного времени, ваша учетная запись может быть удалена.

    II. Порядок поведения на форуме.

    • Общение на форуме строится на принципах общепринятой морали и сетевого этикета.
    • Строго запрещено использование нецензурных слов, брани, оскорбительных выражений, в независимости от того, в каком виде и кому они были адресованы. В том числе при подмене букв символами. Участники должны соблюдать уважительную форму общения.
    • Категорически запрещается любая реклама, в том числе реклама интернет-проектов (за исключением случаев предварительного согласования с администрацией).
    • Ваша подпись на форуме не может быть длиннее 2-ух строк. К ней предъявляются те же требования, что и к сообщениям на форуме.

    III. Публикация сообщений.

    • Название темы должно быть информативным, максимально четко отражая смысл проблемы.
    • Перед созданием новой темы убедитесь, что вы создаете ее в форуме соответствующей тематики, а также постарайтесь убедиться в том, что данный вопрос не обсуждался ранее.
    • Запрещено создание одинаковых тем в разных разделах и помещение одинаковых по смыслу сообщений в разные темы.
    • Заниматься оверпостингом (Оверпостинг - размещение пользователем за короткий промежуток времени в одной и той же теме нескольких сообщений подряд) и размножением офф-топиков (Оффтопик - сообщение, выходящее за рамки заранее установленной темы общения.).

    IV. Отношения между пользователями и администрацией.

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

    Участник форума, несогласный с действиями Модератора, может высказать своё несогласие Модератору по почте или в личном сообщении. Если от Модератора нет ответа или ответ, по мнению участника, необоснованный, последний вправе переписку с Модератором отправить Администратору. Конечное решение принимает Администратор. Это решение является окончательным и необсуждаемым.

    Администрация оставляет за собой право изменять правила с последующим уведомлением об этом пользователей форума. Все изменения и новации на форуме производятся с учетом мнений и интересов пользователей.