Alexander Zhyrytovskyi


Not long time ago people can only dream about the thing that they can see 3-dimensional world inside of the screen of the computer. Computers at that time can display only 256 colors on their screens, they can work only with integer numbers, and their computation speed was not fast enough. This dream comes true with the help of Id Software company. This company started to build its games by using of simplified 3D graphics. All these simplified 3D graphics were calculated by the software 3D rendering algorithms which were not published by these company. At that time there was a global goal to speedup calculations for 3D graphics and to make it look more realistic. The solution for this comes from hardware companies. Hardware companies started to work on hardware 3D accelerators, which can render 3D graphics much faster than software algorithms. These 3D accelerators are fully patented, so that no one knows how they are implemented inside. At that time there were proposed two 3D rendering interfaces: Direct3D and OpenGL. And manufacturers of graphic cards started supporting both of these interfaces. Lots of game development companies started to use these interfaces. And also Id Software company started to redesign its game engine to support these interfaces to take place in game market. From that time, everybody started to use 3D accelerators with built-in 3D rendering features and as a result everybody forgot about software 3D rendering algorithms.

Nowadays the situation come in the following way, that most of the algorithms which are used in 3D games are not published on paper, and all the 3D accelerator internal algorithms are patented. All modern 3D graphics are fully conserved by the video cards, so that 3D rendering could not be developed in other way.

The goal of this article is explanation of how 3D graphics can be displayed on the screen of the computer.


3D; graphics; rendering; mesh; z-buffer; texture; projection; perspective; triangulation; triangle drawing

Full Text:



Ammeraal, L. (1986). Programming Principles in Computer Graphics. New York: Wiley, 168.

Angel, E., Shreiner, D. (2012). Interactive Computer Graphics: A Top-Down Approach with OpenGL. Addison-Wesley.

Botsch, M., Kobbelt, L., Pauly, M,. Alliez, P., Lévy, B. (2010). Polygon Mesh Processing. A K Peters/CRC Press, 250. doi: https://doi.org/10.1201/b10688

Glaeser, G. (1994). Fast Algorithms for 3D-Graphics. Springer-Verlag, 306. doi: https://doi.org/10.1007/978-3-662-25798-2

Hearn, D., Baker, M. P. (1994). Computer Graphics. Prentice Hall.

Horowitz, E., Sahni, S., Mehta, D. (1995). Fundamentals of Data Structures in C++. Computer Science Press, New York.

Kernighan, B., Ritchie, D. (1988). The C Programming Language. Prentice Hall, Englewood Cliffs NJ.

Lafore, R. (1991). Object-Oriented Programming in Turbo C++. Waite Group Press, Mill Valley CA.

Laszlo, M. J. (1996). Computational Geometry and Computer Graphics in C++. Prentice Hall, Eaglewood Cliffs NJ.

Luse, M. (1993). Bitmapped Graphics Programming in C++. Addison-Wesley, Reading MA.

Lippman, S. B. (1991). C++ Primer. Addison-Wesley, Reading MA, 630.

Mortenson, M. E. (1989). Computer Graphics: An Introduction to the Mathematics and Geometry. Industrial Press, New York.

Norling, E. R. (1939). Perspective Made Easy. Mineola, 228.

Porev, V. (2002). Kompiuternaia hrafyka. Sankt-Peterburg: BHV-Peterburg.

Kvicinskiy, E. Triangle drawing algorithm. Available at: http://grafika.me/node/67

Z-buffer channel. Available at: http://support.nextlimit.com/display/maxwell4/Z-buffer+channel

DOI: http://dx.doi.org/10.21303/2461-4262.2018.00680


  • There are currently no refbacks.

Copyright (c) 2018 Alexander Zhyrytovskyi

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

ISSN 2461-4262 (Online), ISSN 2461-4254 (Print)