The History of Computer Graphics

Matt George
Matt George

Fractional CTO · Founder of Injuria.ai

•17 min read•

The History of Computer Graphics

Computer graphics is the generation, manipulation, and rendering of visual data by computers[1].[43] The discipline relies heavily on linear algebra, calculus, and optics to translate mathematical models into two-dimensional images. The field originated in the 1950s as a specialized tool for military and aerospace engineering, heavily constrained by the high cost of memory and processing power.[44] Early systems relied on vector displays, drawing lines directly on cathode ray tubes. As solid-state memory became cheaper in the 1970s, the industry transitioned to raster graphics, representing images as grids of pixels. This shift enabled the display of solid colors, complex shading, and eventually photographic realism.

The development of computer graphics is defined by a continuous tradeoff between visual fidelity and computational constraints. Offline rendering, used in feature films and architectural visualization, prioritizes physical accuracy by simulating the behavior of light over hours or days per frame. Real-time rendering, used in video games, virtual reality, and interactive simulations, prioritizes speed. Historically, real-time rendering relied on rasterization shortcuts to deliver images in milliseconds, bypassing the computationally expensive physics of actual light transport.

Over decades, academic research from institutions including the University of Utah and Xerox PARC established the mathematical foundations of three-dimensional geometry, hidden surface removal, and texture mapping.[43] Commercial entities including Silicon Graphics, 3dfx Interactive, and NVIDIA later codified these algorithms into dedicated hardware. The resulting graphics processing units provided the highly parallel processing architecture that currently drives artificial intelligence, molecular dynamics simulations, and high-performance computing.

Early Analog and Vector Graphics (1950s to 1960s)

The earliest graphical computer displays were developed for military radar and control systems. In 1951, the Massachusetts Institute of Technology completed the Whirlwind I computer[2], which featured an oscilloscope cathode ray tube display to output real-time data. This technology was expanded in 1955 for the Semi-Automatic Ground Environment (SAGE) air defense system, which allowed operators to interact with the display using a light pen.

These early systems utilized vector graphics. Because random-access memory was prohibitively expensive, computers could not store a full screen of pixels. Instead, the display hardware steered the electron beam of the cathode ray tube directly from point to point, drawing glowing lines on the phosphor screen. This approach required the computer to continuously redraw, or refresh, the lines before the phosphor faded. If a program attempted to draw too many lines, the refresh rate dropped, causing severe screen flicker.

In 1959, General Motors and IBM collaborated to create the Design Augmented by Computers (DAC-1) system. Introduced publicly in 1964, the DAC-1 allowed engineers to input three-dimensional coordinates and view automotive designs from different angles, establishing the foundation for computer-aided design. During this same era, French engineer Pierre Bézier developed a mathematical method for modeling curves while working at the automotive manufacturer Renault. He patented and popularized Bézier curves[3] and Bézier surfaces, which allowed designers to define smooth, scalable shapes using a small set of control points.[45] This mathematical framework became the standard for computer-aided design and vector drawing applications.

During the same period, the Digital Equipment Corporation released the PDP-1 minicomputer. In 1962, Steve Russell and other programmers at the Massachusetts Institute of Technology used the PDP-1 vector display to create Spacewar![4], the first widely distributed computer game. The game demonstrated that interactive graphics could be processed in real time, inspiring a generation of computer scientists.

In 1963, Ivan Sutherland published his doctoral thesis at the Massachusetts Institute of Technology, detailing Sketchpad[5]. Running on the Lincoln Laboratory TX-2 computer, Sketchpad allowed users to draw geometric shapes with a light pen. Sutherland introduced object-oriented programming concepts, allowing users to create master drawings and instantiate multiple copies. Sketchpad also introduced geometric constraints, enabling users to fix the length of a line or the angle between two segments.

Commercial applications followed rapidly. In 1964, IBM introduced the IBM 2250 display unit alongside the System/360 mainframe. The 2250 was utilized heavily in the automotive and aerospace industries. During this period, Jack Bresenham at IBM developed Bresenham's line algorithm[6], published in 1965. The algorithm provided a highly efficient method for determining which points on a two-dimensional grid should be plotted to form a straight line. By utilizing only integer addition, subtraction, and bit shifting, Bresenham avoided slow floating-point arithmetic, creating a foundational algorithm still used in modern rendering engines.

The Raster Revolution and Framebuffers (1970s)

