Overview of key algorithms used in computer graphics: classification and applications
Groups of Computer Graphics Algorithms
There are two levels of computer graphics algorithms: lower and upper. The purpose of the lower group is to implement such graphical primitives as lines, circles, fills, etc. These algorithms have been implemented in the graphics libraries of high-level programming languages, as well as at the hardware level in the graphics processors of workstations. The upper-level group includes algorithms for removing invisible lines and surfaces. It should be noted that object output in these algorithms is provided by primitives that implement lower-level algorithms. Therefore, one should take the selection and development of efficient lower-level algorithms seriously.
A characterization of the features of lower-level algorithms is helped by their grouping within the level carried out by members of one programmers' forum [www.cyberforum.ru/]. The first group includes the simplest algorithms, distinguished by ease of implementation and mathematical methods of derivation. Unfortunately, such implementations cannot boast low memory requirements or high computational throughput. The second group uses more complex mathematical approaches, often heuristic ones, but these algorithms are already more efficient than those of the first group. The third group consists of algorithms that can be implemented at the hardware level without major difficulties; representatives of this group are those that allow parallelization, are recursive, or can be implemented with very simple instructions. Members of the fourth group are specialized-purpose algorithms, such as anti-aliasing (eliminating the staircase effect) and others.
Upper-level algorithms are responsible for tasks such as the removal of invisible lines and surfaces; their solution remains relevant in computer graphics. The quality and speed of constructing a three-dimensional image depend on the effectiveness of the algorithms that solve this task. Unfortunately, current algorithms are characterized by large computational demands. The upper level also includes the task of rendering, that is, shading halftone images. This involves taking into account surface properties of an object, such as light reflection, transparency, refraction, and phenomena related to the nature and number of light sources.
Different properties of algorithms may come to the fore when using computer graphics in various application areas. For example, scientific graphics prefer an algorithm's versatility over its speed. For simulation systems characterized by moving objects, speed is the primary criterion for selecting an algorithm, because it is necessary to obtain the image in real time.
I would like to draw attention to raster graphics: the characteristics of its display are represented by a matrix of discrete elements that have physical parameters. Since their number is significantly limited, to draw a line, for example, it is necessary to approximate that line when mapping it onto a discrete plane. The mapping of an object onto this plane is called the raster representation of the object.