What does a 3D engine do?

A 3D engine task is to display the world on screen, but to be more accurate, it should be said that only the player's interest must be displayed. It obviously means that the 3D engine does only have to render a subset of the complete game world, which is the part visible in the viewport.

So, one of the tasks of a 3D engine, is to find as quickly as possible the visible subset of the game world. To achieve that, the world is divided into areas, which store the objects they fully enclose. Then the engine will find the areas visible from the camera point of view, and know which objects to render. This process is often referred to as culling.

Rendering is another task of the 3D engine. Once it has found the smallest subset of objects to be drawn, it must render them as quickly as possible. The independent hardware vendors (IHVs), AMD, NVIDIA, PowerVR, and others, have published many documents about the best methods to render a scene quickly, out of which two major points always come up: minimising your state changes, and batching your geometry.

There's yet one other task of the 3D engine, and that's to animate characters, which is mostly done today through skinning. Skinning is a process in which the bones of a skeleton are hierarchically transformed (so as to have a child bone move with its parent), and their resulting position and orientation used to place the vertices (the skin) of the characters at the right place. This process is often performed during frame updating.

Those three steps are performed in the following order: updating, culling, rendering. To be good, a 3D engine must perform all those steps efficiently. And to do that involves using a 3D API properly.