Limitations & Roadmap
An honest list of what the renderer does not do yet, why, and what substitutes for it today - so you can plan scenes around the real capabilities rather than assumed ones.
What the renderer does not do
No occlusion culling
Awaken culls by frustum (the octree) and, optionally, by size-aware distance - but not by occlusion. There is no depth pre-pass, no hierarchical-Z buffer, and no from-region visibility set, so an object fully hidden behind a wall is still submitted if it is inside the frustum and within its draw distance.
For dense interiors this means overdraw the GPU has to reject via the depth test rather than skip up front. In practice, static batching (fewer, larger draws) and distance culling keep this manageable, but a large hidden crowd behind a facade is not free.
No automatic LOD, decimation or HLOD
Awaken has LOD groups: a LodGroup component holds a list of child levels with screen-relative thresholds, and a system switches between them by distance. Unity LODGroup components import into it. What Awaken does not do is produce those levels for you - there is no runtime decimation that builds LOD1 from LOD0, and no hierarchical LOD (HLOD) that merges distant clusters into a single proxy mesh. A model with no authored levels is drawn at full triangle count at every distance.
The substitute for un-LODded content is size-aware distance culling: Awaken stops drawing an object once it is too small to matter (distance > radius x drawDistanceScale). That removes the cost of distant clutter, but it removes the object rather than degrading it, so at aggressive scales modular buildings can pop apart as their parts cross the threshold at slightly different distances.
Other current gaps
- Directional shadows only - the sun casts shadows; point and spot lights do not. There are no point-light shadow cubemaps. See Shadows.
- A per-fragment light budget unless clustered lighting is on - the default forward path shades the first
MAX_LIGHTSlights. Turning on Clustered lighting (Forward+) bins lights into a screen-tile x depth-slice grid on the GPU, so each fragment shades only the lights near it, up to 32 per cluster. See PBR & Lighting. - Forward shading - no deferred/G-buffer path and no screen-space reflection or deferred decal system.
- Screen-space only AO - SSAO is the only ambient-occlusion source; there are no baked AO maps or GI. See Post-Processing.
- No baked global illumination / lightmaps - indirect light is an ambient term, not a GI solution. The Ambient effect takes a sky and ground colour as well as an equator colour, so up- and down-facing surfaces can differ, but nothing is bounced.
- Texture compression is BC only - desktop BC1/3/4/5 at upload; KTX2/Basis (BC7 quality, ASTC/ETC2 for mobile) is planned, not shipped. Devices without BC fall back to RGBA8. See Performance Systems.
- Alpha ordering is per-object - transparents are sorted by the CPU octree order, not per-fragment; heavily overlapping transparents can still order imperfectly.
What is planned
The roadmap direction (see the engine's ship roadmap) includes closing these gaps over time:
- Occlusion culling - precomputed from-region visibility / a GPU hierarchical-Z path to skip hidden geometry up front.
- HLOD / automatic LOD - distant proxies and generated levels, so geometry with no authored LODs degrades in quality instead of vanishing.
- KTX2 / Basis textures - higher-quality and mobile-friendly compressed formats (ASTC/ETC2) beyond desktop BC.
These are aspirational - treat anything above marked "planned" as not present in the current build.
Designing around the gaps today
- Lean on static batching and distance culling for open worlds rather than expecting occlusion culling.
- Keep triangle counts reasonable at authoring time, since there is no runtime LOD to rescue a heavy mesh.
- Use one sun plus a few point lights, not dozens of dynamic lights.
- Author shadow-casting geometry as static where possible so it benefits from cached shadows.
See also
- Performance Systems - the culling and batching that stand in for the missing systems
- Shadows - the directional-only shadow model
- PBR & Lighting - the forward and Forward+ light paths
- Render Pipeline Overview - the full frame this section documents
- Troubleshooting & FAQ - symptoms and fixes for performance surprises