Logo
Logo, a computer programming language that originated in the late 1960s as a simplified LISP dialect for use in education; Seymour Papert and others used it at the Massachusetts Institute of Technology (MIT) to teach mathematical thinking to schoolchildren. It had a more conventional syntax than LISP and featured “turtle graphics,” a simple method for generating computer graphics. (The name came from an early project to program a turtlelike robot.) Turtle graphics used body-centred instructions, in which an object was moved around a screen by commands, such as “left 90” and “forward,” that specified actions relative to the current position and orientation of the object rather than in terms of a fixed framework. Together with recursive routines, this technique made it easy to program intricate and attractive patterns.
Computer graphics
Computer graphics, production of images on computers for use in any medium. Images used in the graphic design of printed material are frequently produced on computers, as are the still and moving images seen in comic strips and animations. The realistic images viewed and manipulated in electronic games and computer simulations could not be created or supported without the enhanced capabilities of modern computer graphics. Computer graphics also are essential to scientific visualization, a discipline that uses images and colours to model complex phenomena such as air currents and electric fields, and to computer-aided engineering and design, in which objects are drawn and analyzed in computer programs. Even the windows-based graphical user interface, now a common means of interacting with innumerable computer programs, is a product of computer graphics.
Images have high information content, both in terms of information theory (i.e., the number of bits required to represent images) and in terms of semantics (i.e., the meaning that images can convey to the viewer). Because of the importance of images in any domain in which complex information is displayed or manipulated, and also because of the high expectations that consumers have of image quality, computer graphics have always placed heavy demands on computer hardware and software.
In the 1960s early computer graphics systems used vector graphics to construct images out of straight line segments, which were combined for display on specialized computer video monitors. Vector graphics is economical in its use of memory, as an entire line segment is specified simply by the coordinates of its endpoints. However, it is inappropriate for highly realistic images, since most images have at least some curved edges, and using all straight lines to draw curved objects results in a noticeable “stair-step” effect.
In the late 1970s and ’80s raster graphics, derived from television technology, became more common, though still limited to expensive graphics workstation computers. Raster graphics represents images by bitmaps stored in computer memory and displayed on a screen composed of tiny pixels. Each pixel is represented by one or more memory bits. One bit per pixel suffices for black-and-white images, while four bits per pixel specify a 16-step gray-scale image. Eight bits per pixel specify an image with 256 colour levels; so-called “true color” requires 24 bits per pixel (specifying more than 16 million colours). At that resolution, or bit depth, a full-screen image requires several megabytes (millions of bytes; 8 bits = 1 byte) of memory. Since the 1990s, raster graphics has become ubiquitous. Personal computers are now commonly equipped with dedicated video memory for holding high-resolution bitmaps.
Although used for display, bitmaps are not appropriate for most computational tasks, which need a three-dimensional representation of the objects composing the image. One standard benchmark for the rendering of computer models into graphical images is the Utah Teapot, created at the University of Utah in 1975. Represented skeletally as a wire-frame image, the Utah Teapot is composed of many small polygons. However, even with hundreds of polygons, the image is not smooth. Smoother representations can be provided by Bezier curves, which have the further advantage of requiring less computer memory. Bezier curves are described by cubic equations; a cubic curve is determined by four points or, equivalently, by two points and the curve’s slopes at those points. Two cubic curves can be smoothly joined by giving them the same slope at the junction. Bezier curves, and related curves known as B-splines, were introduced in computer-aided design programs for the modeling of automobile bodies.
Rendering offers a number of other computational challenges in the pursuit of realism. Objects must be transformed as they rotate or move relative to the observer’s viewpoint. As the viewpoint changes, solid objects must obscure those behind them, and their front surfaces must obscure their rear ones. This technique of “hidden surface elimination” may be done by extending the pixel attributes to include the “depth” of each pixel in a scene, as determined by the object of which it is a part. Algorithms can then compute which surfaces in a scene are visible and which ones are hidden by others. In computers equipped with specialized graphics cards for electronic games, computer simulations, and other interactive computer applications, these algorithms are executed so quickly that there is no perceptible lag—that is, rendering is achieved in “real time.”