A couple terms for those that don't understand. The reason I am posting this is that if the person posting actually had a bit of knowledge about how this was done he probably wouldn't have even made the post.
Level of Detail(LOD) This is when you get closer to an object the more detail you see. An example would be if you have a 16x16 surface if you are with in 100 blocks you would see all 16 blocks. If you are between 100 and 200 away you may see it rendered as 4 blocks. and greater than 200 away you see it rendered as a single block. Technically with opengl 3.3+ there is only triangles.
Space partitioning. There are various types these include but are not limited to
binary space partitioning(BSP),
quad tree, oct tree and
Bounding volume hierarchy(BVH) What these do in various ways is split the objects up into volumes in space. Each has their uses and some like BSP have greater draw backs. It can actually increase the amount of geometry in a scene because it can require objects and surfaces to be divided into multiple areas.
Then you should look up
Z-buffer. A z-buffer is an area of memory in video that is used to determine which pixel is shown as the most forward. When you hear of Z-fighting that is when two surfaces usually in the distance are coming across as being the same distance from the view point and you end up seeing triangles or geometry popping back and forth it can look like a saw tooth effect on objects. The reason for this is the way the Z-buffer is built. Originally the amount of space on video cards for z-buffers was limited so they designed it so that the buffer gave more detail and accuracy for objects closer to the view point. With modern hardware there is the ability to use a flat z-buffer its up to the api to allow access to it. Not all do. Z-buffers use a near and a far plane. Anything closer than the near plane is culled and anything farther than the far plane is also culled.
Z-culling is removing objects based on distance away.
Z-buffering - Wikipedia, the free encyclopedia
View frustum is the field of view visible from the view point. Depending on the type of view you are using it can be different shapes.
View frustum culling is the removal of any objects not visible inside the view frustum.
Then you also have
back-face culling. This is the removal of object or surfaces facing away from the viewer.
The direction of the object is determined by the order in which the vertices are listed either in clockwise or counter clockwise order.
Not all of these are implemented by every graphics engine. When they are implemented there is an order in which they are implemented.
Since some of these are done on a hardware level they are implemented last.
LOD, Space partitioning and view Frustum culling are designed to reduce what is sent to the hardware. They are implemented in Space partitioning, View frustum and LOD order. The resulting scene is then sent to the hardware. In which the z-buffer and back face culling can be implemented.
Not all these steps are used in every system. Also some may reverse LOD and view frustum. Not everyone implements back-face culling and even if they do it may not be on every object or surface.
That doesn't even cover all the stuff done with shaders these days and the various types of shaders. I tried to simply cover the most common methods of culling objects and surfaces from a scene. Notice I said most common and not all. The fact is a book could be wrote on each of those topics. In fact several books have been written.