Обзор симулятора жидкости RealFlow: невероятные фокусы с водой
07 августа 2015 | Сергей и Марина Бондаренко |
⇡#Интерфейс RealFlow
В центре окна RealFlow — окна проекций, причем навигация в них точно такая же, как и в большинстве пакетов для создания трехмерной графики (например, в том же Autodesk Maya): удерживание клавиши ALT с одновременным нажатием левой кнопки мыши приводит к повороту сцены в окне проекции, ALT и нажатая правая кнопка мыши позволяют приблизить или отдалить сцену и так далее.
Под окнами проекций расположена временная шкала для настройки анимации и кнопки для запуска процесса симуляции. В правой части находится редактор связей. Он представляет собой диаграмму так называемых узлов сцены — компонентов и событий. Когда вы создаете новую сцену или вносите изменения в уже существующий проект, эта диаграмма автоматически изменяется. Кроме того, пользователь может с помощью этой диаграммы самостоятельно настраивать связи и управлять событийной моделью.
Над редактором событий находятся два окна: окно со списком компонентов сцены и окно с параметрами компонента, выбранного в списке. Все элементы интерфейса программы можно располагать по своему усмотрению — они легко перемещаются, аккуратно вписываясь в окно RealFlow и занимая новое место. Панели инструментов также можно редактировать, изменяя наборы инструментов на них. Можно в том числе и создавать собственные панели инструментов.
Для максимального удобства в программе имеется редактор горячих клавиш — любой инструмент или команда могут быть вызваны нажатием одной или нескольких кнопок. Все это очень легко и просто настраивается — так же, как в серьезных 3D-редакторах. Все пользовательские настройки записываются в профили: отдельно можно сохранять расположение элементов окна, отдельно — отредактированные сочетания горячих клавиш.
⇡#Работа с источниками частиц
В любом мощном трехмерном редакторе присутствует инструмент для работы с частицами. Нужно сказать, что этот инструмент очень сильно изменился за короткий промежуток времени. Поначалу пакеты для 3D-моделирования и анимации содержали лишь базовые функции частиц: в сцену можно было добавлять источники частиц с разной геометрией эмиттера, а в настройках этих источников можно было установить параметры испускаемых объектов — форму, скорость, продолжительность жизни и т.д. Однако фантазия специалистов по визуальным эффектам не знала границ, и возникла необходимость появления нового класса частиц — «умных», для которых можно было бы настроить событийную модель, составив ее из цепочки условий для потока. Так появились приложения Thinking Particles, Particle Flow и другие интересные средства для управления частицами. Но все они не заменят RealFlow, которую также можно отнести к категории «умных» частиц. Программа от Next Limit ориентирована на жидкостные эффекты, и в этом ее сильная сторона. Приложение включает в себя массу шаблонов и готовых условий, характерных для сцен, где присутствуют текучие поверхности или потоки.
Самые простые источники частиц находятся на вкладке Liquid Particles. Однако, если вы добавите какой-нибудь источник в сцену, самих частиц вы не увидите. В окне проекции будет схематически отображена геометрия эмиттера, но частицы испускаться не будут, даже если вы нажмете на Play для воспроизведения анимации. В обычных 3D-редакторах частицы летят по умолчанию, стоит только добавить их в проект. Однако RealFlow не просто визуализирует частицы, а решает физическую задачу (пусть даже такую простую, как испускание частиц из одного источника). Поэтому, чтобы увидеть жидкостный поток частиц, нужно нажать на кнопку Simulate, запустив тем самым процесс просчета поведения частиц.
После завершения симуляции шкала анимации изменит свой цвет на желтый — этим цветом программа показывает, какой временной промежуток сцены обработан. Теперь анимацию можно воспроизвести кнопкой Play. После симуляции RealFlow запишет кеш в папки, которые указывались при создании нового проекта.
Обратите внимание, что источник частиц не связан динамически с потоком, отображаемым в окне проекции. В обычном 3D-редакторе вы изменяете положение источника или его параметры, и это тут же сказывается на анимации в окне проекции. В RealFlow изменения видны только после того, как вы проведете очередную симуляцию. Так что, если просто изменить положение источника, в окне RealFlow просчитанный поток частиц останется на месте.
Для обнуления кеша нужно нажать кнопку Reset — и просчитанные частицы исчезнут. Если кеш не обнулить и попробовать заново сделать просчет с какого-то кадра, RealFlow предупредит о том, что данные в кеше будут перезаписаны.
⇡#Типы частиц
Для того чтобы аниматору было проще работать, в программу были включены самые разные источники частиц. По количеству и разнообразию эмиттеров RealFlow может дать фору профессиональному 3D-редактору. В арсенале симулятора жидкостей имеются следующие типы источников:
- Linear — источник с эмиттером-сплайном в виде прямой;
- Spline — источник в виде кривой произвольной формы;
- Cylinder — цилиндрический источник;
- Triangle — источник в виде треугольника;
- Circle — плоский круглый эмиттер;
- Square — квадратный источник;
- Sphere — сферический источник частиц;
- Object — источник частиц, создаваемый на основе геометрии импортированной в сцену модели;
- Fibers — очень необычный источник частиц, позволяющий разместить частицы на «нитях», которые исходят из вершины объекта и располагаются по нормали к поверхности;
- Bitmap — источник частиц, характер испускания которого зависит от маски (черно-белое изображение или секвенция таких изображений);
- Fill Object — использование такого типа эмиттера позволяет окружить поверхность объекта частицами.
Строго говоря, RealFlow является не только симулятором жидкостных эффектов, но еще и средством для имитации любых текучих объектов. Это означает, что область применения данной программы выходит за рамки простого моделирования воды или жидкостных эффектов. Поэтому в настройках каждого источника частиц вы можете найти такой параметр, как тип частиц.
В распоряжении пользователя несколько основных профилей «текучести» частиц:
- Gas — тип частиц для имитации газовых потоков;
- Liquid — вариант частиц для имитации жидкостей;
- Elastics — вариант источника частиц, при котором поток не будет обладать ярко выраженным эффектом «слипания», то есть масса будет подобна резине;
- Dumb — упрощенный тип источника частиц с минимальным набором настроек;
- Script — тип частиц, который можно описать вручную при помощи редактора скриптов и математических формул.
Каждый источник частиц обладает своим набором параметров, причем этот набор изменяется в зависимости от выбранного типа частиц. Так, например, если вы используете в источнике частицы типа Gas, то можете управлять настройкой температуры, а если выбрали для источника вариант Elastics, то на температуру влиять не можете (для данного типа частиц это просто ни к чему), зато можете указывать степень затухания потока с помощью параметра Damping.
Вкладка Liquid-Hybrido также содержит набор источников частиц, и они в корне отличаются от прочих частиц RealFlow тем, что используют алгоритм взаимодействия, отличный от SPH. Называется эта технология Hybrido. Как уже было сказано выше, с ее помощью можно выполнять просчет больших и объемных сцен, таких как, например, водные поверхности. Данная технология включает средства для автоматического создания вторичных всплесков и пены, а также тумана.
⇡#Процедуры в RealFlow
Отдельный тип вспомогательных объектов, которые можно использовать при создании эффектов с жидкостями, – процедуры, или Daemons. Они расположены на одноименной вкладке.
Любую задачу, которую необходимо просчитать в RealFlow, можно разбить на две главные составляющие — источники частиц и условия, которые влияют на эти источники. Вспомогательные объекты, определяющие условия воздействий на частицы в сцене, называются процедурами. Простейшая процедура — сила гравитации. Добавив вспомогательный объект Gravity, вы можете заставить частицы двигаться в направлении поля гравитации. Существует две основных группы Daemons: процедуры силового воздействия и процедуры ограничений. К первой группе относятся те процедуры, которые воздействуют на частицы определенной силой: Wind — процедура имитации ветра, Gravity — сила гравитации, Vortex — вихрь, Coriolis — симуляция сил Кориолиса и так далее. Вторая группа процедур — ограничительная. Они имеют в названии приставку k (от слова kill — убивать) и позволяют избавиться от лишних частиц в сцене.
Эти ограничительные процедуры нужны не только для описания поведения частиц в сцене, но и для рационального использования ресурсов. Очень часто при создании визуального эффекта в RealFlow какая-то группа частиц выпадает из кадра. Например, когда выполняется симуляция брызг, частицы улетают из зоны видимости, но при этом движок программы продолжает просчитывать их поведение и, естественно, это приводит к бесполезной трате аппаратных ресурсов. Для просчетов реалистичных сцен в RealFlow необходимо использовать большое количество частиц, и экономия ресурсов компьютера никогда не бывает лишней. Ограничительные процедуры могут удалять частицы по возрастному признаку k Age, используя критерий скорости k Speed или «убивать» частицы, выходящие за границы некоторого объема k Volume (все частицы вне объема с настройками процедуры по умолчанию удаляются).
⇡#Редактор связей
Когда вы добавляете объект Daemon в сцену, эта процедура автоматически начинает взаимодействовать со всеми источниками частиц, которые присутствуют в текущем проекте. Но что, если вам необходимо добавить в сцену объект Daemon, который должен влиять только на определенный источник частиц? Для этого используется редактор связей. Он выглядит как диаграмма. Выделять компоненты диаграммы можно, просто щелкая по нужному узлу. Когда в диаграмме полно узлов, удобнее выбирать объекты сцены в окне Nodes. При этом выделенный узел автоматически показывается на диаграмме белой круглой рамкой.
Изначально в центре диаграммы находится событийный хаб, который окружен и связан со всеми объектами сцены. Линии, исходящие от объектов, называются связями. Они показывают, какая процедура на какой объект влияет. В отличие от прочих компонентов диаграммы, событийный хаб является вспомогательным узлом диаграммы (понятно, что такого объекта в сцене нет). Он просто является передаточным звеном. Так, например, если к хабу подключены несколько источников частиц, а также, скажем, ограничительная процедура k Age, то оба источника будут «терять» частицы, достигшие определенного возраста, который указан в настройках k Age. Чтобы изменить такую ситуацию, и ограничительная процедура могла бы влиять только на один источник частиц, нужно оборвать связь между событийным хабом и этим источником. Делается это очень просто — выделяете линию и нажимаете Delete на клавиатуре. В сложных сценах удобно использовать свои наборы событийных хабов. Создав новый хаб, можно окружить его процедурами и присоединить к нему новый источник, чтобы эти процедуры влияли только на него.
Схема в редакторе связей может иметь весьма запутанный вид, тут нужно иметь определенный опыт, чтобы с первого взгляда оценить картину происходящего.
Один и тот же компонент диаграммы может быть связан с несколькими другими объектами. Например, ограничительная процедура может влиять на два источника частиц сразу, скажем, через связь с хабом, к которому подключен первый источник частиц и напрямую со вторым источником частиц.
Чтобы установить связь между двумя узлами диаграммы, удерживая нажатой клавишу Ctrl, щелкните по первому узлу, не отпуская кнопку мыши, наведите на узел, с которым требуется установить связь, и отпустите кнопку мыши. Когда вы будете тянуть линию, во избежание установления бесполезных или невозможных связей, в окне редактора связей программа сделает неактивными некоторые компоненты (например, не имеет смысла устанавливать связи между ограничительными процедурами).
⇡#Симуляция и взаимодействие с объектами
RealFlow не содержит инструментов для моделирования. Поэтому эту программу обычно принято использовать совместно с каким-нибудь 3D-редактором, в котором можно смоделировать объекты, а затем импортировать их в проект RealFlow, где они будут взаимодействовать с частицами. И все же, несмотря на то, что программа лишена инструментария для моделирования, в ней есть возможность создания трехмерных поверхностей самых простых форм. Все эти объекты расположены на вкладке Geometry: куб, сфера, тор, цилиндр, конус и пр. Также имеется возможность использовать «нулевой объект» в качестве маркера, для визуальной ориентации.
Во многих 3D-редакторах есть свой «нестандартный» объект. Например, в 3ds max это чайник, а в Blender — обезьянка по имени Сюзанна. А в RealFlow есть объект, который присутствует и на логотипе компании Next Limit Technologies — ракета.
Простейший способ переноса объектов из 3D-редактора в RealFlow — с помощью одного из поддерживаемых программой трехмерных форматов. Симулятор от Next Limit может импортировать в проект файлы форматов OBJ, DXF, SD, LWO, ABC, ASC. Очень важно обратить внимание на геометрию импортируемых в RealFlow моделей. Дело в том, что RealFlow поддерживает импорт только тех поверхностей, которые имеют треугольную топологию. Когда вы выполняете экспорт трехмерной модели в 3D-редакторе, некоторые форматы автоматически преобразуют исходную модель в модель с треугольными поверхностями. Так, если вы выполняете экспорт полигональной модели из 3ds max в формат OBJ, нужно в настройках экспорта поменять тип поверхностей на треугольники (Triangles), а еще проще — воспользоваться профилем экспорта с шаблонами предварительных настроек для RealFlow.
Однако полагаться на автоматическое преобразование не стоит, поскольку изменение топологии не всегда выполняется корректно. Поэтому лучше отредактировать топологию экспортируемого объекта непосредственно в 3D-редакторе, средствами моделирования. Например, в Maya легко разбить полигональные поверхности модели на треугольники выполнив команду Mesh → Triangulate. Кстати, для экспорта в формат OBJ в Autodesk Maya не забудьте включить соответствующий плагин (Windows → Settings/Preferences > Plug-in Manager и установить флажок Loaded напротив objExport.mll). Также стоит обратить внимание на единицы измерения в 3D-редакторе, в котором был смоделирован экспортируемый в RealFlow объект. Например, в Maya по умолчанию используется сантиметровая сетка, в то время как базовая единица сетки симулятора жидкостей — метры.
Чтобы импортировать 3D-объект в проект симулятора от Next Limit, на вкладке Geometry нажмите на кнопку Import или в главном меню RealFlow выберите пункт Import → Object.
⇡#Анимация
Весь смысл работы RealFlow сводится к тому, чтобы на выходе получить динамику частиц или, проще говоря, сделать анимацию. Как и в любой другой программе для создания анимации, в RealFlow используется принцип ключевых кадров — для двух кадров создаются контрольные значения какого-нибудь параметра, а программа автоматически просчитывает значения для всех промежуточных кадров.
Анимировать в RealFlow можно практически любой параметр, который отображается в окне настроек Node Params. Чтобы создать ключ анимации, установите ползунок на определенный кадр, затем в окне Node Params задайте ключевое значение анимируемому параметру, щелкните по его названию правой кнопкой мыши, после чего в контекстном меню выберите команду Add key.
Передвиньте на временной шкале ползунок на другой кадр, установите новое значение анимируемого параметра и снова в контекстном меню при щелчке по названию этой настройки выберите Add key. Можете воспроизвести анимацию (симуляцию) и убедиться, что RealFlow плавно меняет значения анимированного параметра от одного ключевого кадра к другому. Анимируемые параметры в окне Node Params выделяются коричневым цветом, так что при взгляде на настройки сразу видно, какие из них содержат ключи анимации.
Еще более просто реализована настройка анимации при использовании операций трансформации — поворота, перемещения или масштабирования объекта. Для этого при помощи инструментов трансформации на вертикальной панели в левой части окна RealFlow изменяйте положение и ориентацию объектов сцены, устанавливая ключевые значения с помощью нажатия клавиши K. Эта горячая клавиша позволит создавать ключ сразу для трех операций трансформации. Если потребуется создать ключ для конкретного параметра трансформации, например, поворота, это можно сделать при помощи контекстного меню, щелкнув правой кнопкой мыши в окне проекции и выбрав пункт Add key > Rotation Key (для поворота).
Еще один важный инструмент настройки анимации в RealFlow — редактор кривых. Аналогичный инструмент имеется во всех профессиональных 3D-редакторах. С помощью редактора кривых можно очень точно настраивать характер протекания анимации. Анимация может протекать линейно, а может иметь скачкообразный характер. Все это определяется формой кривой, которая появляется между двумя ключами анимации. Чтобы открыть редактор кривых, щелкните по анимированному объекту правой кнопкой мыши (в окне проекции или в окне Nodes) и выберите Open Curves. На кривой можно создавать контрольные точки, менять характер излома в них и пр.
⇡#Оптимизация сцен проекта
Программа RealFlow имеет множество продуманных мелочей, которые делают ее не только удобной, но и очень эффективной при обработке большого числа данных. Например, среди опций имеется возможность закешировать определенные источники частиц, а затем при повторной симуляции использовать ранее сохраненные данные.
После очередного изменения в настройках сцены хочется поскорее увидеть результат. Однако увидеть, как выглядит обновленная динамика, не всегда удается быстро. Процесс симуляции может отнимать довольно много времени, особенно если в сцене используется большое количество частиц и источников. Время, потраченное на обработку сцены, можно заметно уменьшить, если использовать кеширование отдельных объектов, на динамику которых не влияют вносимые пользователем изменения. В этом случае RealFlow будет вычислять физику только незакешированных данных, и это заметно снизит нагрузку на вычислительные мощности компьютера. Простой пример сцены, где может понадобиться кеширование, — два фонтана с разным дизайном. Когда вы настроили первый фонтан, его частицы можно закешировать, после чего перейти к настройке второго фонтана. Также можно делать некоторые источники временно неактивными, чтобы в процессе симуляции программа не обрабатывала динамику их частиц.
Как и в любом трехмерном редакторе, в RealFlow можно отображать объекты в сцене сглажено, с плоскими поверхностями, в режиме каркаса или вообще в виде габаритного контейнера. Очень удобно, что для каждого объекта можно указать свой тип прорисовки в окне проекции. Например, если вы моделируете поведение жидкости в закрытом стеклянном сосуде, вы можете включить визуализацию его каркаса, что позволит наблюдать за частицами внутри. Для этого выделите объект в сцене, перейдите на вкладку Display и нажмите на значок с вариантом отображения в окне проекции.
Особенностью жидкости является то, что она постоянно изменяет свою геометрию под влиянием внешних воздействий. Иногда возникает необходимость «запомнить» определенное состояние жидкой формы. Например, в сцену импортирован сосуд сложной формы, который необходимо частично заполнить водой. В этом случае можно произвести просчет сцены, заполняя сосуд частицами. В том кадре, где частицы заполнят сосуд наполовину, программе можно приказать использовать текущее состояние для последующего просчета. После этого RealFlow выполнит следующую симуляцию, принимая во внимание, что в первом кадре сосуд уже заполнен наполовину. Для запоминания текущего состояния следует в настройках источника частиц нажать кнопку Set initial State, а для просчета с момента зафиксированного состояния надо обнулять кеш программы командой Reset To Initial State.
⇡#Создание жидкости
До сих мор мы ничего не говорили о трехмерной жидкости. Создание модели жидкости на основе частиц — это один из заключительных этапов работы в RealFlow. Когда динамика сцены вас устраивает, анимация настроена, а поведение частиц выглядит реалистично, можно переходить к построению модели жидкости. Процесс генерирования трехмерной поверхности не менее сложен, чем симуляция динамики частиц. Когда RealFlow создает огибающую поверхность вокруг частиц, превращая разрозненные частицы в единый поток, программа задействует максимум ресурсов. Поэтому создавать модель жидкости следует в самом конце работы над проектом.
Чтобы RealFlow сгенерировала поверхность на основе ранее просчитанной симуляции, перейдите на вкладку Mesh и нажмите на кнопку Particle mesh. Рядом с ней находится другая кнопка — Particle mesh (legacy). Это неактуальный альтернативный алгоритм визуализации поверхности, который ориентирован на просчет проектов, выполненных в старых версиях RealFlow (впрочем, если есть время и желание, можете попробовать и этот вариант).
В окне проекции появится значок нового вспомогательного объекта, и в диаграмме редактора связей появится новый узел. Чтобы сообщить программе о том, к какому источнику частиц должен относиться новый узел, необходимо вручную связать его в окне редактора связей. После того как вы свяжете объект Particle mesh с нужным источником частиц в диаграмме, нужно нажать на кнопку Build mesh. Чтобы в интерактивном режиме можно было редактировать настройки сгенерированной поверхности, потребуется нажать на кнопку Mesh interactive mode. После этого любые изменения в параметрах Particle mesh будут тут же отображаться в окне проекции. В противном случае нужно после каждого изменения нажимать на кнопку Build mesh.
⇡#Не только жидкости: другие возможности RealFlow
Несмотря на то, что программа ориентирована на работу с жидкими потоками, у нее есть масса других интересных возможностей. Например, можно моделировать сцены с твердыми телами, например, имитируя разрушение. Симулятор умеет просчитывать соударение волн с образованием пузырьков и пены, а также может имитировать резиновую или мягкую желеобразную субстанцию с помощью динамики мягких тел. Частицами можно моделировать воду, но можно и эффекты горения, дым и торнадо. Симулятор успешно применяется в рекламе, чтобы придать красивый вид продуктам, а еще приложение от Next Limit используется разработчиками компьютерных игр и специалистами по визуальным эффектам для фильмов. Одним словом, возможности RealFlow необычайно широки, результат зависит большей частью от воображения художника-аниматора.
Если вас заинтересовала эта программа, попробуйте разобраться с ней с помощью внушительной библиотеки прилагаемых сцен. Файлы с примерами подобраны таким образом, чтобы дать максимальное представление о возможностях основных инструментов RealFlow. Демонстрационные сцены можно вызвать из главного меню программы Help > Demo Scenes. Многие сцены сопровождаются текстовыми пояснениями разработчиков (разумеется, на английском языке), так что сложностей возникнуть не должно.
⇡#Заключение
Если вы внимательно прочитали эту статью, можете смело начинать работать с RealFlow, экспериментируя и получая потрясающие эффекты. Самое главное мы рассказали, а остальное придет с опытом. Уверены, что тем, кому не безразличен мир 3D, будет интересно разобраться с тонкостями программы.
RealFlow — это один из наиболее мощных программных симуляторов жидкости: программа не стоит на месте и развивается, она проста, удобна, стабильна. Достойной альтернативы, способной на равных конкурировать с этим приложением, сейчас просто не существует.
Конечно, задачи, для которых создавалась RealFlow, можно решать и по-другому. Можно воспользоваться «умными» частицами, о которых мы упоминали в данном обзоре, можно обратиться к скриптовым языкам. Однако в использовании этих методов нет смысла, когда под рукой уже есть RealFlow: это все равно, что заново изобретать велосипед. Ведь в программе от Next Limit можно найти все необходимое, чтобы создать свой собственный «Титаник» или хотя бы короткий ролик с расплавленным шоколадом. Желаем вам красивого рендеринга и море вдохновения!
Комментариев нет:
Отправить комментарий