Visualisation of navigation data is a complex task. The displayed graphics should be appealing, informative, running at a high frame rate, and are typically rendered on low-power devices. This whitepaper deals with efficient memory allocation and rendering for navigation systems; specifically on the Tile-Based Deferred Rendering (TBDR) architecture of the PowerVR chipset families.

Any navigation demos specified in this whitepaper can be found in the PowerVR SDK and implement several optimisation techniques described in the following sections. The techniques demonstrated for data acquisition, geometry generation, memory optimisations, and rendering optimisations illustrate possible approaches, although possible alternatives will be highlighted where suitable for specific use-cases.

For further reading and a more comprehensive overview of general rendering optimisations, it is recommended to look at the documents packaged in the PowerVR SDK, particularly the application development recommendation whitepapers. These offer a good understanding of performance pitfalls and general-purpose optimisations when developing for mobile graphics solutions. Furthermore, the references section of this document contains useful links for further reading around related topics.

Point-of-view types

There are several high-level approaches to take when rendering a navigation system. Approaches mainly differ in the rendered point of view and level of detail for textures and models. Choices taken in selecting an approach are often driven by different minimum hardware specifications required for an appealing frame rate on the target device. The following gives an overview of the most common perspective types:

2D top-down:
The standard perspective found in many navigation devices. It provides a bird's eye view of terrain and pertinent objects such as roads, signs, and landmarks, which are defined along a single plane. The field of view tends to be very limited and can be rendered using an orthographic projection scheme.
This approach blends 2D features, such as a single plane of terrain, with a limited 3D perspective, allowing for the desirable addition of simple 3D landmarks. The camera is slightly tilted up to offer a wider field of view (typically in the direction of travel). Due to the viewing angle and the perspective projection, artefacts such as line-aliasing must be considered.
The full 3D approach allows for both 3D rendering and 3D terrain features. For example, terrain coordinates can exist along the z-axis making it possible to illustrate landscape features such as elevation. Panoramas, simple shadows, and skyboxes can also be introduced to augment the scenery and efficiently achieve a higher level of realism.

This guide covers efficient implementation techniques for each of the above approaches, although optimisation techniques are often applicable to all three. Where appropriate, example algorithms have been used to demonstrate potential implementations for specific perspectives. Any limitations regarding what perspective a technique can and should be applied to will be clearly described.