Модифікатор «Океан» – 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, по одній для зміщення, нормалей та піни (якщо увімкнено її генерування). При завантаженні даних з цих запечених файлів, коли кадр послідовності запікання зчитується, він кешується у пам’яті. Це означає, що доступ до завантажених кадрів наступні рази є швидшим, який не потребує постійного звертання до жорсткого диску.

Оскільки ці файли запікання є у звичайному форматі OpenEXR, то вони можуть також бути відкриті та рендерені у будь-якому іншому застосунку чи рендерері, які підтримують їх.

Запікання Піни – 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.