Skip to main content

Oceanology NextGen - QuadTree

πŸ”² GPU Tessellation
⚑ Performance
🌍 Infinite Scale

Dynamic mesh generation with GPU-accelerated QuadTree tessellation for optimal quality and performance.


Prerequisites​

RequirementDetails
EngineUE5.x (latest release)
PluginOceanology NextGen installed and configured
SceneOceanology Infinite Ocean placed in level
SkillsBasic understanding of LOD systems
About QuadTree

NextGen uses GPU-accelerated QuadTree tessellation that dynamically adjusts mesh density based on camera distance. Includes Far Mesh for horizon rendering at minimal GPU cost. Settings affect both visual quality and performance.


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 Meshβœ“Enables 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.0 - 10000.02400.0Larger = fewer tiles, less CPU overhead
Extent in Tiles4 - 12832Larger = more ocean coverage, more memory
Tessellation Factor1 - 86Higher = more triangles near camera
LODScale0.1 - 5.01.0Higher = more detail at distance

Far Mesh Parameters​

ParameterRangeDefaultDescription
Use Far MeshBooleanβœ“Toggle horizon mesh
Far Distance Mesh Extent100000.0 - 100000000.010000000.0Horizon distance
Far Distance Mesh Height Offset-100.0 - 0.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 3080)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.