Оригинал материала: https://3dnews.ru/917218

Обзор симулятора жидкости RealFlow: невероятные фокусы с водой

Анимированная жидкость. Описание

Вспомните привычные кадры рекламы: струи минеральной воды или популярного пенного напитка — прозрачная красивая жидкость, играя светом, растекается по бокалу и собирается в удивительно правильные формы, демонстрируя самым лучшим образом свойства рекламируемого товара. А сколько раз перед доверчивым зрителем на экране демонстрировался аппетитно разламывающийся батончик или заливаемый шоколадом рожок мороженого! Многие из зрителей полагают, что такая красивая картинка — это заслуга одного лишь оператора и постановщика съемок.

Но на самом деле столь эффектная съемка может иметь совершенно иное объяснение — компьютерная 3D-графика. С помощью современных компьютерных технологий можно творить удивительные вещи: делать предметы съемки красивее, чем они есть на самом деле, менять их форму, делать их текучими и заставлять двигаться в нужном направлении.

Трехмерная графика — это целый мир, где есть место всему: и программированию, и математическому анализу, и творческому началу. Сегодня мы хотим поговорить только об одном инструменте для создания 3D-графики — частицах. На его примере вы увидите, насколько универсален этот инструмент, и узнаете, как создаются спецэффекты в современных фильмах и как талантливые 3D-аниматоры обманывают зрителя рекламы.

#Анимированная жидкость: переход на новое измерение

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

Город состоит из домов, дома состоят из кирпичей, кирпичи состоят из песчинок, песчинки — из атомов и так далее. Для компьютерного моделирования это знание имеет очень большое значение. Используя всего лишь симулятор поведения частиц, мы можем воссоздать любую физическую модель и любой видимый процесс. Звучит сложно и не очень понятно, поэтому попробуем объяснить это на примере компьютерной анимации, где частицы могут решать любые задачи.

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

Художникам-мультипликаторам Оливеру Джонстону (Oliver Martin Johnston) и Томасу Фрэнку (Frank Thomas) понадобились годы, чтобы хоть как-то упорядочить алгоритмы создания анимации. В их знаменитой книге Disney Animation, The Illusion of Life (1981 год) эти два человека постарались сформулировать основные постулаты для аниматоров.

 Фрэнк Томас

Фрэнк Томас

 Олли Джонсон

Олли Джонсон

Интересно, что подход к созданию рисованных мультфильмов у Оливера и Томаса был точно такой же, какой сегодня используется во всех программах для создания анимации. Рисуя какую-нибудь сценку, авторы создавали несколько характерных поз персонажа, а затем отрисовывали промежуточные кадры, заполняя временные «пробелы». Ну чем не метод анимирования при помощи ключевых кадров!

Всего Оливер и Томас изложили двенадцать правил создания анимации, которые остаются актуальными несмотря на то, что средства для ее создания теперь совсем иные.

Но даже используя колоссальный опыт аниматоров «Диснея», очень трудно передать на экране движения некоторых вещей. Вот примеры таких объектов: струящийся дым, поток воды, брызги жидкости от удара, изображение разлетающихся осколков разбитого стекла и так далее. Пока классическая 2D-анимация держала свои позиции, все эти сцены можно было делать лишь приблизительно, полагаясь на то, что часть недостающих деталей зритель сам домыслит.

Однако с приходом компьютерной графики ситуация изменилась. Перед художниками появилась новая, более сложная задача: отобразить реалистичные движения предметов в кадре. Когда мы имеем дело с движением персонажей или неодушевленных предметов (автомобиль, падающий мяч, парящая в небе чайка и так далее), движение очень простое и потому предсказуемое, его легко нарисовать или смоделировать. Но как можно предугадать, скажем, какие брызги возникнут от опрокинутой на туфлю чашки молока, какой они будут формы и куда полетят? И тут мы подошли к самой сути проблемы — моделированию физического процесса при помощи частиц.

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

А теперь представьте себе аналогичную ситуацию, только вместо жидкости в стакане находятся крохотные стальные шарики. Перевернув такой стакан, мы получим очень схожую картину — массив шариков «растечется» по поверхности, приблизительно повторяя контуры жидкости из первого примера. Чем меньше размер у шариков и чем больше их число, тем более похожим становится поведение рассыпанной массы. Для компьютерной модели подобной аналогии вполне достаточно, чтобы смоделировать взаимодействие жидкости с окружающими объектами. Именно такой подход и был выбран для создания программы RealFlow.

