AGI Components with Insight3D Alpha 2008 r8
Performance

Insight3D is built for performance. During development, when a trade-off was made between performance and something else, performance almost always won. This overview provides guiding principles and techniques to maximize the performance of your application.

Techniques in the following table provide view-independent performance improvements. Regardless of what is visible in the scene, these techniques are beneficial.

Topic Description
Batching Using one primitive to represent multiple objects can drastically improve performance.
Vertex Update Provide the most appropriate AgGxVertexUpdate enumeration when initializing a primitive for the best performance of both static and dynamic primitives.

The following techniques provide view-dependent performance improvement. Their benefit is dependent on the viewer position and camera orientation.

Topic Description
Object Culling Culling objects that are not visible provides significant view-dependent performance improvements.
Backface Culling Culling triangles that face away from the viewer can provide modest performance gains.

Technical Note: All timings were taken with a Dual-Core Xeon 2.66 GHz with a GeForce 8800 GTX with vertical sync forced off, using a development version of AGI Components with Insight3D alpha. Performance will vary from system to system. Performance will also depend on the CPU and GPU usage of your application. For example, optimizing the fragment processing on the GPU may have no affect on a CPU-bound application.