RealFlow

С появлением механизма plug-in для графических программ подключаемые модули начали плодиться с неимоверной скоростью. Наблюдается определенная тенденция - чем сложнее программа, чем больше возможностей она предлагает, тем больше дополнительных средств для нее создается.

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

Знакомьтесь, RealFlow - программа, использующая системы частиц для просчета динамики формы текучих сред для анимационных последовательностей. Авторы - программисты Gonzalez, Ignacio Vargas и Santiago Redondo, ранее писавшие plug-in-модули для 3D Studio MAX в небезызвестной REM-Infografica, основали собственную компанию Next Limit Research (www.realflow.com) с целью "обеспечить рынок анимационных компьютерных инструментов лучшими программами реалистичной симуляции". Алгоритм расчетов RealFlow использует физические уравнения динамики текучих сред и обладает уникальной особенностью - моделирующие среду частицы способны взаимодействовать между собой. В качестве частиц используются метаболлы - элементы, "слипающиеся" друг с другом на малых расстояниях с образованием оборачивающей поверхности, которая и является конечным результатом расчетов. С помощью RealFlow можно не только обсчитывать динамику газов, жидкостей, текучих сред различной вязкости и эластичных материалов, но и моделировать, например, разбегающиеся галактики. При этом разработчики нашли удачный баланс между реалистичностью получаемых результатов и временем счета при относительно невысоких системных требованиях к аппаратной части компьютера.

Конструктивно система состоит из двух частей: отдельной программы для расчетов динамики, носящей название RealFlow, и вспомогательных модулей для импорта-экспорта данных в сцены LightWave, Softimage, MAYA и 3D Studio MAX. Обобщенная схема работы такова. В одном из вышеперечисленных пакетов моделирования создается сцена, затем необходимые элементы экспортируются в RealFlow (экспортировать можно не только объекты, но и анимации). В RealFlow создается моделирующая система частиц, настраиваются параметры, увязывается ее взаимодействие с импортированным объектом (в RealFlow имеется подсистема расчета столкновений частиц с объектами) и запускается симуляция. Для запуска имеются две кнопки - BUZZ, которая показывает предварительные результаты в режиме реального времени и полезна при отладке параметров среды, и ACTION - для конечных расчетов и записи на диск. Результат представляет собой последовательность файлов, по одному на кадр, содержащих сгенерированную динамику поверхности моделируемой среды. Теперь полученную последовательность можно импортировать обратно в исходную сцену и тонировать анимацию.

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

 

DENSITY - определяет число частиц в единице объема. Этот параметр воздействует на расстояние между частицами в момент рождения. Основное правило - симуляция динамики тем точнее, чем больше в системе частиц. Абсолютный рекорд по числу частиц (по данным сайта разработчиков) составляет 300 000. Счет производился на PC PIII-450 c 256 Мб RAM.

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

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

TEMPERATURE - определяет начальную температуру среды. Использование этого параметра полезно только с газами, необходимо иметь в виду, что температура и давление тесно связаны: при увеличении одного параметра необходимо увеличивать и другой.

EXTERNAL TEMPERA-TURE - внешняя температура. Газы при расширении теряют тепло. Этот параметр определяет перенос энергии, возникающий при распространении газа.

CONDUCTIVITY - удельная теплопроводность среды. Определяет тепловой перенос внутри системы (между частицами).

EXTERNAL CONDUCTI-VITY - перенос тепла между системой и окружением.

VISCOSITY - очень важный параметр. Вязкость определяет величину сил трения между частицами. Большая величина соответствует более вязкому материалу, вроде жидкого цемента, низкие значения соответствуют, например, воде.

FULL VISCOSITY - параметр определяет дополнительную величину вязкости для симуляции пластичных сред и расплавов.

Параметры для эластичных материалов вынесены в отдельный список, поскольку для имитации таких сред используется иной механизм - механизм пружинящей массы.

SPRING - определяет реакцию на изменение длины виртуальной "пружины" относительно нейтральной точки. За нейтральную длину принимается расстояние между частицами в момент создания системы. Большее значение параметра соответствует более жесткой "пружине".

DAMPING - для стабильности эластичной системы "пружина" должна учитывать трение между частицами системы и определять замедление движений при колебании "пружины" до полной остановки.

REPULSION - определяет силу отталкивания при сближении частиц.

ELASTIC LIMIT - (в % от начального расстояния между частицами) предел эластичности, при превышении которого наблюдается остаточная деформация.

FRACTURE LIMIT - (в % от начального расстояния между частицами) определяет порог разрушения материала при деформации.

Помимо внутренних параметров, определяющих поведение системы, имеются силы, оказывающие внешнее влияние. Список RealFlow насчитывает 19 типов внешних сил (присутствующих в программе под общим названием Daemons): гравитация, вихрь, центр отталкивающих сил, сила Кориолиса, magic (морфинг системы к форме заданного объекта), шум, поле сопротивления, поле теплового переноса, замораживание, смерч и другие.

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

В заключение хочу посоветовать скачать с сайта разработчиков небольшие анимашки, например: www.realflow.com/zip/mill3d_hyperflow.mov, www.realflow.com/zip/bigwater1.mov, www.realflow.com/zip/bigwater2.mov или www.realflow.com/zip/magma.zip. Лучше один раз увидеть...

Обзор программы составлен по демонстрационной версии RealFlow в. 1.3 со следующими ограничениями: максимальное число частиц не превышает 5000; максимальное число кадров конечной анимации с просчитанной поверхностью среды не более 25; максимальное число кадров с частицами (без расчета оборачивающей поверхности) - не более 100; отсутствует возможность сохранения/открытия файла рабочей сцены; поддержка многопроцессорных систем отключена.

Игорь СИВАКОВ,
igsiv@mail.ru

Версия для печатиВерсия для печати

Номер: 

13 за 2000 год

Рубрика: 

Графика
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!