The 1970s marked the transition from vector graphics to raster graphics.[46] Raster displays treat the screen as a rectangular grid of pixels, requiring a dedicated block of memory known as a framebuffer to store the color value of every pixel. In the early 1970s, a 512 by 512 pixel display at 8 bits per pixel required 256 kilobytes of memory, which cost hundreds of thousands of dollars. A. Michael Noll developed an early digital framebuffer at Bell Labs in the late 1960s, but the technology remained too expensive for widespread use.

In 1973, Richard Shoup at Xerox PARC developed the SuperPaint system[7]. SuperPaint utilized a shift-register framebuffer to capture and display broadcast video, allowing users to paint digital colors over live images. This system demonstrated the viability of raster graphics for artistic and commercial video production. As raster displays became common, developers had to address aliasing, the jagged, stair-step appearance of diagonal lines on a pixel grid. Anti-aliasing algorithms were developed to blend the edges of lines with the background color, creating the optical illusion of a smooth edge.

Simultaneously, the University of Utah became the primary academic center for three-dimensional computer graphics. David Evans and Ivan Sutherland founded the computer graphics program, attracting researchers who solved fundamental rendering problems. In 1974, Edwin Catmull developed the Z-buffer algorithm. Prior to the Z-buffer, rendering engines sorted polygons from back to front to ensure closer objects occluded distant ones, a computationally expensive process that failed with intersecting geometry. The Z-buffer allocated memory to store the depth coordinate of each pixel, drawing a new pixel only if it was closer to the camera than the stored value. This traded memory capacity for computational speed, a highly advantageous exchange as solid-state memory prices fell. Catmull also pioneered texture mapping in 1974, a method for wrapping two-dimensional images onto three-dimensional geometry using coordinate mapping, and later developed subdivision surfaces to create smooth models from coarse polygon meshes.[45]

Utah researchers also developed foundational shading algorithms. In 1971, Henri Gouraud published Gouraud shading[8], a method that calculated lighting at the vertices of a polygon and linearly interpolated the resulting colors across the surface. In 1973, Bui Tuong Phong published Phong shading[9], which interpolated the surface normals across the polygon and calculated the lighting equation for every individual pixel. Phong also introduced the Phong reflection model, adding specular highlights to simulate glossy surfaces. To test these algorithms, Martin Newell created the Utah Teapot in 1975, a mathematical model of an ordinary teapot that became the standard reference object for graphics research.

In 1978, James F. Blinn published a paper titled "Simulation of Wrinkled Surfaces"[10], introducing bump mapping. Instead of adding complex geometry to simulate rough textures, Blinn modified the surface normals of a polygon during the shading calculation based on a grayscale texture map. This technique allowed rendering engines to simulate detailed surface variations, such as the dimples on an orange or the craters on a moon, without increasing the polygon count.[47] Blinn also developed environment mapping, which used projected textures to simulate reflections on curved surfaces.

The Birth of 3D Rendering and CGI (1980s)

The 1980s introduced advanced lighting simulations and the commercialization of computer-generated imagery in film.[48] In 1980, Turner Whitted published a paper introducing recursive ray tracing[11]. While previous algorithms calculated lighting based only on direct illumination from light sources, Whitted's algorithm traced rays of light backward from the virtual camera into the scene. When a ray hit a surface, it spawned secondary rays to calculate reflection, refraction, and shadows. This achieved unprecedented photorealism but required massive computational power, often taking hours to render a single frame on a VAX-11/780 minicomputer.

In 1982, Robert L. Cook and Kenneth E. Torrance published the Cook-Torrance shading model[12]. This model introduced microfacet theory to computer graphics, simulating how rough surfaces scatter light. It allowed for highly realistic renderings of materials like brushed metal and plastic, moving the industry closer to physical accuracy.

In 1984, researchers Cindy M. Goral, Kenneth E. Torrance, Donald P. Greenberg, and Bennett Battaile at Cornell University published "Modeling the Interaction of Light Between Diffuse Surfaces"[13]. This paper introduced radiosity to computer graphics, an algorithm adapted from thermal engineering that calculated the transfer of light energy between surfaces. Radiosity accurately simulated color bleeding and soft indirect shadows, effects that standard ray tracing struggled to compute efficiently. To verify their algorithm, the researchers created the Cornell box[14], a physical diorama painted with specific colors that they photographed and compared against their digital render. The Cornell box remains a standard test scene for evaluating global illumination algorithms.

To accelerate three-dimensional math, Jim Clark developed the Geometry Engine[15] in 1982. This custom very-large-scale integration chip processed matrix transformations and clipping operations in hardware. Clark founded Silicon Graphics to commercialize the technology. Silicon Graphics IRIS workstations dominated the high-end graphics market throughout the 1980s and 1990s, providing the hardware for engineering and visual effects.

