Модифікатор «Океан» – Ocean Modifier¶
Модифікатор Ocean – це засіб симулювання океану для генерування деформованої поверхні океану та асоційованої текстури, що використовується для рендера даних цієї симуляції. Він призначений для симулювання глибоких хвиль та піни океану.
Він є портом з відкрито джерельного інструментарію Houdini Ocean Toolkit.
Опції – Options¶
Геометрія – 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¶
Стандартно даний симулятор генерує тільки дані зміщення, оскільки це передбачає мінімальний обсяг роботи та дає найшвидший відклик. Також можуть генеруватися додаткові дані симуляції для рендерингу.
- Генерувати Нормалі – 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.