Hierarchical

Octree/Quadtree

By putting a object in a tree (quad/oct) one can cull the nodes in the tree and get a list of the visible objects. Each time the objects move they need to update the position in the tree.