Rendering (computer graphics)
Rendering, in computer graphics, is the process of generating an image from input data such as 3D models. The word itself predates computers. In one of its older senses, it described what an artist did when depicting a real or imaginary thing on paper or canvas. The finished artwork was also called a rendering. Today, to render commonly means to use a computer to generate an image from a precise specification, often created by artists working in interactive 3D modeling software.
A software application or component that performs rendering is called a rendering engine, render engine, graphics engine, or simply a renderer. The images produced range from still photographs to frames for films and video games. Rendering draws from optics, the study of visual perception, mathematics, and software engineering. Its applications include video games, simulators, visual effects for films and television, design visualization, and medical diagnosis.
Two fundamentally different modes exist. Real-time rendering generates and displays images immediately, fast enough to give the impression of motion or animation. Offline rendering, sometimes called pre-rendering, generates frames for later viewing, allowing slower processes that produce higher quality. Interactive applications like games must primarily use real-time rendering, though they may incorporate pre-rendered content alongside it.
Historically, this field was called image synthesis. Today that term more likely refers to AI image generation. The term neural rendering is sometimes applied when a neural network is the primary means of generating an image, while still providing some degree of control over the output.
A large proportion of computer graphics research has worked toward producing images that resemble photographs. Fundamental techniques that make photorealism possible were invented in the 1980s, but at the end of that decade, photorealism for complex scenes was still considered a distant goal. Today it is routinely achievable for offline rendering, though it remains difficult for real-time rendering.
Realistic rendering must simulate how light travels from light sources, is reflected, refracted, and scattered by objects in a scene, passes through a camera lens, and finally reaches a film or sensor. The physics used in these simulations is primarily geometrical optics, where particles of light follow lines called rays. In some situations, such as rendering thin films like the surface of soap bubbles, the wave nature of light must also be taken into account.
Effects that may need to be simulated include shadows with sharp or soft edges; reflections in mirrors and rough surfaces; refraction, the bending of light when it crosses boundaries between materials like air and glass; volumetric effects such as absorption and scattering through partially transparent substances; and caustics, the bright patches sometimes with distinct filaments that result when light is reflected or refracted before illuminating an object.
For true photorealism, the camera must also be simulated. The thin lens approximation allows combining perspective projection with depth of field and bokeh emulation. Motion blur is often simulated when film or video frames are being rendered. Realistic materials such as marble, plant leaves, and human skin require simulating subsurface scattering, where light travels into the material, is scattered, and then exits again. Mathematical descriptions of how surfaces reflect light, called reflectance models or bidirectional reflectance distribution functions, are the formal basis for all of this work.
Real-time rendering relies on high-performance rasterization algorithms that process a list of shapes and determine which pixels each shape covers. Three-dimensional animated films were rendered by rasterization before ray tracing and path tracing became practical enough to take over that role.
The rasterization pipeline combines geometry processing with pixel processing that computes the RGB color values placed in the framebuffer for display. Its main tasks include determining which pixels are covered by each shape, blending colors and depths defined at vertices using methods like barycentric coordinates, determining which parts of shapes are hidden by other shapes, running a pixel shader or fragment shader for each covered pixel, smoothing edges through anti-aliasing, and blending overlapping transparent shapes.
Hidden surface removal has a long history. Early computer graphics used the painter's algorithm, which sorts shapes by depth and renders them from back to front. Depth sorting was later incorporated directly into scanline rendering. The z-buffer algorithm performs depth comparisons by storing a depth value for each pixel in the framebuffer. A pixel is only covered by a shape if that shape's z value indicates it is closer to the camera than what the buffer currently holds. The z-buffer requires additional memory, which was an expensive resource when it was invented, but simplifies the rasterization code and permits multiple rendering passes.
Until relatively recently, Pixar used rasterization for rendering its animated films. Its Reyes rendering system in RenderMan software was optimized for rendering very small, pixel-sized polygons, and incorporated stochastic sampling techniques more typically associated with ray tracing. Today, even low-power mobile processors typically incorporate 3D graphics acceleration features.
One of the simplest ways to render a 3D scene is to test whether a ray starting at the viewpoint intersects any geometric shape in the scene. Early ray casting experiments include the work of Arthur Appel in the 1960s. Appel rendered shadows by casting an additional ray from each visible surface point toward a light source, and tried rendering the density of illumination by casting random rays from the light source toward an object, plotting the intersection points in a way similar to the later technique called photon mapping.
Classical ray tracing, also called Whitted-style or recursive ray tracing, extends the basic approach to render mirrors and transparent objects. When a ray traced backward from the camera hits a mirror, the reflection formula from geometric optics determines where the reflected ray came from. When it hits a transparent surface, Snell's law computes the refracted direction. The result is a branching tree of rays that must be traced recursively. Films such as Shrek 2 and Monsters University used distribution ray tracing or path tracing to precompute indirect illumination before rendering with rasterization.
Path tracing was proposed and named in 1986 by Jim Kajiya in the same paper that introduced the rendering equation. Kajiya observed that much of the complexity of distributed ray tracing could be avoided by tracing only a single path from the camera at a time. Monster House, the first feature film rendered entirely using path tracing, was not released until 20 years later. The Arnold renderer, first released in 1998, proved that path tracing was practical for film rendering and that demand existed for unbiased, physically based rendering in the film industry. The popular open source software Blender uses path tracing in its Cycles renderer.
Advances in GPU technology have made real-time ray tracing possible in games, though it is currently almost always used in combination with rasterization. Ray tracing support is included in recent versions of graphics APIs used by games, including DirectX, Metal, and Vulkan. Ray tracing has also been used to render simulated black holes and the appearance of objects moving at close to the speed of light, by taking spacetime curvature and relativistic effects into account.
Radiosity, named after the radiometric quantity of the same name, is a method for rendering objects illuminated by light bouncing off rough or matte surfaces. This type of illumination is called indirect light, environment lighting, or diffuse interreflection, and rendering it realistically is the problem of global illumination. Rasterization and basic ray tracing can only roughly approximate indirect light, typically by adding a uniform ambient lighting amount chosen by the artist.
The original radiosity method was first proposed in 1984. In this classical form, surfaces and lights in the scene are split into pieces called patches, a process called meshing that makes it a finite element method. The fractions of light transferred between patches are called form factors or view factors, terms first used in engineering to model radiative heat transfer. These fractions are assembled into a matrix equation that is solved using methods from linear algebra.
The large size of the matrices required for classical radiosity causes problems for realistic scenes. Practical implementations may use Jacobi or Gauss-Seidel iterations, which is equivalent to simulating light propagation one bounce at a time until the remaining light is insignificant. An important improvement is hierarchical radiosity, which uses a coarser mesh for simulating light transfer between distant surfaces and adaptively subdivides patches as needed, allowing radiosity to be applied to much larger and more complex scenes.
For real-time rendering, precomputed irradiance values can be stored in a texture called an irradiance map or stored as vertex data for 3D models. This feature was used in architectural visualization software to allow real-time walkthroughs of building interiors after computing the lighting. Radiosity is considered a physically based method, though it often assumes all surfaces are opaque and perfectly Lambertian, which reduces realism and limits its applicability compared to path tracing.
As of 2003, machine learning techniques were being used in other areas of computer graphics, including texture synthesis, fitting surfaces to point clouds, and fitting curves to motion capture data. The use of machine learning for rendering expanded as GPUs capable of quickly evaluating neural networks, especially convolutional neural networks, became available.
One of the most widely used applications of machine learning in rendering is denoising of path traced images. In practice, most path tracing now likely uses such a denoiser. Neural networks trained on pairs of noisy and low-noise images can use data such as surface normals and albedo in addition to the rendered image to reduce blurring and preserve textures. They are effective at removing the scattered bright pixels called fireflies that frequently occur in path tracing. Denoisers specialized for real-time rendering can work with very low sample counts and improve temporal coherence to reduce flickering.
Neural radiance fields, or NeRFs, encode radiance at all points in a volume and use evaluation of this approximation as the primary rendering method. For any useful resolution, the amount of data in a radiance field is so large that it must be approximated, typically using neural networks trained on video frames or photographs of a scene taken from different angles. Algorithms related to neural networks have also been used to represent scenes as 3D Gaussians, using fuzzy partially-transparent blobs of varying dimensions and orientations rather than points. This technique, called 3D Gaussian splatting, appeared in 2023 on the chronology of rendering techniques.
By combining denoising and hardware ray tracing acceleration, it is now practical to use path tracing for real-time rendering. Spatiotemporal reservoir resampling, known as ReSTIR, aims to improve the quality of real-time path tracing by reusing samples from previous frames and adjacent pixels. Eric Veach's 1997 PhD thesis summarized and expanded much of the earlier work on path sampling methods, helping raise interest in path tracing across the computer graphics research community.
Common questions
What is rendering in computer graphics?
Rendering in computer graphics is the process of generating an image from input data such as 3D models. A software component that performs this task is called a rendering engine, render engine, graphics engine, or renderer. The field draws from optics, mathematics, and software engineering, with applications in video games, film visual effects, medical diagnosis, and design visualization.
What is the difference between real-time and offline rendering?
Real-time rendering generates and displays images immediately, fast enough to create the impression of motion or animation, as required by video games. Offline rendering, also called pre-rendering, generates frames for later viewing and can use slower, higher-quality methods. Interactive applications must primarily use real-time rendering, though they may incorporate pre-rendered content.
What is path tracing and when was it invented?
Path tracing is a rendering technique that uses Monte Carlo integration to compute the average brightness of sampled light paths traveling from a light source to the camera. It was proposed and named in 1986 by Jim Kajiya in the same paper that introduced the rendering equation. Monster House, the first feature film rendered entirely using path tracing, was released about 20 years after Kajiya's original proposal.
How does radiosity work in 3D rendering?
Radiosity, first proposed in 1984, splits surfaces and lights in a scene into patches and computes form factors representing the fractions of light transferred between each pair of patches. These fractions are assembled into a matrix equation solved using linear algebra. The resulting irradiance values can be precomputed and stored in textures called irradiance maps for use in real-time rendering.
What is the rendering equation and who created it?
The rendering equation was introduced in 1986 by Jim Kajiya in the same paper that proposed path tracing. It provided ray tracing with a rigorous mathematical foundation by expressing how light is emitted, reflected, and propagated in an environment. Path tracing was introduced as a statistically unbiased method for solving this equation.
How are neural networks used in computer graphics rendering?
Neural networks are widely used for denoising path-traced images, reducing the number of sample paths needed to achieve acceptable quality. They are also used to encode bidirectional reflectance distribution functions and to represent neural radiance fields, which encode the color and intensity of light at all points in a volume. As of 2023, 3D Gaussian splatting emerged as a neural-network-adjacent approach representing scenes as fuzzy, partially-transparent blobs rather than discrete points.
All sources
139 references cited across the entry
- 1Oxford English DictionaryMarch 2024
- 2Oxford English DictionaryJune 2024
- 4High-Resolution Image Synthesis with Latent Diffusion ModelsRobin Rombach et al. — June 2022
- 5JournalState of the Art on Neural RenderingA. Tewari et al. — May 2020
- 6JournalTheory for Off-Specular Reflection from Roughened SurfacesK. E. Torrance et al. — September 1967
- 7JournalContinuous Shading of Curved SurfacesH. Gouraud — June 1971
- 9JournalIllumination for computer generated picturesBui Tuong Phong — June 1975
- 10JournalTexture and reflection in computer generated imagesJ.F. Blinn et al. — 1976
- 11JournalModels of light reflection for computer synthesized picturesJames F. Blinn — 20 July 1977
- 12JournalShadow algorithms for computer graphicsFranklin C. Crow — 1977
- 13BookProceedings of the 5th annual conference on Computer graphics and interactive techniquesLance Williams — 1978
- 14JournalSimulation of wrinkled surfacesJames F. Blinn — 1978
- 15BookProceedings of the 7th annual conference on Computer graphics and interactive techniques - SIGGRAPH '80Henry Fuchs et al. — 1980
- 16JournalAn improved illumination model for shaded displayT. Whitted — 1980
- 17JournalA reflectance model for computer graphicsRobert L. Cook et al. — 1981
- 18BookProceedings of the 10th annual conference on Computer graphics and interactive techniquesLance Williams — 1983
- 19JournalSpace subdivision for fast ray tracingA.S. Glassner — 1984
- 20BookProceedings of the 11th annual conference on Computer graphics and interactive techniquesThomas Porter et al. — 1984
- 21BookProceedings of the 11th annual conference on Computer graphics and interactive techniquesRobert L. Cook et al. — 1984
- 22JournalModeling the interaction of light between diffuse surfacesCindy M. Goral et al. — 1984
- 23BookProceedings of the 12th annual conference on Computer graphics and interactive techniques - SIGGRAPH '85Tomoyuki Nishita et al. — 1985
- 24JournalThe hemi-cube: A radiosity solution for complex environmentsMichael F. Cohen et al. — 1985
- 25JournalA ray tracing solution for diffuse interreflectionGregory J. Ward et al. — 1988
- 26BookProceedings of the 21st annual conference on Computer graphics and interactive techniques - SIGGRAPH '94Gregory J. Ward — 1994
- 27JournalAn efficient antialiasing techniqueXiaolin Wu — 1991
- 28BookGraphics Gems IIWu, Xiaolin — Morgan Kaufmann — 1991
- 29BookProceedings of the 18th annual conference on Computer graphics and interactive techniquesPat Hanrahan et al. — 1991
- 30BookProceedings of the 21st annual conference on Computer graphics and interactive techniques - SIGGRAPH '94Michael Oren et al. — 1994
- 31JournalTone reproduction for realistic imagesJ. Tumblin et al. — November 1993
- 32BookProceedings of the 20th annual conference on Computer graphics and interactive techniquesPat Hanrahan et al. — 1993
- 33Bi-directional path tracingEric Lafortune et al. — December 1993
- 34BookProceedings of the 21st annual conference on Computer graphics and interactive techniques - SIGGRAPH '94Gavin Miller — 1994
- 35JournalPhoton maps in bidirectional Monte Carlo ray tracing of complex objectsHenrik Wann Jensen et al. — March 1995
- 36BookProceedings of the 22nd annual conference on Computer graphics and interactive techniques - SIGGRAPH '95Eric Veach et al. — 1995
- 37BookProceedings of the 24th annual conference on Computer graphics and interactive techniques - SIGGRAPH '97Eric Veach et al. — 1997
- 38BookProceedings of the 24th annual conference on Computer graphics and interactive techniques - SIGGRAPH '97Alexander Keller — 1997
- 39BookProceedings of the 29th annual conference on Computer graphics and interactive techniquesPeter-Pike Sloan et al. — 2002
- 40JournalA Simple and Robust Mutation Strategy for the Metropolis Light Transport AlgorithmCsaba Kelemen et al. — September 2002
- 41JournalA data-driven reflectance modelWojciech Matusik et al. — 2003
- 42JournalLightcuts: A scalable approach to illuminationBruce Walter et al. — 2005
- 43JournalRadiance Caching for Efficient Global Illumination ComputationJ. Krivanek et al. — September 2005
- 44BookACM SIGGRAPH Asia 2009 papersToshiya Hachisuka et al. — 2009
- 45JournalLight transport simulation with vertex connection and mergingIliyan Georgiev et al. — 2012
- 46JournalA path space extension for robust light transport simulationToshiya Hachisuka et al. — 2012
- 47RenderMan 26 Documentation: PxrVCMPixar — 16 July 2024
- 48JournalManifold exploration: a Markov Chain Monte Carlo technique for rendering scenes with difficult specular transportWenzel Jakob et al. — 5 August 2012
- 49JournalGradient-domain metropolis light transportJaakko Lehtinen et al. — 21 July 2013
- 50JournalMultiplexed metropolis light transportToshiya Hachisuka et al. — 27 July 2014
- 51BookComputer Vision – ECCV 2014Matthew M. Loper et al. — 2014
- 52JournalManifold Next Event EstimationJohannes Hanika et al. — 27 July 2015
- 53RenderMan 26 Documentation: PxrUnifiedPixar — 21 June 2024
- 54JournalPractical Path Guiding for Efficient Light-Transport SimulationThomas Müller et al. — July 2017
- 55JournalSpatiotemporal reservoir resampling for real-time ray tracing with dynamic direct lightingBenedikt Bitterli et al. — 31 August 2020
- 56BookReal-Time RenderingTomas Akenine-Möller et al. — A K Peters/CRC Press — 2018
- 57BookProceedings of the April 30--May 2, 1968, spring joint computer conference on - AFIPS '68 (Spring)Arthur Appel — 1968
- 58Backward ray tracing (course notes)James Arvo — August 1986
- 59ThesisHierarchical and stochastic algorithms for radiosityPhilippe Bekaert — Department of Computer Science, KU Leuven — 1999
- 60Blender Manual: Rendering: Cycles: IntroductionThe Blender Foundation
- 61Blender Manual: Rendering: Cycles: Optimizing Renders: Reducing NoiseThe Blender Foundation
- 62Blender 4.2 Manual: Importing & Exporting FilesThe Blender Foundation
- 63Blender 4.2 Manual: Rendering: Render Output: Rendering AnimationsThe Blender Foundation
- 64Blender Manual: Rendering: Cycles: Render Settings: SamplingThe Blender Foundation
- 65Blender Manual: Rendering: EEVEE: Light Probes: IntroductionThe Blender Foundation
- 66JournalA procedure for generation of three-dimensional half-tone computer graphics presentationsW. J. Bouknight — 1970
- 67BookFluid Simulation for Computer GraphicsRobert Bridson — A K Peters/CRC Press — 2015
- 68BookThe Art and Science of Digital CompositingRon Brinkmann — Morgan Kaufmann — 2008
- 69JournalThe A-buffer, an antialiased hidden surface methodLoren Carpenter — July 1984
- 70ThesisA Subdivision Algorithm for Computer Display of Curved SurfacesEdwin Catmull — University of Utah — December 1974
- 71JournalThe Path to Path-Traced MoviesWojciech Jarosz et al. — 2016
- 72JournalStructuring a VLSI System ArchitectureJames H. Clark — 1980
- 73BookRadiosity and Realistic Image SynthesisMichael F. Cohen et al. — Academic Press — 1993
- 74JournalThe Reyes image rendering architectureRobert L. Cook et al. — August 1987
- 75BookProduction Pipeline Fundamentals for Film and GamesRenee Dunlop — Focal Press — 2014
- 76Global Illumination Compendium: The Concise Guide to Global Illumination AlgorithmsPhilip Dutré — 29 September 2003
- 77BookAdvanced Global IlluminationPhilip Dutré et al. — A K Peters/CRC Press — 2015
- 78Evans & Sutherland Multi-Picture System (brochure)Evans & Sutherland Corporation. — 1979
- 79BookFundamentals of Interactive Computer GraphicsJames D. Foley et al. — Addison-Wesley Publishing Company, Inc. — 1982
- 80BookComputer ArchitectureCharles Fox — No Starch Press — 2024
- 81BookComputer Graphics from ScratchGabriel Gambetta — No Starch Press — 2021
- 82BookTechnical Drawing with Engineering Graphics, 16th EditionFrederick E. Giesecke et al. — Pearson Education, Inc. — 2023
- 83BookPrinciples of digital image synthesisAndrew S. Glassner — Morgan Kaufmann Publishers, Inc. — 2011
- 84JournalHAWS: Accelerating GPU Wavefront Execution through Selective Out-of-order ExecutionXun Gong et al. — 2019
- 85BookProceedings of the 11th annual conference on Computer graphics and interactive techniquesCindy M. Goral et al. — 1984
- 86Machine Learning for Computer Graphics: A Manifesto and TutorialAaron Hertzmann — October 8, 2003
- 87BookRelativistic ray-tracing: simulating the visual appearance of rapidly moving objectsAndrew Howard et al. — University of Melbourne, Department of Computer Science — 1995
- 88BookComputer graphics: principles and practiceJohn F. Hughes et al. — Addison-Wesley — 2014
- 89BookAn Introduction to Ray TracingAndrew S. Glassner — ACADEMIC PRESS — April 11, 2019
- 93JournalThe rendering equationJames T. Kajiya — 1986
- 94Journal3D Gaussian Splatting for Real-Time Radiance Field RenderingBernhard Kerbl et al. — 2023
- 95Khronos Blog: Ray Tracing In VulkanThe Khronos Group Inc — December 15, 2020
- 96BookGPU Zen 3: Advanced Rendering TechniquesJakub Knapik et al. — Black Cat Publishing Inc. — 2024
- 97Arnold at Sony Pictures Imageworks: From Monster House to Smurfs: The Lost Village (course slides)Christopher Kulla — 30 July 2017
- 98Measuring GPU Memory LatencyChester Lam — Chips and Cheese — 16 April 2021
- 99BookFundamentals of Computer GraphicsSteve Marschner et al. — CRC Press — 2022
- 100BookReal World Print ProductionClaudia McCue — Peachpit Press — 2006
- 101SVG: Scalable Vector GraphicsMozilla Corporation — 7 August 2024
- 102NeRF: Representing Scenes as Neural Radiance Fields for View SynthesisBen Mildenhall et al. — 2020
- 103JournalVDB: High-resolution sparse volumes with dynamic topologyKen Museth — June 2013
- 104Nagoya City Science Museum - Exhibition Guide - Digistar IINagoya City Science Museum
- 105NES Dev Wiki: PPUnesdev wiki
- 106NVIDIA DLSS 3NVIDIA Corporation
- 107NVIDIA OptiX™ AI-Accelerated DenoiserNVIDIA Corporation
- 108Intel Open Image Denoise: High-Performance Denoising Library for Ray TracingIntel Corporation
- 109About OpenVDBAcademy Software Foundation
- 110ThesisBi-directional Path Tracing on GPUVilém Otte — Masaryk University, Brno — 2015
- 111pbrt-v4 Input File FormatMatt Pharr et al. — 2023
- 112pbrt-v4 User's GuideMatt Pharr et al. — 2023
- 113Famous Graphics Chips: Geometry EngineJon Peddie — Institute of Electrical and Electronics Engineers (IEEE) — 24 September 2020
- 114BookProceedings of the 27th annual conference on Computer graphics and interactive techniques - SIGGRAPH '00Mark S. Peercy et al. — 2000
- 115BookPhysically Based Rendering: From Theory to ImplementationMatt Pharr et al. — Morgan Kaufmann — November 25, 2016
- 116BookPhysically Based Rendering: From Theory to ImplementationMatt Pharr et al. — The MIT Press — March 28, 2023
- 117ThesisIllumination for Computer-Generated ImagesTường-Phong Bùi — University of Utah — 1973
- 118PowerVR at 25: The story of a graphics revolutionDavid Harold — Imagination Technologies Limited — 11 August 2017
- 119BookPostScript Language Reference ManualAdobe Systems Incorporated — Addison-Wesley Publishing Company — 1990
- 120BookRendering for BeginnersSaty Raghavachary — Focal Press — 2005
- 121The Raster Tragedy at Low-Resolution Revisited: Opportunities and Challenges beyond "Delta-Hinting"Beat Stamm — 21 June 2018
- 122BookRay Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIsMartin Stich — Apress — February 25, 2019
- 123BookRay Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIsEric Haines et al. — Apress — February 25, 2019
- 124BookRay Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIsJakub Boksansky et al. — Apress — February 25, 2019
- 125BookRay Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIsEdward Liu et al. — Apress — February 25, 2019
- 126BookReal-Time RenderingTomas Akenine-Möller et al. — A K Peters/CRC Press — August 6, 2018
- 127JournalSeeing relativity-I: Ray tracing in a Schwarzschild metric to explore the maximal analytic extension of the metric and making a proper rendering of the starsRiazuelo Alain — March 2019
- 128RenderMan 26 Documentation: Arbitrary Output VariablesPixar — 5 September 2023
- 129A short 170 year history of Neural Radiance Fields (NeRF), Holograms, and Light FieldsKatrin Schmid — March 2, 2023
- 130JournalCoherent metropolis light transport on the GPU using speculative mutationsMartin Schmidt et al. — 2016
- 131JournalSpecial Effects for Star Trek II: The Genesis DemoAlvy Ray Smith — October 1982
- 133ThesisRobust Monte Carlo methods for light transport simulationEric Veach — Stanford University — 1997
- 134Compositing and Blending Level 1W3C — 21 March 2024
- 135Filter Effects Module Level 1W3C — 18 December 2018
- 136Scalable Vector Graphics (SVG) 2W3C — 4 October 2018
- 137ReportA hidden line algorithm for halftone picture representationJohn E. Warnock — 20 May 1968
- 138ReportA hidden surface algorithm for computer generated halftone picturesJohn Warnock — University of Utah — June 1969
- 139A Real Time Visible Surface AlgorithmGary Scott Watkins — University of Utah — June 1970
- 140Evans_and_Sutherland Digistar-IIWorldwide Planetariums Database
- 141Listing of Planetariums using a Evans_and_Sutherland Digistar-IIWorldwide Planetariums Database
- 142BookOpenGL SuperBibleRichard S. Wright et al. — Sams Publishing — 2004