Морські хвилі за допомогою Realflow від Next Limit
Підготовка сцени анімації Спочатку потрібно створити сцену в 3D-пакеті. Для цього уроку ми використовували 3D Studio MAX, але за допомогою запропонованих нижче кроків аналогічного результату можна досягти і в інших 3D програмах. Необхідні файли можна завантажити www.realflow.com/tutorials/realflow/waves/waves.zip.
Створіть для морських хвиль, що розбиваються, відповідне оточення. Тут ми змоделювали скелястий берег. Потім створіть бокс (box), який буде служити об'єктом зіткнення частинок в RealFlow. Його нижня частина має бути нахилена для досягнення ефекту руху хвиль.

Головна ідея полягає в тому, щоб створити емітер, який буде заповнювати нижню частину боксу частинками, а потім за допомогою attractors (атракторів) змоделювати морські хвилі та рух води. Для великих хвиль необхідно створити допоміжний об'єкт (dummy object), що йде шляхом, який імітує рух хвиль (у цьому прикладі закінчений рух займає приблизно 80 кадрів). Цей об'єкт може повторювати те саме рух, створюючи тим самим нескінченну послідовність (для MAX виберіть Cycle в Track view Parameter curve out-of-range type). Потім клонуйте (clone) допоміжний об'єкт та перемістіть рух об'єкта у часі, щоб створити наступну хвилю.

Для невеликих хвиль створіть додатково три допоміжні об'єкти, що прямують по прямому шляху вздовж нижньої частини боксу.

На панелі Utilities натисніть кнопку Scene Data Saver (зберегти дані сцени), виберіть ті об'єкти, які братимуть участь у моделюванні зіткнень (допоміжні об'єкти (dummy) та бокс) та збережіть файл у відповідній папці, наприклад, C:RealFlowSceneswaveswaves.sd. Тому що ми збираємося створити5-секундну анімацію у форматі PAL (25 кадрів за секунду), то End time (кінцевий час) необхідно встановити на 125.

