Triton
Visual simulation library for ocean rendering.
Synchronizing Triton across multiple viewports or channels

In multi-channel simulators that render several viewports at once using multiple computers, you need to ensure that the ocean is rendered consistently across the different systems.

Fortunately, Triton::Ocean::Draw() takes an explicit time sample as its paramater. As long as you're synchonizing the time passed in across the channels, the display should be consistent.

There is a random component to the wave generation, that just uses the standard rand() function. Initialize each channel consistently with srand() and you should be fine. Alternately, refer to the documentation for the Triton::RandomNumberGenerator class - you may subclass this interface, and provide your own random number generator to Triton using the Environment::SetRandomNumberGenerator() method.

When running multiple windows on a single computer, you'll need to maintain separate Ocean and Environment instances for each individual graphics context in use. It's important that Ocean::Draw is called from the same thread and GL context that the Ocean and Environment were created in.