
4.7 Scene Graph Compilers 307
a very dynamic and flexible system for artists to use. Flexibility does not come for
free. As with most things in computer science, you have trade-offs to consider. To
remain flexible, the nodes and other objects in a scene are dynamically allocated and
deallocated as needed. The final scene graph is invariably a collection of memory
blocks scattered about the heap. When you process such a scene graph in the game
application, you have memory fragmentation and you lose cache coherence because
of the large jumps in memory needed to traverse from one node to another. The scene
graph is convenient for development, but it is