This course introduces a stepwise approach to develop a 3D-graphics engine. We start by introducing 2D-images, move on to colorless 3D-line drawings, colored 3D-line drawings and genuine 3D-images based on Z-buffering. We also explain how to add various types of lighting, shadow and textures to our 3D world. The mathematical concepts required are discussed in detail. Ray casting and ray tracing are NOT discussed. During the practice sessions, the students develop their own 3D-graphics engine in C++.