Skip to main content

Oceanology Next-Gen — QuadTree

Last updated: 2025-12-10

Prerequisites

  • Unreal Engine 5.6 or newer.
  • Oceanology Next-Gen installed and configured (see the Setup page).
  • At least one Oceanology Infinite Ocean placed in your level.
  • Basic understanding of LOD systems and mesh tessellation concepts.

Notes

  • Oceanology Next-Gen uses a GPU-accelerated QuadTree tessellation system that dynamically adjusts ocean mesh density based on camera distance. This ensures maximum detail near the viewer while maintaining performance for distant water.
  • The QuadTree divides the ocean surface into hierarchical tiles that subdivide or collapse based on screen-space error and distance thresholds.
  • The system includes a Far Mesh option for rendering the horizon with minimal GPU cost, extending visible ocean to extreme distances.
  • QuadTree settings directly affect both visual quality and performance — understanding these parameters allows you to optimize for your target hardware.
  • The tessellation is view-dependent, meaning it recalculates each frame based on camera position and orientation.

Step-by-step

1. Access QuadTree settings

Select OceanologyInfiniteOcean in the Outliner. In the Details panel, locate the Quad Tree category. This section contains all tessellation and LOD parameters.

Expand Quad Tree Settings to view the full configuration options.

Quad Tree Settings Parameters:

ParameterDefaultDescription
Tile Size2400.0Base size of each QuadTree tile in Unreal units. Larger tiles cover more area but with less base detail.
Tile Size Effective3394.11...Calculated effective tile size after LOD adjustments. Read-only diagnostic value.
Extent in Tiles32 x 32Number of tiles in X and Y directions from the center. Total coverage = TileSize × ExtentInTiles × 2.
Tessellation Factor6Maximum tessellation subdivision level. Higher values create denser meshes near the camera. Range: 1-8.
LODScale1.0Multiplier for LOD distance calculations. Higher values push LOD transitions further from camera.
Force Update Count10Number of frames to force QuadTree updates after camera movement. Ensures smooth transitions.
Check for Update Interval0.0Time between QuadTree update checks in seconds. 0.0 = check every frame.
Force Collapse Density Level-1Forces all tiles to collapse to a specific density level. -1 = automatic (disabled).
Max Wave Height Multiplier5000.0Multiplier for wave height in LOD calculations. Ensures tessellation accounts for vertical displacement.

Far Mesh Settings:

ParameterDefaultDescription
Use Far MeshEnables a low-detail mesh for the distant horizon. Essential for infinite ocean appearance.
Far Distance Mesh Extent10000000.0Size of the far mesh in Unreal units. Default covers 10,000 km for true horizon rendering.
Far Distance Center Mesh Extent0.99995Percentage of far mesh that uses the center (higher detail) section.
Far Distance Mesh Height Offset-10.0Vertical offset for the far mesh. Negative values prevent z-fighting with the main ocean.

QuadTree Settings panel

2. Understand the QuadTree visualization

The QuadTree system creates a dynamic mesh that adapts to camera position. When viewed in wireframe mode, you can see how tiles subdivide near the camera and merge in the distance.

Wireframe Visualization Key:

  • Dense mesh (near camera) — Maximum tessellation for wave detail and close-up quality.
  • Medium density (mid-distance) — Balanced tessellation for good visual quality with reduced triangle count.
  • Sparse mesh (far distance) — Minimal tessellation where detail isn't visible, maximizing performance.
  • Color variation — Different colors represent different LOD levels in the QuadTree hierarchy.

How QuadTree Works:

  1. Initial Grid — The ocean starts as a grid of base tiles defined by Tile Size and Extent in Tiles.
  2. Distance Evaluation — Each frame, the system evaluates camera distance to each tile.
  3. Subdivision — Tiles close to the camera subdivide into 4 smaller tiles, up to Tessellation Factor levels.
  4. Collapse — Distant tiles merge into larger, lower-detail tiles.
  5. Seamless Stitching — Adjacent tiles of different LOD levels are stitched to prevent cracks.

Performance Characteristics:

  • Triangle count scales logarithmically with distance, not linearly.
  • Near-camera detail remains constant regardless of ocean size.
  • GPU tessellation is more efficient than CPU-based LOD systems.

QuadTree wireframe visualization


QuadTree Parameter Reference

Core Tessellation Parameters

ParameterRangeDefaultPerformance Impact
Tile Size500.010000.02400.0Larger = fewer tiles, less CPU overhead
Extent in Tiles412832Larger = more ocean coverage, more memory
Tessellation Factor186Higher = more triangles near camera
LODScale0.15.01.0Higher = more detail at distance

