Generally, the world is map up of lots of triangles, and the map is a list of these triangles and the location in the world of each vertex. The process to draw them is:
- Setup the position of the 'camera' - if you were stood in the world, this is where you'd be in world position
- Transform the triangle vertices into 'camera space'
- Transform the triangles from 'camera space' into 'screen space' - this is where the perpective effect happens (distant things are smaller). The triangles become 2D at this point.
- Draw the 2D triangle onto a hidden screen.
- When all the triangles have been drawn, show the screen to the player.
The last step is usually tied to the monitor's frame rate, so that the process of showing the hidden screen is done during the v-blank interval - a concept derived from cathode ray tube monitors which allowed the cathode beam to move from bottom right to top left, this required rapidly, but not instaneously, changing voltages on the deflection coils at the back of the ray tube.
This is a really simple method. To get high performance you need to add things like hidden surface removal, occulsion, visible set determination, and so on. There's lots of algorithms involved in deciding what to draw.
Also, I said the world is made up of triangles, but it might not be stored on disk this way. Often, the triangles that are drawn to screen are defined at run time from higher order primitives, such as height maps, splines, tessalation, geometric primitives (e.g. a sphere, box, etc) and so on.
Dedicated hardware is not necessary - many early 3D games did it all in software (even on 8-bit CPUs with no FPUs). It just makes it quicker and easier to do.
Such a simple question. No easy answer.