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