Far Mesh Parameters

ParameterRangeDefaultDescription
Use Far MeshBooleanToggle horizon mesh
Far Distance Mesh Extent100000.0100000000.010000000.0Horizon distance
Far Distance Mesh Height Offset-100.00.0-10.0Z-fighting prevention

Performance Tuning

Optimization Strategies

GoalParameter Adjustments
Increase FPSReduce Tessellation Factor to 4, increase Tile Size to 3200
Better close-up detailIncrease Tessellation Factor to 8, reduce Tile Size to 1600
Larger ocean coverageIncrease Extent in Tiles to 64, enable Use Far Mesh
Reduce memory usageReduce Extent in Tiles to 16, increase Tile Size
Smoother LOD transitionsIncrease Force Update Count to 20, set LODScale to 1.5

Hardware Recommendations

Hardware TierTessellation FactorTile SizeExtent in Tiles
High-End (RTX 4080+)82000.064
Mid-Range (RTX 3070)62400.032
Entry (RTX 3060)43200.024

Preset Configurations

ScenarioTile SizeExtentTess. FactorLODScaleNotes
Maximum Quality1600.06481.5Highest detail, requires powerful GPU
Balanced (Default)2400.03261.0Good quality/performance balance
Performance3200.02440.8Optimized for consistent FPS
Cinematic2000.04882.0Maximum detail for film rendering
Mobile/Low-End4000.01630.5Minimal GPU load

Interaction with Other Systems

SystemInteraction
WavesTessellation must be sufficient to represent wave displacement. Low tessellation = blocky waves.
BuoyancyWave sampling is independent of tessellation but visual quality depends on mesh density.
MaterialsHigher tessellation allows more accurate per-vertex calculations in the ocean shader.
World PartitionQuadTree is compatible with World Partition streaming for massive worlds.
RenderingTriangle count directly affects GPU vertex/pixel shader workload.

Troubleshooting

ProblemLikely CauseSolution
Waves look blocky/angularTessellation Factor too lowIncrease Tessellation Factor to 6 or higher
Ocean doesn't extend to horizonFar Mesh disabled or too smallEnable Use Far Mesh, increase Far Distance Mesh Extent
Visible seams between tilesLOD stitching issueEnsure Force Update Count is at least 10
Poor performanceToo many trianglesReduce Tessellation Factor or increase Tile Size
Ocean pops/flickersUpdate interval too highSet Check for Update Interval to 0.0
Z-fighting at horizonFar mesh height conflictAdjust Far Distance Mesh Height Offset to -20.0
Ocean too smallExtent in Tiles too lowIncrease Extent in Tiles or enable Use Far Mesh

Technical Deep Dive

QuadTree Algorithm

The QuadTree tessellation follows this hierarchical structure:

Level 0: 1 tile (root)
Level 1: 4 tiles (2×2)
Level 2: 16 tiles (4×4)
Level 3: 64 tiles (8×8)
...
Level N: 4^N tiles

Subdivision Criteria:

  • Screen-space error threshold based on camera distance.
  • Wave height consideration via Max Wave Height Multiplier.
  • Frustum culling to skip off-screen tiles.

Memory Footprint:

  • Base memory: Extent in Tiles² tile structures.
  • Vertex buffer scales with Tessellation Factor.
  • Far mesh adds minimal overhead (single low-poly plane).

Coverage Calculation

Total ocean coverage can be calculated as:

Coverage = Tile Size × Extent in Tiles × 2
Example: 2400 × 32 × 2 = 153,600 Unreal units (1.536 km per axis)

With Use Far Mesh enabled, visual coverage extends to Far Distance Mesh Extent (default 10,000 km).


Summary

In this guide, you learned how to:

  1. Access QuadTree settings — Find the Quad Tree category in the ocean actor's Details panel.
  2. Configure tile parameters — Adjust Tile Size, Extent in Tiles, and Tessellation Factor for your needs.
  3. Understand LOD behavior — Learn how the QuadTree subdivides and collapses based on camera distance.
  4. Enable the Far Mesh — Extend ocean visibility to the horizon with minimal performance cost.
  5. Optimize for performance — Balance visual quality with frame rate using the provided presets.
  6. Troubleshoot common issues — Diagnose and fix blocky waves, seams, and performance problems.

With proper QuadTree configuration, Oceanology Next-Gen can render infinite oceans with consistent detail near the camera while maintaining excellent performance across the entire visible range.