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

The Ocean modifier is a tool to simulate and generate a deforming ocean surface, and associated texture, used to render the simulation data. It is intended to simulate deep ocean waves and foam.

It is a port from the open source Houdini Ocean Toolkit.

Опції

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

The Ocean modifier.

Геометрія – Geometry

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

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

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

Повтор – Repeat X, Repeat Y
Controls the number of times the grid is tiled in X and Y directions. UVs for these tiled mesh areas continue outside of the (0.0 to 1.0) UV space.
Зміщення – Displace
Uses the existing geometry rather than replacing it. Vertices are displaced along the local Z axis.
Час – Time
The time at which the ocean surface is being evaluated. To make an animated ocean, you will need to animate this value. The speed that the time value is changing will determine the speed of the wave animation.
Глибина – Depth
Постійна глибина дна океану під імітованою областю. Нижчі значення імітують дрібніші води, продукуючи більш часті деталі та менші хвилі.
Базис Випадковості – Random Seed
A different seed will produce a different simulation result.
Роздільність – Resolution

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

The internal grids are powers of two of the resolution value, so a resolution value of 16, will create simulation data of size 256×256. The higher the resolution, the more details will be produced, but the slower it will be to calculate.

Примітка

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

Розмір – Size
Простий фактор масштабування, що не впливає на висоту хвиль чи поведінку імітації.
Просторовий Розмір – Spatial Size
The width of the ocean surface area being simulated, in meters. This also determines the size of the generated mesh, or the displaced area. Of course, you can scale the object with the Ocean modifier in Object Mode to tweak the apparent size in your scene.

Хвиля – Wave

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

An overall scale control for the amplitude of the waves. It approximates the height or depth of the waves above or below zero.

Rather than just scaling the ocean object in Z, it scales all aspects of the simulation, displacement in X and Y, and corresponding foam and normals too.

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

The directionality of the wave shapes due to wind. At a value of 0, the wind and waves are randomly, uniformly oriented.

With higher Alignment values, the wind is blowing in a more constant direction, making the waves appear more compressed and aligned to a single direction.

Напрям – Direction
When using Alignment, the direction in degrees that the waves are aligned to (using local X axis as reference).
Згасання – Damping

When using Alignment, this will define the amount that inter-reflected waves are damped out. This has the effect of making the wave motion more directional (not just the wave shape).

With a Damping of 0.0, waves are reflected off each other in every direction, with a Damping of 1.0, these inter-reflected waves are damped out, leaving only waves traveling in the direction of the wind.

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

Опції генерування даних імітації

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

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

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

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

Simulates additional normal map data.

This can be used by the Ocean texture, when mapped to Normals, as a bump map, and enables generating normal map image sequences when baking.

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

Simulates additional foam data.

This can be retrieved by the Ocean texture for use in texturing (perhaps as a mask), and enables generating foam map image sequences when baking.

Охват – Coverage
Tweaks the amount of foam covering the waves, negative values will reduce the amount of foam (leaving only the topmost peaks), positive values will add to it. Typically ranges from (-1.0 to 1.0).
Ім’я Шару Даних Піни – Foam Data Layer Name
Факультативне ім’я для шару даних вершин, використовуваного модифікатором Ocean для збереження карт піни як кольорів вершин. Це вимагається для доступу до даних піни у рендерері (рушії зображування).

Запікання – Baking

Rather than simulating the ocean data live, it can be baked to files in a given directory. When a simulation is baked, the simulator engine is completely bypassed, and the modifier/texture retrieves all information from the baked files.

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

  • Швидше використовувати збережені дані, а не постійно їх перераховувати.
  • It allows rendering of ocean data in external renderers.
  • It enables more advanced foam maps.

Файли даних

Simulation data is stored as sequences of OpenEXR image maps, one for each of displacement, normals, and foam (if enabled to be generated). Upon loading the data from these baked files, when a frame of the bake sequence is read, it is cached in memory. This means that accessing loaded frames subsequent times is fast, not incurring the overhead of drive access.

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

Запікання піни

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

Опції запікання

Старт – Start, Кінець – End
Frames of the simulation to bake (inclusive). The start and end frames of the bake are repeated when accessing frames outside of the baked range.
Шлях Кешу – Cache Path
Folder to store the baked EXR files in. The sequences will be in the form disp_####.exr, normal_####.exr, and foam_####.exr, where #### is the four digit frame number. If the cache path folder does not exist, it will be created.

Нутрощі імітування

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

Приклади

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