Application side simplification

From geometry/scene database to the set of triangle sent to the pipeline

geometry database gather necessary object information (the geometry database includes all the geometric primitives of the objects)

Occlusion culling

a visibility test that determines whether an object is partially or completely occluded (covered) by some object in front of it.

visibility check / view frustum

on each object. This can be accomplished by determining if the object is in the view frustum (completely or partially).

Portals or visibility sets, potentially visible sets (PVS) .... Octree, BSP Tree

The original Quake used what were called potentially visible sets (PVS) that divided the world into smaller pieces. Essentially, if the game player was in a particular piece of the world, other areas would not be visible, and the game engine wouldn't have to process data for those parts of the world.

bounding boxes

Check the bounding box intead of the object

Level of Detail, referred to as LOD

The distance from the object to the view camera will dictate which LOD level gets used.

Triangle strips and fans

because connected triangles share vertices...

higher-order surfaces : Splines, Nurbs, Beziers, parametric bicubic surfaces, n-patches

These are curved primitives that have more complex mathematical descriptions, but in some cases, this added complexity is still cheaper than describing an object with a multitude of triangles. These primitives have some pretty odd sounding names: parametric polynomials (called SPLINEs), non-uniform rational b-splines (NURBs), Beziers, parametric bicubic surfaces and n-patches.