Когда в 1997 году Джеймс Кэмерон снял фильм «Титаник», использованные декорации и спецэффекты обошлись создателям в рекордную сумму. Узнав стоимость съемок (а они и вправду превышали стоимость самого Титаника), Кэмерон воскликнул: «Лучше бы мы его заново построили!» На то время использование компьютерной графики в таких масштабах было действительно дорогостоящим удовольствием. И хотя в 1997 году не существовало хорошего симулятора жидкостей, в этом фильме студия Digital Domain предприняла попытку обмануть зрителя компьютерным дымом и водой.

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

#Realflow: как все начиналось

Изначально компания Next Limit состояла всего из двух человек — Виктора Гонсалеса и Игнасио Варгаса.

Штат Next Limit довольно долго не расширялся, а сами сотрудники ютились в небольшом арендованном офисе с парой компьютеров. По словам основателей Next Limit, наибольшей трудностью для начинающих бизнесменов было заняться продвижением своей идеи практически без первоначального капитала. Когда компания только-только была зарегистрирована, интуиция подсказывала парням, что их ждет большой успех, эта мысль давала им стимул и вдохновляла. Но одно дело интуиция, совсем другое — реалии жизни. Поэтому первые годы разработчики особенно старательно трудились над первой версией симулятора жидкости RealFlow, которая должна была развеять все сомнения и привлечь клиентов. В конечном итоге энтузиазм и упорство студентов победили. Как только RealFlow был «допилен», первые лицензии продались очень быстро (что дало возможность программистам уже спокойно развивать свой перспективный проект), а новость о появлении нового симулятора жидкостей на рынке программного ПО для визуальных эффектов вызвала огромный интерес к этому продукту.

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

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

Создание трехмерной поверхности воды не было проблемой даже тех слабых рабочих станций, которые имелись в распоряжении первых компьютерных аниматоров в конце 90-х. Однако метод, который использовался для имитации водной глади до появления RealFlow, основывался лишь на деформации поверхности и не учитывал мелких деталей — брызг, пены, пузырьков и так далее. Именно поэтому многие известные картины того времени (конец 1990-х — начало 2000-х) использовали послойный метод просчета жидкостей — отдельно визуализировались волны и отдельно просчитывалась гребневая шапка с помощью частиц, после чего на этапе видеомонтажа кадры накладывались, образуя полную картину. Это все было неудобно, да и компьютерная подделка была очень заметна.

Новый RealFlow появился очень своевременно — мощности компьютеров хватало для решения сложных задач, а конкуренции у симулятора жидкостей никакой не было. Чтобы закрепить успех, испанские разработчики очень много внимания уделили оптимизации использования ресурсов, благодаря чему RealFlow с самого начала его развития можно было запускать не только на топовых конфигурациях ПК.

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

RealFlow позволяет сгенерировать «жидкую» трехмерную поверхность, образованную частицами. Метод, на котором основан движок симулятора жидкостей, использует модель SPH (Smoothed Particle Hydrodynamics) — алгоритм просчета гидродинамики сглаженных частиц. Суть его та же самая, что и в описанном выше примере стакана со стальными шариками, с той лишь разницей, что модель SPH позволяет отдельным частицам образовывать единое целое, слипаться друг с другом. Помимо SPH, в программе также используется алгоритм Hybrido, предназначенный для симуляции масштабных сцен, например поверхности океана.

На сегодняшний день RealFlow доступна для всех основных настольных платформ. «Послужной список» программы включает бессчетное число рекламных роликов и более трех десятков художественных фильмов, выпущенных с 1998 года. Симулятором жидкости пользовались при создании фильмов «Аватар», «Властелин колец: Возвращение короля», «Код да Винчи», «Хищники», мультфильмов «Гадкий Я», «В гости к Робинсонам», «Ледниковый период» и многих других.

#Начало работы: что к чему и где подводные камни

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

C помощью дополнительных модулей RealFlow поддерживает интеграцию со всеми основными 3D-редакторами: Maya, 3ds Max, Houdini, LightWave, Softimage. Кроме того, весной 2015 года компания заявила о создании нового дополнения RFCORE для популярного 3D-редактора Cinema 4D. С помощью RFCORE можно использовать движок симулятора жидкостей RealFlow непосредственно внутри Cinema 4D. И хотя на данном этапе RFCORE не дублирует все возможности RealFlow, модуль RFCORE позволит работать в уже привычном интерфейсе (в отличие от прочих плагинов-коннекторов для 3D-редакторов, которые лишь выполняют импорт данных в 3D-редактор).

