Representing Breaking Waves In Computer Graphics / Daniel Blacker / 07/03/05 / Page 4

 

1. Abstract 2.Introduction 3.Ocean Waves 4.Waves in CG 5.Tool Development 6. Conclusion 7. References 8.Code

4.1 Overview

So far in computer graphics much work has been done to accurately reflect the surface of the ocean. Both in terms of rendering and animation techniques, the need of realistic fluid and wave effects has always been required from the film and games industries and has been put to very effective use in films like ‘The Perfect Storm’ and ‘The Day After Tomorrow’, and also in games such as ‘Kelly Slater’s Pro Surfer’. Most major 3d software packages will provide you with the tools needed to create a realistic ocean, with a great deal of control over the animation of the ocean’s elements. The representation of a breaking wave however, due to its complexity is still an unexplored and relatively new problem in computer graphics.

 


Fig.1 - Computer Animated Wave in Kelly Slater's Pro Surfer

A ‘spilling wave’ as described earlier lends itself to being animated with the conventional surfaces available to the user in 3d. These simple waves can be described sinusoidally and with relatively simple methods a user can deform a surface and have a degree of control over the timing and shape of the resultant wave. The problem arises when we move onto ‘plunging waves’ when the wave’s lip is thrown over the two surfaces must re-form and become a flat surface once again.

‘Early approaches in the field of ocean modelling and visualizing…were able to produce fairly realistic results for relatively quiet ocean surfaces (also called “deep water waves”) but plunged breaking waves could not be modelled correctly due to the sinusoidal assumption in the parametric surface’ [7]

‘In 3d one needs to perform rather complicated surgery to handle the splitting or merging of the surface.’ [1]

A solution to this problem has been to use 3d fluid solvers to produce water waves. This approach has considerable merit due to its ability to ‘capture and render the interface as a smooth implicit surface and also for the theoretical ease with which it can deal with topology changes [1].’ This solution also has its drawbacks. The fluid solvers generate dynamically correct results due to the way they are calculated using laws of physics, but by their nature allow for no input from the author except for the initial control conditions.

The methods we discuss in this report are concerned with the control over the animation of the breaking wave, and not the techniques involved with the secondary elements (spray, splashes foam etc). For the tool to be effective the user must be able to exert a certain degree of direction over the timing and shape of the desired wave.

‘In the best of worlds, an animator will have the freedom to choose how the free surface of a liquid will look like at a specific moment in time, where it will be located and how it’s general subsequent evolution will look like’ [1]

 

4.2 Effective existing methods

The concepts put forward by Viorel Mihalef et al. in the SCA paper ‘Animation and Control of Breaking Waves’ present an approach that allows for a high degree of user control in the simulation of plunging waves.

The authors use the idea that the wave is built up from cross sections:

‘We start from the reasonable assumption that each vertical slice of a three dimensional breaking wave (parallel to the wave direction of propagation) mimics the dynamics of a two dimensional one’ [1]

It is these 2d slices (fig 2) that are used to control the shape of the wave profile at any point down the wave’s length. They can be thought of in animation terms as the ‘Key-frames’ of the wave.


Fig.2 - 2d slices of a 3d wave Showing its Evolution Over Time
This technique has been exploited in similar areas of CG natural phenomena. The clouds created from the nuclear explosion in Industrial Light and Magic’s ‘Terminator 3’ were generated using a 2d slice of a fluid based simulation, and rotating around it’s centre axis to generate the three dimensional mushroom cloud. Again allowing more control over the outcome of the resultant shape but also reducing computational time.

The Author’s refer to this approach as the ‘Slice method’:

‘The slice method’s application to breaking wave simulation can be summarized as follows:

1. the animator builds the 3d shape of the breaking wave by choosing each of it’s vertical 2d slices from a library of waves; the animator can also preview the short time expected behaviour

2. the program generates the subsequent evolution by flowing forward in time based on the 3d Navier-Stokes equations.’ [1]


Fig.3 - the 'Slice Method' being demonstrated

This method allows the animator to control the shape of any part of the wave at any point during it’s breaking life-cycle, and then allow the 3d fluid solver to calculate the resultant wave created.

‘One can appreciate the level of geometric control that the method offers, allowing us to build 3d surf waves which would otherwise not be obtainable from standard methods.’ [1]

The key then to this approach is the accuracy of the 2d cross sections. In the paper the author’s utilise 2d fluid solvers, applying the laws of plunging waves to generate a ‘slice’ of the 3d wave. These 2d slices inherit the velocity information which can then be passed on to the 3d fluid solver when the final calculations are made. By modifying the control conditions given to the 2d fluid solver, different shaped wave slices can be created and a library of profiles can be chosen from when building a wave.

Using footage of the waves we looked at earlier and in collaboration with Viorel Mihalef, a cross section was generated (fig 4) to accurately represent the waves we wish to replicate with our tool. We can see a tangible example of the level of control available using Viorel’s method after a full simulation is run, and we can see the accuracy of the resultant mesh.(fig 5) The ability to study footage of a wave and then replicate it accurately in 3d is core to the tool we wish to create, as much as is possible we must take the concepts discussed in the paper ‘Animation and Control of Breaking Waves’ and apply them to the software available to us. 

Fig.4 - The 2d slice generated from our footage


Fig.5 - The Wave generated from Viorel Mihalef's Slice method using our 2d profile

< prev page
Page 4 - Waves in CG
next page >