Le modificateur Ocean¶
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.
Options¶
Géométrie¶
- Géométrie
- Generate
Crée un grillage maillage carrelé qui correspond exactement à la résolution des données de simulation.
Lors de la génération d’une surface maillage, l’objet maillage existant est complètement outrepassé par la grille de ocean. Un canal UV est aussi ajouté, faisant la correspondance entre l”UV space (0.0 à 1.0) et la grille de simulation.
- 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
- Utilise la géométrie existante plutôt que la remplacer. Les sommets sont affichés sur l’axe Z local.
- 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
- La profondeur constante du plancher de l’océan sous la zone simulée. Les valeurs basses simulent des eaux moins profondes en produisant des détails de fréquence plus élevée et de plus petites vagues.
- Random Seed
- Un seed différent va produire un résultat de simulation différent.
- Resolution
Le contrôle principal de qualité vs vitesse dans le moteur de simulation. Ceci détermine la résolution des grillages 2D générés par la simulation.
The internal grids are powers of two of the resolution value, so a resolution value of
16
, will create simulation data of size256×256
. The higher the resolution, the more details will be produced, but the slower it will be to calculate.Note
L’utilisation de l’option de géométrie du modificateur Generate, cette valeur de résolution détermine aussi la résolution de la surface du maillage générée, égale à la résolution des données internes de simulation.
- Size
- un simple facteur de mise à l’échelle qui n’affecte pas la hauteur des vagues ou le comportement de la simulation.
- 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
- The choppiness of the wave peaks. With a choppiness of 0, the ocean surface is only displaced up and down in the Z direction, but with higher choppiness, the waves are also displaced laterally in X and Y, to create sharper wave peaks.
- 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.
- La vague la plus petite
- Une limite minimale pour la taille des vagues générées. Agit tout comme un filtre low-pass, supprimant le détail de vague de fréquence plus élevée.
- Vitesse du vent
- La vitesse du vent en mètres/seconde. Avec une vitesse faible, les ondes sont limitées à des ondes de surface plus petites.
Simulation Data Generation Options¶
Par défaut, le simulateur génère uniquement les données de déplacement, puisqu’il prend la moindre quantité de travail et donne le retour le plus rapide. Des données de simulation supplémentaires peuvent également être générées pour le rendu.
- Génération de normales
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.
- Génération de l’écume
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.
- Couverture d’écume
- 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).
- Nom du calque de données d’écume
- Nom optionnel pour le calque de données de sommet, utilisé par le Modificateur Ocean pour enregistrer les maps d’écume en tant que couleurs de sommets. Ceci est requis pour l’accès aux données d’écume dans le moteur de rendu.
Précalcul¶
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.
Le précalcul peut être avantageux pour quelques raisons :
- Il est plus rapide d’utiliser les données enregistrées plutôt que de les recalculer.
- Il autorise le rendu des données de l’océan avec des moteurs de rendu externes.
- Il active des maps d’écume plus avancés.
Fichiers de données¶
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.
Précalcul de l’écume¶
Le précalcul offre aussi des capacités d’écume améliorées. Le simulateur d’océan tire seulement des données pour la trame courante. Dans le cas de map d’écume, ceci représente les cimes des crêtes de vague pour la trame donnée. En réalité, après la création de l’écume par les interactions des vagues, il persiste à la surface des vagues pendant un moment, à mesure qu’il se dissipe. Avec le précalcul il est possible d’approcher ce comportement, en accumulant de l’écume des trames précédentes, le faisant persister sur la surface.
Options de précalcul¶
- Début, Fin
- 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.
- Chemin du cache
- Folder to store the baked EXR files in.
The sequences will be in the form
disp_####.exr
,normal_####.exr
, andfoam_####.exr
, where####
is the four digit frame number. If the cache path folder does not exist, it will be created.
Moteur interne de simulation¶
Le simulateur lui-même utilise les méthodes FFT pour générer de façon interne les informations de simulation de grillages 2D, très semblables aux maps de texture 2D. Le simulateur peut générer trois types de données : déplacement, normales et données supplémentaires, qui sont utilisées pour calculer les intersections de crêtes de vagues (càd écume). Après la simulation, ces maps sont utilisés pour déplacer la géométrie de la surface de l’océan en 3D, et peuvent aussi être utilisés pour le shading via la texture de Ocean. La moteur interne de simulation est multithreadé avec OpenMP pour exploiter les cores multiples.
Exemples¶
Simulated and baked to image maps in Blender, rendered in 3Delight.