Virtualized geometry for Unity
NanoGeo
NanoGeo is a virtualized geometry system for Unity. It lets you build scenes with billions of triangles, from one billion up to tens of billions, using extremely detailed meshes. No LODs to make by hand.
How it works
Split into clusters
NanoGeo splits every mesh into small clusters of up to 128 triangles and builds many levels of detail ahead of time, in the Editor. You add the NanoGeo Mesh component and nothing else.
Only what you can see
While the game runs, the GPU picks only the detail you can actually see on screen, skips what is hidden or off screen, and draws the rest.
Cost follows the screen
The cost depends on screen size, not on how many triangles are in the scene. In our benchmark NanoGeo drew only about 92 thousand triangles per frame out of about 500 million.
How much faster
Benchmark scene with 381 rocks of 1.3 million triangles each, 499 million triangles in total. NVIDIA RTX 5070, 1080p, shadows on.
500
FPS
NanoGeo
GPU time per frame: 1.73 ms
270
FPS
GPU Resident Drawer with LOD Groups
GPU time per frame: 3.72 ms
6
FPS
Standard MeshRenderers
GPU time per frame: 161.5 ms
NanoGeo drew only about 92,000 triangles per frame out of about 500 million.
When to use it
From millions up to billions of triangles: scanned or sculpted models and large detailed environments. The more geometry you have, the bigger the gain.
- Open worlds and large environments with lots of detailed props
- Photogrammetry and 3D scans used straight from the scan
- High poly sculpts from ZBrush or Blender, with no retopology or LODs
- Architecture, interior and product visualization
- Real time cinematics and trailers
- Big asset packs: add NanoGeo to hundreds of prefabs in one click
Not a good fit for light scenes
- fixed GPU time per frame
- 0.3 ms
- extra video memory
- 0.5 GB
- FPS in a light scene
- 300 → 275
These costs are fixed, even when there is little to draw. At 60 FPS the difference is less than 1 FPS.
If your scene already runs well with normal models and LODs, you may not need NanoGeo. Use Tools > NanoGeo > Disable NanoGeo to compare in your own scene.
What you get
- One component
- Your MeshRenderer and materials stay as they are.
- HDRP and URP
- Lighting, shadows, decals, SSAO, light probes, TAA and post processing look the same as before.
- Materials
- HDRP Lit, URP Lit and HDRP Shader Graph, including alpha clipping (leaves, fences) and double sided materials.
- Objects
- LOD Groups, mirrored objects and moving objects.
- Occlusion culling
- Done on the GPU, so objects hidden behind others are skipped automatically.
- NanoGeo Mesh Prefab
- Sets up whole prefabs or folders of prefabs, with warnings and one click fixes.
- Diagnostics
- Visualization modes, statistics and GPU timings show what NanoGeo is doing.
- In the package
- Demo scenes for HDRP and URP, benchmark tools and a full user guide as a PDF.
Requirements and limits
- Unity
- Unity 6000.0.84f1 or newer, which is every Unity 6 version.
- Render pipeline
- HDRP 17 or URP 17. The Built-in Render Pipeline is not supported.
- Baking
- Windows Editor, 64 bit. Games built for other platforms can use data baked on Windows.
- Graphics API
- Direct3D 12 or Vulkan for everything. Direct3D 11 and Metal work without the software rasterizer, a speed up for very small triangles.
- Not supported
- These objects keep their normal MeshRenderer: skinned meshes and blend shapes, transparent materials, terrain, tessellation, URP Shader Graphs, hand written shaders, and objects with baked lightmaps (use light probes instead).
Asian Dynasty Environment by Befour Studios, used here to show NanoGeo in a real scene. The environment is not included with NanoGeo.
meshoptimizer by Arseny Kapoulkine, MIT license. It runs in the Editor only and is not included in builds.
Start a new story
Tell us what you want to build.
A game idea, a data problem, or a system that has been running for years and needs a partner,... just describe it briefly, and you’ll receive a response directly from us.
Start a project