Beyond high-end workstations, the 1980s also saw the introduction of advanced graphics capabilities to home computers. The Commodore Amiga, released in 1985, featured a custom chipset with a blitter, a dedicated hardware component that rapidly moved blocks of memory to accelerate two-dimensional sprite rendering and window management.

The entertainment industry began adopting computer graphics for feature films. The 1982 film Tron featured extensive computer-generated sequences produced by companies including MAGI and Information International, Inc.[44] Concurrently, George Lucas recruited Edwin Catmull to form the Lucasfilm Computer Division[16]. The division developed the REYES rendering architecture, designed to render highly complex scenes by dividing parametric surfaces into micropolygons. This architecture bypassed the memory limits of the era and allowed for high-quality motion blur and displacement mapping. The division spun off as Pixar in 1986 and codified REYES into the RenderMan software[17], which became the industry standard for cinematic rendering. Industrial Light & Magic utilized these advancements to create groundbreaking visual effects in films like The Abyss (1989) and Terminator 2: Judgment Day (1991).

Standardization efforts also matured during this decade. The Graphical Kernel System was adopted by the International Organization for Standardization in 1985 as the first official standard for two-dimensional computer graphics. This was followed by the Programmer's Hierarchical Interactive Graphics System[18] in 1988, which provided an application programming interface for three-dimensional rendering. Wavefront Technologies developed the Wavefront OBJ file format[19] in the 1980s, which remains a standard for storing three-dimensional geometry.

Real-Time 3D and the Hardware Accelerator Era (1990s)

The 1990s shifted the focus from offline rendering to real-time interactive graphics, driven by the video game industry and the development of standardized application programming interfaces. In 1992, Silicon Graphics released OpenGL 1.0[20], an open standard based on their proprietary IRIS GL. OpenGL provided a cross-platform application programming interface that allowed developers to write software that could interface with graphics hardware from any vendor. Microsoft followed in 1996 with the release of Direct3D[21] as part of the DirectX suite for Windows 95, initiating a long-running competition between the two standards.

While personal computers adopted dedicated accelerators, home consoles also transitioned to three-dimensional graphics. The Sony PlayStation[22], released in 1994, utilized a custom geometry engine to process three-dimensional transformations. However, it lacked a Z-buffer and perspective-correct texture mapping, resulting in characteristic polygon jitter and texture warping. The Nintendo 64[23], released in 1996, featured a coprocessor developed by Silicon Graphics called the Reality Coprocessor, which brought Z-buffering, anti-aliasing, and trilinear filtering to the home console market.

To run three-dimensional games on the limited hardware of the early 1990s, developers relied on complex software algorithms. John Carmack initially utilized ray casting for id Software's Wolfenstein 3D in 1992, a technique that traced rays on a two-dimensional grid to render vertical strips of walls. For Doom in 1993, Carmack utilized Binary Space Partitioning trees[24], adapting research published by Bruce Naylor. This data structure pre-calculated the visibility of level geometry, allowing the central processing unit to quickly determine which walls to draw without sorting every polygon in real time.

Consumer graphics hardware advanced rapidly. Early attempts at consumer three-dimensional acceleration, including the S3 ViRGE[25], the Matrox Mystique, and the Rendition Vérité V1000, provided mixed results. Many of these early chips were essentially two-dimensional accelerators with basic three-dimensional features added, often resulting in poor performance or degraded image quality.

In 1996, 3dfx Interactive released the Voodoo Graphics chipset[26]. As a dedicated hardware accelerator, the Voodoo card handled texture mapping, Z-buffering, and bilinear filtering, requiring a separate two-dimensional video card for standard display output. The Voodoo chipset introduced perspective-correct texture mapping to the consumer market, eliminating the texture warping seen in early software renderers and consoles. The release of id Software's Quake[27] in 1996, which featured fully polygonal environments and characters, drove widespread consumer adoption of hardware accelerators. The proprietary Glide application programming interface developed by 3dfx became the preferred standard for PC game developers during this period.

In 1999, NVIDIA released the GeForce 256[28], marketing it as the first graphics processing unit. Prior accelerators relied on the central processing unit to calculate vertex transformations and lighting before sending the geometry to the graphics card for rasterization. The GeForce 256 integrated hardware transform and lighting directly into the silicon. By offloading floating-point vertex math from the central processing unit, the graphics processing unit established the modern graphics pipeline architecture.

