Although the term “computer graphics” itself was coined in 1960 by William Fetter, a designer at Boeing, to describe his own job, the field can be said to have first arrived with the publication in 1963 of Ivan Sutherland’s Sketchpad program, as part of his Ph.D. thesis at MIT.
Sketchpad, as its name suggests, was a drawing program. Beyond the interactive drawing of primitives such as lines and circles and their manipulation – in particular, copying, moving and constraining – with use of the then recently invented light pen, Sketchpad had the first fully-functional graphical user interface (GUI) and the first algorithms for geometric operations such as clip and zoom. Interesting, as well, is that Sketchpad’s innovation of an object-instance model to store data for geometric primitives foretold object-oriented programming. Coincidentally, on the hardware side, the year 1963 saw the invention by Douglas Engelbart at the Stanford Research Institute of the mouse, the humble device even today carrying so much of GUI on its thin shoulders.
Although Sketchpad ran on a clunky Lincoln TX-2 computer with only 64KB in memory and a bulky monochrome CRT monitor as its front-end, nevertheless, it thrust CG to the attention of the early researchers by showing what was possible. Subsequent advances through the sixties came thick and fast: raster algorithms, the implementation of parametric surfaces, hidden-surface algorithms and the representation of points by homogeneous coordinates, the latter crucially presaging the foundational role of projective geometry in 3D graphics, to name a few. Flight simulators were the killer app of the day and companies such as General Electric and Evans & Sutherland, 6 co-founded by Douglas Evans and Ivan Sutherland, wrote simulators with real-time graphics.
Interestingly, the advent of flight simulators actually predated that of CG – at least Sutherland and his Sketchpad – by nearly two decades, when the US Navy began the funding of Project Whirlwind at MIT during the Second World War for the purpose of creating simulators to train bomber crews. Those early devices had actually little graphics and consisted essentially of a simulated instrument panel reacting in real-time to control input from the pilots, but Project Whirlwind helped fund the talent and research environment at MIT which enabled Sutherland to create Sketchpad, launch computer graphics and, finally, complete the circle by establishing a company to make flight simulators.
The next decade, the seventies, brought the z-buffer for hidden surface removal, texture mapping, Phong’s lighting model – all crucial components of the OpenGL API (Application Programming Interface) we’ll be using soon – as well as keyframe-based animation. Photorealistic rendering of animated movie keyframes almost invariably deploys ray tracers, which were born in the seventies too. Emblematic of the advances in 3D design was Martin Newell’s 1975 Utah teapot, composed entirely of bicubic Bezier patches, which became the testbed of choice for CG algorithms. The latter half of the decade saw, too, the Apple I and II personal computers make their debut, bringing CG for the first time to the mass market.
From the academic point of view, particularly important were the establishment in 1969 of the SIGGRAPH (Special Interest Group in Graphics) by the ACM (Association for Computing Machinery, the premier academic society for computers and computing) and, subsequently, the first annual SIGGRAPH conference in 1973. These two developments signaled the emergence of computer graphics as a major subdiscipline of computer science. The SIGGRAPH conference has since then become the foremost annual event in the CG world. In addition to being the most prestigious forum for research papers, it hosts a giant exhibition which attracts hundreds of companies, from software developers to book publishers, who set up booths to promote their wares and recruit talent.
Since the early eighties, CG, both software and hardware, began rapidly to assume the form we see today. The IBM PC, the Mac and the x86 chipsets all arrived, sparking off the race to become faster (processor), smaller (size), bigger (memory) and cheaper (particularly important if you are going to school). As computers became consumer goods, the market for software spilled over from academia to individuals and businesses.
Nintendo released Donkey Kong in 1981, the wildly successful arcade video game which revolutionized the genre, and soon after Wavefront Technologies released its Preview software, used then to create opening graphics for television programs. Now, of course, Nintendo is a star of the video games industry producing the Wii and it successors, while Wavefront has morphed into Alias (owned by Autodesk) whose 3D graphics modeling package Maya is ubiquitous in the design world.
3D graphics began to displace its plainer 2D sister through the nineties as hardware increasingly became capable of supporting the rendering needs of 3D models, even in real-time, thus allowing interaction and its myriad consequences (such as gaming). The difference between 2D and 3D graphics is that models in the latter are created in a (virtual) 3D world, geometrically the same as the real world, and then projected onto the viewing screen, while all drawings in 2D graphics are on a at plane.
Models drawn in 3D are more realistic because they have all the three dimensions we humans can perceive, but they are more complex as well; moreover, the projection step, non-existent for 2D graphics, is computation intensive too. Graphics cards, manufactured by companies such as ATI and Nvidia, which not only manage the image output to the display unit, but have, as well, additional hardware support for rendering of 3D primitives, are now inexpensive enough that desktops and even notebooks can run high-end 3D applications. How well they run 3D games often, in fact, is used to benchmark personal computers.
Through the nineties, as well, the use of 3D effects in movies became pervasive. The Terminator and Star Wars series, and Jurassic Park, were among the early movies to set the standard for CGI. Toy Story from Pixar, 8 released in 1995, has special importance in the history of 3D CGI as the first movie to be entirely computer-generated – no scene was ever pondered through a glass lens, nor any recorded on a photographic reel! It was cinema without film. Quake, released in 1996, the first of the hugely popular Quake series of games, was the first fully 3D game.
Another landmark from the nineties of particular relevance to us was the release in 1992 of OpenGL, the open-standard cross-platform and crosslanguage 3D graphics API, by Silicon Graphics. OpenGL is actually a library of calls to perform 3D tasks, which can be accessed from programs written in various languages and running over various operating systems. That OpenGL was high-level (in that it frees the applications programmer from having to care about such low-level tasks as representing primitives like lines and triangles in the raster, or rendering them to the window) and easy to use (much more so than its predecessor 3D graphics API, PHIGS, standing for Programmer’s Hierarchical Interactive Graphics System) first brought 3D graphics programming to the “masses”. What till then had been the realm of a specialist was now open to a casual programmer following a fairly amicable learning curve.
Since its release OpenGL has been rapidly adopted throughout academia and industry. It’s only among game developers that Microsoft’s proprietary 3D API, Direct3D, which came soon after OpenGL bearing an odd similarity to it but optimized for Windows, is more popular.
The story of the past decade has been one of steady progress, rather than spectacular innovations in CG. Hardware continues to get faster, better, smaller and cheaper, continually pushing erstwhile high-end software downmarket, and raising the bar for new products. The almost complete displacement of CRT monitors by LCD and the emergence of high-definition television are familiar consequences of recent hardware evolution.
Of likely even greater economic impact is the migration of sophisticated software applications – ranging from web browsers to 3D games – to handheld devices like smartphones, on the back of small yet powerful processors. CG has now been untethered from large immobile devices and placed into the hands and pockets of consumers. In fact, a lightweight subset of OpenGL called OpenGL ES – ES abbreviating Embedded Systems – released by the Khronos Group in 2003, is now the most popular API for programming 3D graphics on small devices.