Модифікатор «Океан» – Ocean Modifier

Модифікатор Ocean – це засіб симулювання океану для генерування деформованої поверхні океану та асоційованої текстури, що використовується для рендера даних цієї симуляції. Він призначений для симулювання глибоких хвиль та піни океану.

Він є портом з відкрито джерельного інструментарію Houdini Ocean Toolkit.

Опції – Options

../../../_images/modeling_modifiers_simulate_ocean_panel.png

Модифікатор «Океан» – Ocean.

Геометрія – Geometry

Геометрія – Geometry
Генерування – Generate

Створює плиткову сітьову ґратку, що точно відповідає роздільності даних симуляції.

При генеруванні сітьової поверхні, наявний сітьовий об’єкт повністю заміщається ґраткою океану. Також додається канал UV з розкладанням простору UV (0.0 до 1.0) по ґратці симуляції.

Повтор – Repeat X, Repeat Y
Керує кількістю разів плиткування ґратки у напрямках X та Y. UVи для цих ділянок плиткованої сіті продовжуються поза простором UV (0.0 до 1.0).
Зміщення – Displace
Використовує наявну геометрію, а не заміщає її. Вершини зміщуються уздовж локальної осі Z.
Час – Time
Час, за який обчислюється поверхня океану. Щоб зробити анімований океан, вам буде необхідно анімувати – animate це значення. Швидкість, з якою це значення часу змінюється, буде визначати скорість анімації хвиль.
Глибина – Depth
Стала глибина дна океану під імітованою областю. Нижчі значення симулюють дрібніші води, продукуючи більш часті деталі та менші хвилі.
Базис Випадковості – Random Seed
Різний базис – seed буде продукувати різний результат симуляції.
Роздільність – Resolution

Головний керувальник якості проти швидкості у даному рушії симуляції. Це визначає роздільність внутрішніх 2D ґраток, генерованих симуляцією.

Ці внутрішні ґратки є значеннями у степені двійки від значення роздільності, а тому при значенні роздільності 16 будуть створені дані симуляції з розміром 256×256. Чим вище значення роздільності, тим продукується більша детальність, однак яка і повільніше розраховується.

Примітка

При використанні опції геометрії модифікаторів групи Generate це значення роздільності також визначає роздільність генерованої сітьової поверхні, що дорівнює роздільності внутрішніх даних симуляції.

Розмір – Size
Простий фактор масштабування, що не впливає на висоту хвиль чи поведінку симуляції.
Просторовий Розмір – Spatial Size
Ширина області поверхні океану, що симулюється, у метрах. Це також визначає розмір генерованої сіті або зміщеної області. Звичайно, ви можете масштабувати об’єкт з модифікатором Ocean у режимі об’єкта Object Mode для підправлення видимого розміру у вашій сцені.

Хвиля – Wave

Хвильність – Choppiness
Хвильність, різкість піків хвиль. При хвильності 0 поверхня океану зміщується тільки уверх та вниз у напрямку Z, але з вищими значеннями хвильності хвилі також зміщуються у боки по X та Y для створення гостріших піків хвиль.
Масштаб – Scale

Загальний керувальник масштабу для амплітуди хвиль. Він дає приблизні висоту або глибину хвиль вище або нижче нуля.

Замість простого масштабування об’єкта океану по Z він масштабує усі аспекти симуляції, зміщення по X та Y, а також відповідно піну та нормалі.

Вирівняння – Alignment

Направленість обрисів хвиль залежно від вітру. При значенні 0 вітер та хвилі є випадково, неоднорідно орієнтовані.

З вищими значеннями Alignment вітер дує у більш сталому напрямку, роблячи для хвиль вигляд більш стиснутим та вирівняним в одному напрямку.

Напрям – Direction
При використанні Alignment це напрямок у градусах, по якому вирівнюються хвилі (використовується локальна вісь X як орієнтир).
Згасання – Damping

При використанні Alignment це буде визначати величину, на яку згасяться між-відбивані хвилі. Це має ефект зроблення руху хвиль більш направленим (а не тільки форми хвилі).

При Damping як 0.0 хвилі відбиваються одна від одної у кожному напрямку, при Damping як 1.0 ці між-відбивані хвилі гасяться зовсім, залишаючи тільки хвилі, що йдуть у напрямку вітру.

Найменша Хвиля – Smallest Wave
Мінімальний ліміт для розміру генерованих хвиль. Діє подібно до низькочастотного фільтра, вилучаючи деталі більш високої частоти.
Скорість Вітру – Wind Velocity
Швидкість вітру у метрах/секунду. При низькій скорості хвилі обмежуються хвилями з меншою поверхнею.

