
Here you will see the geometry pipeline of a game engine. With the help of data structures like BSP tree a part of the game geometry is selected to render and the selected part is passed to the geometry pipeline. The pipeline takes vertices as input. At first note that in our game there will be a coordinate system. It is called world coordinate system. The 3D models that are to be used inside the game use another coordinate system chosen by the modeler or level designer. It is called modeling coordinate system. The first task of the geometry pipeline is to convert modeling coordinates into world coordinates. This is the world transformation.
In this world coordinate system there is an additional coordinate system (sometimes more than one). This additional coordinate system belongs to the camera. The world space coordinates are relocated and rotated around the camera's view. This is the view transformation.
Now the next transformation gives us the illusion of distant objects appearing small and near objects look big. It is called projection transformation.
Now we need to remove any vertices that will not be visible. This process is called clipping. After clipping, the remaining vertices are scaled according to the viewport parameters and converted into screen coordinates. The screen coordinates are sent to the next stage of the pipeline for tasks such as shading and scan convertion.
Similar pipeline is implemented in graphics APIs such as OpenGL and Direct3D.