A vertex requires more bandwidth and processing power to process than a fragment. Ensure that there are many pixels worth of fragment work for each primitive that is rendered. Doing so spreads the processing expense of the vertices over multiple pixels of output.
You must understand the following concepts:
- Bandwidth and processing vertex costs.
- Mesh Levels of Detail (LOD).
How to optimize triangle density
Try using the following optimization steps:
- Use models that create at least 10-20 fragments per primitive.
- Use dynamic mesh level-of-detail, using simpler meshes when objects are further away from the camera.
- Use techniques such as normal mapping to bake the required complex geometry during asset creation into a simpler run-time mesh with a supplemental texture for per-pixel lighting.
- To improve final image quality, favor improved lighting effects and textures instead of increased geometry.
Vertex processing steps to avoid
Do not generate micro triangles, as they increase bandwidth and processing power costs for little visual benefit.
The negative impacts of inefficient vertex processing
If the triangle density of a mesh is not properly optimized, then high volumes of geometry cause many problems for a tile-based renderer. For example: poor shading performance, low memory bandwidth, and high system energy consumption due to the memory traffic.