Робота зі сценою в RealFlow
Запустіть RealFlow, встановіть Environment (середа) на 3D Studio MAX та Geometry scale (масштаб геометрії) на 0.01. Відкрийте файл waves.sd та задайте об'єктам такі параметри:
Object parameters (параметри об'єкта):Collision distance (зона взаємодії): 0.1 Collision tolerance (випадковість взаємодії) : 0.25 Friction (тертя): 0.01 K : 0.1 Усі інші параметри встановіть 0.
Натисніть кнопку Square (квадратний) на панелі Fluids (рідини), щоб створити емітер з наступними параметрами:
Common Fluid parameters (загальні параметри рідини):
У Fluid type (тип рідини) виберіть Liquid particles (рідкі частки). Density (щільність): 1000 Pressure (тиск): 0.1 Viscosity (в'язкість): 3 Max. particles (максимальна кількість частинок): 50000
Emitter parameters ( Square) (Параметри квадратного емітера):
Сenter (центр): 3.67 0.85 2.31 Angles (кути): 0 0 0 Dim : 0.7 4.7 Speed (швидкість): 0 Randomness (випадковість) : 0.5 Volume (об'єм): 2
Тепер з панелі deamons додамо gravity deamon, щоб надати рідині (fluid) реалістичність:
Magnitude (величина): 16 Rotation (обертання): 0 0 0
Натисніть кнопку Scene tree (дерево сцени), виберіть у списку об'єктів Box (Caja) і натисніть Add to all flu /> Buzz, поки частинки не опиняться у нижній частині боксу.
Тепер за допомогою панелі Deamons створіть 5 attractors (атракторів): натисніть кнопку Link і виберіть Attractor ola, щоб прив'язати рух deamon до об'єкта.
Attractor parameters (параметри атрактора):
Center (центр): 0 0 0 Rotation (обертання): 90 0 0 Attractor type (тип атрактора) : Planetary (планетарний) Strength (сила): 25 Radius (радіус): 0.50
Активуйте Bounded (обмежений) та встановіть boundary (кордон) на 2.30.
Для параметра Strength створимо Envelope. Двічі клацніть мишею на полі Strengh. У Envelope editor, що відкрився, встановіть total frames на 75 і позначте Loop. Значення (value) першої точки (point) у кадрі (frame) 0 має бути 25. Створіть точку у кадрі 26 зі значенням 20, ще одну у кадрі 27 зі значенням 0 і встановіть значення останньої точки (75) також на 0. На кожній з точок натисніть праву кнопку миші і переконайтеся, що точки лінійні (linear type). Вікно Envelope editor має виглядати так:

Тепер відредагуйте інші attractors:
Attractor 1Натисніть на кнопку Link і виберіть Attractor ola01, щоб прив'язати рух deamon до об'єкта.
Attractor parameters (параметри атрактора):
Center (центр): 0 0.3 0 Rotation (обертання) : 180 0 0 Attractor type (тип атрактора) : Spherical (сферичний) Strength (сила) : 60
Активуйте Bounded (обмежений) та встановіть boundary (кордон) на 0.7.
Attactor 2Прив'яжіть його до Attractor ola02.
Attractor parameters (параметри атрактора):
Center : 0 0 0 Rotation : 90 0 0 Attractor type : Planetary Strength : 25 Radius : 0.50
Активуйте Bounded та встановіть boundary (кордон) на 2.30.
Двічі клацніть мишею на полі Strengh. У Envelope editor, що відкрився, встановіть total frames на 75 і позначте галочкою Loop. Значення першої точки у кадрі 0 має дорівнювати 0. Створіть такі точки:
Кадр 36 зі значенням 0 Кадр 37 зі значенням 25 Кадр 62 зі значенням 20 Кадр 62 зі значенням 0 Кадр 75 зі значенням 0
На кожній з точок натисніть праву кнопку миші і переконайтеся, що вони лінійні (linear type). Вікно Envelope editor має виглядати так:

Attractor 3:Прив'яжіть його до Attractor ola03
Center : 0 0.3 0 Rotation : 180 0 0 Attractor type : Spherical Strength : 60
Активуйте Bounded та встановіть boundary (кордон) на 0.7.
Attractor 4Прив'яжіть його до Atractor ola04
Center : 0 0.3 0 Rotation : 180 0 0 Attractor type : Spherical Strength : 60
Активуйте Bounded та встановіть boundary (кордон) на 0.7.
Зайдіть на панель Meshes (сітки) і натисніть кнопку New Mesh, щоб створити нову сітку. Потім натисніть Select All (вибрати все) та Add to all meshes (додати для всіх сіток) , щоб застосувати сітку до квадратного емітера 1.
У властивостях сітки (mesh properties) встановіть роздільну здатність (resolution) на 4%, а властивостях примітивів сітки (Mesh primitive properties) встановіть Blend Factor на 100% і радіус (radius) на 23%.
У Mesh Post-process активуйте фільтр Sharp-mesh, встановіть Filter Iterations на 4% і на панелі Optimize відзначте Optimize (це трохи збільшить часові витрати, але сітки будуть менш щільними). Значення iterations має дорівнювати 10.
Натисніть кнопку Files і встановіть відповідний формат файлу (BIN для 3D Studio MAX) і папку для зберігання вихідного файлу (output folder), наприклад, C:RealFlowSceneswavesMesh.
Зберегти слід як сітку, а й частки. Натисніть на Files в Common fluid parameters і задайте відповідну папку (наприклад, C:RealFlowSceneswavesParticles).

Зайдіть на панель Options і встановіть частоту кадрів (FPS) на 38. Ця маленька хитрість дозволяє контолювати швидкість анімації. Пам'ятайте, що RealFlow розраховує рух частинок у реальному часі, але створення сітки залежить від встановлення частоти кадрів. У цьому прикладі ми хочемо створити анімацію PAL на 25 кадрів на секунду, але встановлюємо FPS на 38, щоб уповільнити та згладити рух рідини.
Встановіть Max. frames на 25.
Тепер натисніть на Action, і якщо все гаразд, аттрактори повинні почати переміщати рідину і створювати хвилі.
Якість створеної вами води залежить від матеріалу, що використовується. Але навіть хороший матеріал не може забезпечити бризки та характерну пінистість морських вод. RealFlow може зберігати як сітки рідини, а й самі частки. Коли ви маєте частинки, ви можете застосувати до них шейдер частинок для створення ефекту піни. У прикладі ми використовували шейдер Afterburn volumetric (www.afterworks.com). Процедура така:
Композинг кінцевої сцени
Відкрийте сцену і сховайте box і attractors.
На панелі Create виберіть GeometryNext LimitRF Loader. Виберіть папку, куди ви зберегли вихідну сітку, і натисніть на вікно Camera, щоб створити рідкий об'єкт.
Виберіть GeometryNext LimitRF Particles. Виберіть папку, куди ви зберегли частинки зі Square, і натисніть на вікно проекції Camera, щоб створити частинки.
Пересуньте сітку та частинки трохи вниз, щоб зменшити змазаність на ребрах сітки, а потім злегка перемістіть частинки у напрямку точки спостереження, щоб покращити ефект перекривання на сітці. Не забудьте додати motion-blur (змазування від руху) до Mesh object (для користувачів МАХ-image 0.4 в Object properties). Тепер до частинок можназастосувати шейдер Afterburn volumetric для отримання ефекту піни. Конфігураційний файл цієї сцени (waves_foam.abn) ви знайдете в лінку на початку сторінки.
Тепер ви можете провести рендеринг кінцевої сцени.