The 1990s also saw the standardization of two-dimensional image formats for the World Wide Web. The Joint Photographic Experts Group published the JPEG standard in 1992, utilizing discrete cosine transforms for lossy compression. In 1996, the Portable Network Graphics (PNG) format[29] was published as an open, lossless alternative to the proprietary GIF format, supporting 24-bit color and an 8-bit alpha channel for transparency.

Programmable Shaders and General-Purpose Computing (2000s)

Early graphics processing units utilized a fixed-function pipeline. Developers could toggle specific hardware features, such as fog or alpha blending, but could not alter the underlying mathematical operations. This limitation ended in 2000 with the release of DirectX 8.0, which introduced the programmable shader pipeline.

The programmable pipeline allowed developers to write custom microprograms, called shaders, that executed directly on the graphics hardware. Vertex shaders manipulated geometry data, enabling effects like skeletal animation and cloth simulation.[49] Pixel shaders calculated the color of individual fragments, allowing for complex per-pixel lighting, normal mapping, and environmental reflections. To facilitate shader development, Microsoft and NVIDIA co-developed the High-Level Shading Language and Cg[30], while the OpenGL Architecture Review Board (ARB) introduced the OpenGL Shading Language in 2004.

The release of DirectX 9.0 in 2002 and hardware like the ATI Radeon 9700 expanded these capabilities, introducing floating-point color precision to the rendering pipeline. This allowed for high dynamic range rendering, where lighting calculations could exceed the standard 8-bit color limits before being tone-mapped back to a displayable range, mimicking the exposure behavior of physical cameras.

The introduction of unified shader architectures further optimized hardware. Early programmable graphics processing units had physically separate cores for vertex and pixel shaders. If a scene required heavy pixel shading but simple geometry, the vertex cores sat idle. The ATI Xenos chip, developed for the Xbox 360 console in 2005, introduced a unified architecture where all processing cores could execute any type of shader program, dynamically balancing the workload. This architecture was subsequently adopted for personal computers with the NVIDIA GeForce 8800 series in 2006.

During this period, developers also adopted deferred shading[31]. Traditional forward rendering calculated lighting for every polygon as it was drawn, wasting computational resources on geometry that might later be occluded. Deferred shading decoupled geometry rendering from lighting calculations by rendering geometry data into a massive framebuffer called a G-buffer. The lighting was then calculated as a two-dimensional post-processing pass, allowing rendering engines to support hundreds of dynamic lights simultaneously.

New algorithms emerged to simulate global illumination in real time. In 2007, the video game Crysis, developed by Crytek, introduced Screen Space Ambient Occlusion[32]. Developed by Vladimir Kajalin, this technique analyzed the depth buffer of the rendered frame to approximate how much ambient light should reach a specific pixel. By darkening crevices and corners, the algorithm provided a highly efficient approximation of indirect lighting that ran entirely as a post-processing shader.

As graphics processing units became highly parallel floating-point processors, researchers began using them for non-graphical calculations. This practice, known as general-purpose computing on graphics processing units, was formalized in 2007 when NVIDIA released the Compute Unified Device Architecture (CUDA)[33]. This platform provided a C-like programming interface that exposed the parallel architecture of the graphics processing unit to software developers. This architecture proved highly efficient for matrix multiplication, laying the hardware foundation for the deep learning and artificial intelligence boom of the subsequent decade.

In offline rendering, the 2000s saw a shift toward physically based rendering and global illumination. Renderers like Arnold, developed by Marcos Fajardo, popularized Monte Carlo path tracing in feature films. Path tracing simulates the physical properties of light by tracing thousands of random paths per pixel, producing mathematically accurate ambient occlusion and color bleeding.

Physically Based Rendering and Low-Overhead APIs (2010s)

By the early 2010s, the overhead of graphics drivers became a performance bottleneck. Traditional application programming interfaces like OpenGL and DirectX 11 required the central processing unit to submit draw calls sequentially on a single thread. In 2013, AMD introduced Mantle[34], a low-overhead application programming interface designed to provide closer access to the hardware and allow multithreaded command buffer generation. Mantle heavily influenced the development of subsequent industry standards, including Microsoft's DirectX 12[35] in 2015 and the Khronos Group's Vulkan[36] in 2016. Apple introduced its own low-overhead application programming interface, Metal[37], in 2014.

These low-overhead interfaces also expanded support for compute shaders. Compute shaders allowed the graphics processing unit to run arbitrary algorithms outside the traditional graphics pipeline, useful for particle systems, physics simulations, and image post-processing.