Опції Генерування Даних Симуляції – Simulation Data Generation Options

../../../_images/modeling_modifiers_simulate_ocean_foam-layer-name.png

Використання кольорів вершин під з іменованим шаром даних.

Стандартно даний симулятор генерує тільки дані зміщення, оскільки це передбачає мінімальний обсяг роботи та дає найшвидший відклик. Також можуть генеруватися додаткові дані симуляції для рендерингу.

Генерувати Нормалі – Generate Normals

Симулює додаткові дані розкладки нормалей.

Це може використовуватися текстурою Ocean при розкладанні по системі координат Normals як розкладка вигинань та дозволяє генерувати послідовності зображень розкладок нормалей при запіканні.

Генерувати Піну – Generate Foam

Симулює додаткові дані піни.

Це може прийматися текстурою Ocean для використання при текстуруванні (можливо як маска) та дозволяє генерувати послідовності зображень розкладок піни при запіканні.

Охоплення – Coverage
Підправляє величину охоплювання піною хвиль, від’ємні значення будуть скорочувати величину піни (залишаючи її тільки на найвищих піках), додатні значення – додають більше піни. Типово у діапазоні від (-1.0 до 1.0).
Ім’я Шару Даних Піни – Foam Data Layer Name
Факультативне ім’я для шару даних вершин, використовуваного модифікатором Ocean для збереження розкладок піни як кольорів вершин. Це вимагається для доступу до даних піни у рендерері.

Запікання – Baking

Замість симулювання даних океану наживо, такі дані можуть бути запечені у файли у заданий каталог. Після запечення симуляції рушій симулятора повністю обходиться, а модифікатор/текстура бере усю інформацію із запечених файлів.

Запікання може бути вигідним з таких причин:

  • Швидше використовувати збережені дані, а не постійно їх перераховувати.
  • Воно дозволяє рендерити дані океану у зовнішніх рендерерах.
  • Воно дозволяє мати більш просунуті розкладки піни.

Файли Даних – Data Files

Дані симуляції зберігаються як послідовності розкладок у форматі OpenEXR, по одній для зміщення, нормалей та піни (якщо увімкнено її генерування). При завантаженні даних з цих запечених файлів, коли кадр послідовності запікання зчитується, він кешується у пам’яті. Це означає, що доступ до завантажених кадрів наступні рази є швидшим, який не потребує постійного звертання до жорсткого диску.

Since these baked files are plain OpenEXR’s, they can also be opened and rendered in any other application or renderer that supports them.

Запікання Піни – Baking Foam

Запікання також забезпечує поліпшені здатності піни. При симулюванні наживо симулятор океану бере дані тільки для поточного кадру. У випадку розкладки піни це представляє верхівки гребенів хвилі для заданого кадру. У реальності, після того, як піна створена взаємодіями хвиль, вона залишається на верхівці поверхні хвилі деякий час, доки не розсіюється. При запіканні можливо наближати таку поведінку, акумулюючи піну з попередніх кадрів, залишаючи її на поверхні.

Опції Запікання – Baking Options

Старт, Кінець – Start, End
Кадри симуляції для запікання (включно). Кадри старту та кінця запікання повторюються при доступі до кадрів поза діапазоном запікання.
Шлях Кешу – Cache Path
Тека для збереження запечених EXR файлів. Такі послідовності будуть у формі disp_####.exr, normal_####.exr та foam_####.exr, де #### – це чотиризначний номер кадру. Якщо вказана тека по шляху кешу не існує, то вона буде створена.

Нутрощі Симуляції – Simulation Internals

Сам симулятор використовує методи FFT (Швидке Перетворення Фур’є) для генерування 2D ґраток інформації симуляції внутрішньо, дуже подібне до 2D розкладок текстур. Симулятор може генерувати три типи даних: зміщення, нормалі та додаткові дані, що використовуються для розрахування перетинів гребенів хвиль (тобто, піни). Після симуляції ці розкладки використовуються для зміщення геометрії поверхні океану у 3D, а також можуть використовуватися для відтінювання за допомогою текстури Ocean. Внутрішній рушій симуляції є багатопотоковим з технологією OpenMP для отримання переваги використання одночасно кількох ядер процесора.

Приклади – Examples

Симульовано та запечено у розкладки зображень у Blender’і, рендерено у 3Delight.