Amaan Akram

aaOcean Suite v1.5, an ocean simulation system for Tessendorf waves in Softimage ICE and Mental Ray

aaOcean Suite is a collection of Mental Ray shaders that are driven by a custom C++ Softimage ICE deformer node that implements Jerry Tessendorf's paper on simulating ocean waves.

This particular implementation presents itself as a 3D deforming grid inside Softimage, which then feeds the results of the simulation to a collection of Mental Ray shaders for final rendering. One of the benefits of using this approach is that it opens up the possibility of making other 3D objects inside Softimage react with the ocean grid via ICE. Another benefit is the speed that it brings in setting up your ocean right inside Softimage on a low resolution ocean grid to set basic paramters like wave height and speed, rather than rendering a sequence of images in Mental Ray.

Features:
  • Open sea ocean waves based on measured/statistical wave movement data, approximated by the Philips frequency spectrum

  • Calm and non-folding, stormy ocean waves

  • Ability to detect region & direction of ocean spray (via Eigen vectors)

  • Mental Ray shaders for:
    - render-time displacement of ocean tiles
    - wave-peak foam
    - normal shader to render high-detail oceans on simple geometry
    - displacement shader to read in baked EXR displacement information

  • All shaders do render-time catmul-rom interpolation to produce smooth surfaces
  • All parameters fully animatable

  • Completely tileable grids for large ocean vistas

  • Ability to layer multiple oceans on a surface to easily break up visible

  • Custom multi-threaded code to help with performance at larger resolutions

Tessendorf's paper shows a method of making a tileable ocean grid with user-defined grid resolutions. This method is based on data collected over many years about how the surface of a typical ocean varies with time. Tessendorf shows that the data can be approximated with mathematical functions and then proceeds to lay down how the mathematics can be used to generate a realistic ocean.

Below are some quicktimes that have been rendered with aaOcean Suite and show how Tessendorf's waves look once implemented.

Quicktimes


This plugin is free for commercial and personal use. It is currently only available for Windows (x32 and x64) platforms. A port to Linux is planned for the near future.

If you spot any bugs, or would like to recommend a feature, please do get in touch with me. My contact information is at the top of this page.

a


Known issues:
-no issues reported as of yet

Acknlowledgements:
--FFTW.org, for providing a fast FFT C routine
--Julian Johnson, Sajjad Amjad and Afzal Wali for all the help & feedback
--Jerry Tessendorf himself -- www.tessendorf.org