# Which Bake Mode should I Choose?

```


+--------------------------------------------------+
|             Continuous AABB (Bubble)             |
+--------------------------------------------------+
 Player / Camera (Center Target) moves
 ──────────────────────────────────────────────
 [Dynamic Surface A]   [Dynamic Surface B]
  (terrain mesh)        (building mesh)

 -> Coordinator tracks target position
 -> Service collects geometry from all
    registered Dynamic Surfaces inside the
    moving AABB
 -> Only those surfaces overlapping the bubble
    are baked

 Result: Small "bubble" navmesh moves around
         with the player.
```

```
+--------------------------------------------------+
|                Grid Cells (Streaming)            |
+--------------------------------------------------+
 World divided into fixed cells (e.g. 32x32)
 ──────────────────────────────────────────────
 [Dynamic Surface X]   [Dynamic Surface Y]
  (chunk prefab)        (spawned tile)

 -> Coordinator determines which cells are
    inside the active window (e.g. 3x3)
 -> Service collects geometry only from
    Dynamic Surfaces overlapping those cells
 -> Surfaces auto-register/unregister as tiles
    are spawned/despawned

 Result: Navmesh streams in/out around player.
```

```
+--------------------------------------------------+
|               One Shot (Full Scene)              |
+--------------------------------------------------+
 Entire level baked once at startup or on-demand
 ──────────────────────────────────────────────
 [Dynamic Surface 1]   [Dynamic Surface 2]   [3..N]

 -> Coordinator triggers a single bake across
    all registered Dynamic Surfaces
 -> Surfaces remain registered but no further
    automatic bakes occur
 -> Manual MarkDirty() still possible

 Result: One large navmesh covering the whole map.
```

***

#### Key Takeaways

* **Continuous AABB** → Only surfaces intersecting the moving bounding box contribute.
* **Grid Cells** → Only surfaces intersecting active cells contribute; good for procgen/streaming.
* **One Shot** → All surfaces contribute once at startup; no continuous updates.

### When to Use Which Mode

| Bake Mode           | Best For                                                                                                                   | How It Works                                                                                                         | Trade-offs                                                                                               |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
| **Continuous AABB** | Small/medium handcrafted maps where you just need navigation near the player (e.g. dungeons, arenas, compact open worlds). | Keeps a moving bounding box (“bubble”) centered on a target (player/camera). Only surfaces inside the box are baked. | Simple & efficient, but navmesh coverage is limited to the bubble. AI outside must wait until in range.  |
| **Grid Cells**      | Large, procedural, or streaming environments (e.g. tile-based procgen, open terrain with chunks).                          | Divides the world into cells and keeps a configurable window (e.g. 3×3 cells) around the target baked.               | Great for infinite/procedural worlds. More setup complexity. May need Seam Links if tiles don’t overlap. |
| **One Shot**        | Large handcrafted maps where you want one complete navmesh built at runtime (e.g. static open-world levels).               | Bakes all registered surfaces once at startup or on-demand. No automatic rebakes unless manually triggered.          | Simple setup, guaranteed full coverage. Higher upfront bake cost and memory usage.                       |

***

#### Quick Tips

* **Start with Continuous AABB** if you’re prototyping — minimal setup, immediate results.
* **Switch to Grid Cells** if your world is larger than a single navmesh bubble or streams dynamically.
* **Use One Shot** if your map is handcrafted, static, and too large to pre-bake in editor.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://megacrush.gitbook.io/megacrush-unity-assets/runtime-navmesh-baker/runtime-navmesh-baker-user-manual/getting-started/which-bake-mode-should-i-choose.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
