Modern simulations, especially in the military training space, make heavy use of simulated sensors. Often, these sensors operate at high magnification levels.

Zooming into a distant part of the scene presents some unique challenges in computer graphics. In Triton’s case, the problem is that you end up zooming in on distant parts of the ocean where we have less geometry in order to preserve performance. This can lead to artifacts where the ocean waves look like giant triangles, and where the water texture is stretched out too much.

However, there are solutions if you run into this. The first step is to ensure you calling Triton::Environment::SetZoomLevel() every frame. If your scene is magnified 10x compared to its “normal” field of view, then you would pass in 10.0 here. If no zoom is applied, you would pass in 1.0. This tells Triton to adjust its various switch distances for LOD schemes, and to adjust how noise is applied in the distance to combat aliasing.

You will also want to call Triton::Ocean::SetQuality(BEST) to ensure you have as much geometry as possible to work with in your zoomed-in scene.

Just using SetZoomLevel() and SetQuality(BEST) will handle most cases, but if you need to push your zoom to the point where your field of view is below 5 degrees or so, further steps may be required.

The next thing to try is enabling a mode in Triton where the grid that represents the ocean’s geometry as low altitudes (or in flat coordinate systems) is centered around the foreground of the camera’s view, instead of at the camera’s actual location. Triton will then concentrate its geometry there, where it is needed the most. To enable this, you’ll need to edit your Resources/Triton.config file, and set both adjust-mesh-position-for-zoom and ellipsoid-double-precision to “yes”. Be sure to use Triton version 4.62 or newer for this capability.

And if that still doesn’t meet your needs, the most dramatic option is to disable the use of Triton’s ocean mesh entirely, and instead tell it to use a projected grid in screen space at all times. We try to discourage this as it becomes very sensitive to numerical accuracy issues, but many applications may be able to get away with it. For this mode, set use-mesh to “no” and ellipsoid-double-precision to “yes”. In this mode, the geometry resolution of the ocean remains fixed no matter what.