Basic Performance
Now I’ll talk a little about our performance.
To give an idea of the scene complexity, there are typically about 20 patches visible on screen in our terrain. If we increased the scale of our terrain, we might have more patches, but all the extra ones would be in the distance, and thus of the lowest LOD and wouldn’t massively affect performance.
This gives us around 70,000 triangles on-screen. Note that we’re not including any geometry which is rendered multiple times, such as for rendering a show pass.
At runtime, the tessellation of the terrain takes only half of one SPU - this time including processing the terrain for the shadow-map generation. Considering that the terrain accounts for much of the visible scene and contains a lot of geometry, this is a reasonably good use of resources.
Our decompression is more variable and tends to use up whatever SPU time is left over after the geometry and other operations (such as skinning, animation, etc.) The system expects a small amount of lag in the streaming, and in practice it happens quickly enough that it isn’t visible to the player.