RealFlow поддерживает еще один продукт компании Next Limit — визуализатор Maxwell Render, поэтому визуализацию можно проводить прямо в самой программе. В отличие от прочих систем визуализации, Maxwell Render ориентирован на просчет физической модели сцены. Это усложняет просчет, но упрощает настройку рендеринга.

Перед тем как вы начнете работать с RealFlow, стоит обратить внимание на нюанс при сохранении результата. В компьютерной графике данные, используемые в проекте, часто хранятся не только в едином файле программы, и RealFlow в этом смысле не является исключением. Когда вы сохраняете свою работу в RealFlow, в том месте на диске, где вы сохраняете файл, программа автоматически создает целую коллекцию каталогов. Каждый из этих каталогов содержит свой тип данных, используемый в RealFlow, — информацию об объектах, обработанные данные предварительного просмотра, сведения о частицах и прочее. Все эти данные являются динамическими и используются RealFlow как кеш проекта.

Еще один важный момент, который следует иметь в виду при работе с RealFlow, — размерность. Динамика жидкостей и текучих тел во многом зависит от размеров исходных тел. Например, жидкость, вытекающая из бочки, смотрится иначе, чем водопад.

По умолчанию в RealFlow используется масштаб виртуального пространства, при котором одна клеточка схематической сетки приравнивается к одному метру. Если вы смоделируете в программе эффект переливания жидкости из бутылки в стакан, но забудете про размеры, RealFlow может симулировать сцену, где размер стакана измеряется метрами. Подобная ситуация сама по себе абсурдна, и результат будет далек от реалистичного. Для того чтобы размерность импортируемых в программу объектов совпадала с желаемой, можно использовать коррекцию масштаба. В настройках RealFlow можно выбирать автоматический множитель для изменения масштаба импортируемых объектов. Кроме того, можно использовать аналогичные множители для коррекции воздействия процедур на частицы или на объекты. Настройки для управления масштабом сцены вызываются с помощью кнопки Scale options возле элементов управления анимацией.

Работа с RealFlow

#Интерфейс RealFlow

Интерфейс RealFlow разработчики сделали понятным и удобным — и это не только наше субъективное мнение. Симулятор жидкостей — программа неординарная и уникальная, создатели вполне могли сделать нечто с уникальным же обликом, вот только зачем? Аниматор, который желает разобраться с новым инструментом, не должен испытывать трудностей при освоении приложения. Поэтому облик RealFlow — это собирательный интерфейс приложений для работы с 3D. Больше всего он похож на Maya с ее наборами инструментов на вкладках.

В центре окна 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 — убивать) и позволяют избавиться от лишних частиц в сцене.

 Пример использования процедуры гравитации: слева — просчет источника частиц без влияния гравитации, справа — симуляция после добавления процедуры Gravity

Пример использования процедуры гравитации: слева — просчет источника частиц без влияния гравитации, справа — симуляция после добавления процедуры Gravity

Эти ограничительные процедуры нужны не только для описания поведения частиц в сцене, но и для рационального использования ресурсов. Очень часто при создании визуального эффекта в RealFlow какая-то группа частиц выпадает из кадра. Например, когда выполняется симуляция брызг, частицы улетают из зоны видимости, но при этом движок программы продолжает просчитывать их поведение и, естественно, это приводит к бесполезной трате аппаратных ресурсов. Для просчетов реалистичных сцен в RealFlow необходимо использовать большое количество частиц, и экономия ресурсов компьютера никогда не бывает лишней. Ограничительные процедуры могут удалять частицы по возрастному признаку k Age, используя критерий скорости k Speed или «убивать» частицы, выходящие за границы некоторого объема k Volume (все частицы вне объема с настройками процедуры по умолчанию удаляются).

 Пример использования ограничительной процедуры k Volume: слева — источник частиц под действием гравитации, справа — источник частиц поl действием гравитации и ограничительной процедуры k Volume

Пример использования ограничительной процедуры k Volume: слева — источник частиц под действием гравитации, справа — источник частиц поl действием гравитации и ограничительной процедуры 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 можно найти все необходимое, чтобы создать свой собственный «Титаник» или хотя бы короткий ролик с расплавленным шоколадом. Желаем вам красивого рендеринга и море вдохновения!



Оригинал материала: https://3dnews.ru/917218