Модифікатор «Океан» – 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 для підправлення видимого розміру у вашій сцені.
- Spectrum
Used to choose the wave spectrum model to use. Wave spectra are used to describe how energy moves through the waves at different frequencies. Energy travels through waves differently depending on the depth of the water and the wind speed.
- Turbulent Ocean
Use for turbulent seas with foam (Phillips).
- Established Ocean
Use for a large area, established ocean where the ocean would extend for miles with wind blowing for days allowing the waves to reach a point of equilibrium (Pierson-Moskowitz method).
- Established Ocean (Sharp Peaks)
Similar to regular Established Ocean however, waves will continue to grow with time creating sharper peaks (JONSWAP and Pierson-Moskowitz method). An extra parameter is used to define the sharpness of these peaks.
- Shallow Water
Use for shallow water with depths less than about 10 meters which makes it great for small lakes and ponds without heavy wind (JONSWAP and TMA – Texel-Marsen-Arsloe methods).
¶ - Sharpness Peak
An artificial factor to control how sharp the peaks of the waves are in the Established Ocean (Sharp Peaks) and Shallow Water spectrum models.
- Fetch
Distance from a lee shore, called the fetch, or the distance over which the wind blows with constant velocity. Used by Established Ocean (Sharp Peaks) and Shallow Water spectrum models.
Хвиля – 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.