The industry also standardized material properties to ensure assets looked consistent across different lighting environments. In 2012, Walt Disney Animation Studios published a paper detailing a "principled" bidirectional reflectance distribution function[38]. This model parameterized material properties into intuitive controls like metallic, roughness, and specular, rather than strictly physical measurements. The Disney principled model was rapidly adopted by both offline renderers and real-time game engines, establishing the modern standard for physically based rendering.

Real-time ray tracing, long considered computationally impossible for interactive applications, became viable in 2018. NVIDIA introduced the Turing architecture and the RTX 20-series graphics cards, which featured dedicated silicon called RT Cores. These cores specifically accelerated the traversal of bounding volume hierarchies and the calculation of ray-triangle intersections. Microsoft supported this hardware with the release of DirectX Raytracing.

Because ray tracing remained highly demanding, the industry adopted artificial intelligence to maintain high frame rates. In 2018, NVIDIA introduced Deep Learning Super Sampling[39]. This technology used dedicated tensor cores on the graphics processing unit to run a convolutional neural network. The network analyzed lower-resolution rendered frames and temporal data to reconstruct a high-resolution output image, significantly reducing the rendering workload.

Modern State and Significance

Modern computer graphics relies on a synthesis of rasterization, hardware-accelerated ray tracing, and machine learning. In 2022, Epic Games released Unreal Engine 5[40], introducing two systems that redefined real-time rendering constraints. The Nanite system virtualized geometry, automatically scaling the level of detail of micropolygons to match the pixel resolution of the display, effectively eliminating traditional polygon count limits. The Lumen system provided real-time global illumination, dynamically calculating indirect lighting and reflections without requiring pre-computed light maps.

Artificial intelligence has also expanded beyond upscaling to generate entirely new frames. In 2022, NVIDIA introduced DLSS 3 with Frame Generation[41], utilizing an optical flow accelerator to analyze sequential frames and generate intermediate frames using a neural network. This technology decoupled the displayed frame rate from the central processing unit's rendering speed.

Sources (49)
  1. Wikipedia: generation, manipulation, and rendering of visual data by computers
  2. Computer History Museum
  3. Wikipedia: Bézier curves
  4. Computer History Museum
  5. cl.cam.ac.uk: doctoral thesis at the Massachusetts Institute of Technology
  6. ACM Digital Library
  7. Computer History Museum
  8. ACM Digital Library
  9. ACM Digital Library
  10. "Simulation of Wrinkled Surfaces"
  11. ACM Digital Library
  12. ACM Digital Library
  13. "Modeling the Interaction of Light Between Diffuse Surfaces"
  14. Wikipedia: Cornell box
  15. ACM Digital Library
  16. Lucasfilm Computer Division
  17. RenderMan software
  18. Programmer's Hierarchical Interactive Graphics System
  19. Wikipedia: Wavefront OBJ file format
  20. OpenGL 1.0
  21. Direct3D
  22. Wikipedia: Sony PlayStation
  23. Wikipedia: Nintendo 64
  24. Wikipedia: Binary Space Partitioning trees
  25. S3 ViRGE
  26. Wikipedia: Voodoo Graphics chipset
  27. Wikipedia: *Quake*
  28. NVIDIA
  29. IETF
  30. developer.nvidia.com
  31. Wikipedia: deferred shading
  32. Wikipedia: Screen Space Ambient Occlusion
  33. Compute Unified Device Architecture (CUDA)
  34. Wikipedia: Mantle
  35. DirectX 12
  36. Vulkan
  37. Metal
  38. "principled" bidirectional reflectance distribution function
  39. Deep Learning Super Sampling
  40. Unreal Engine 5
  41. NVIDIA
  42. Neural Radiance Fields
  43. James D. Foley, Computer Graphics (Addison-Wesley Professional, 1996)
  44. Jon Peddie, The History of Visual Magic in Computers (Springer Science & Business Media, 2013)
  45. David Salomon, Computer Graphics and Geometric Modeling (Springer Science & Business Media, 1999)
  46. David Salomon, The Computer Graphics Manual (Springer Science & Business Media, 2011)
  47. Andrew Paquette, Computer Graphics for Artists: An Introduction (Springer, 2009)
  48. Annabel Jankel, Rocky Morton, Creative Computer Graphics (Cambridge University Press, 1984)
  49. Edwin D. Reilly, Concise Encyclopedia of Computer Science (John Wiley & Sons, 2004)