Computer graphics (computer science): Difference between revisions

Content deleted Content added
m X Window System
 
Line 1:
{{short description|Sub-field of computer science}}[[File:utah teapot simple 2.png|thumb|A modern rendering of the Utah teapot, an iconic model in 3D computer graphics created by Martin Newell in 1975.]]
[[ja:コンピュータグラフィックス]]
'''Computer graphics''' is the field of synthesising or augmenting imagery through digital means, for [[Computer-generated art|artistic]], [[computer-aided design|engineering]], [[video game|recreational]] or [[Information visualization|scientific]] purposes.
 
'''Computer graphics''' is a sub-field of computer science which studies methods for digitally synthesizing and manipulating visual content. Although the term often refers to the study of three-dimensional computer graphics, it also encompasses two-dimensional graphics and image processing.
The first computer graphics were the output of text and numbers on electronic displays, though computer graphics today typically refers to creating images and not text. This field can be divided into two general areas: real-time rendering, and [[3D computer graphics|non real-time rendering]]. Development in computer graphics was first fueled by academic interests and government sponsorship. However, as real-world applications of computer graphics(CG) in broadcast television and movies proved a viable alternative to more traditional special effects and animation techniques, commercial parties have increasingly funded advances in the field.
 
== Overview ==
It is often thought that the first feature [[film]] to use computer graphics was ''[[2001: A Space Odyssey]]'', which attempted to show how computers would be much more graphical in the future. However, all the "computer graphic" effects in that film were hand-drawn animation, and the special effects sequences were produced entirely with conventional optical and model effects.
Computer graphics studies manipulation of visual and geometric information using computational techniques. It focuses on the ''mathematical'' and ''computational'' foundations of image generation and processing rather than purely [[aesthetic]] issues. Computer graphics is often differentiated from the field of [[visualization (graphic)|visualization]], although the two fields have many similarities.
 
Connected studies include:
Perhaps the first use of computer graphics specifically to illustrate computer graphics was in ''[[Futureworld]]'' ([[1976]]), which included an [[animation]] of a human face and hand - produced by [[Ed Catmull]] and [[Fred Parke]] at the [[University of Utah]].
* [[Applied mathematics]]
* [[Computational geometry]]
* [[Computational topology]]
* [[Computer vision]]
* [[Image processing]]
* [[Information visualization]]
* [[Scientific visualization]]
 
Applications of computer graphics include:
==2D Computer Graphics==
*[[Print design]]
*[[Digital art]]
*[[Special effect]]s
*[[Video game]]s
*[[Visual effects]]
 
== History ==
The first advances in computer graphics was in the use of [[CRT]]s to represent [[2D computer graphics]]. (See this article.)
{{See also|History of computer animation|Computer graphics#History}}
 
There are several international conferences and journals where the most significant results in computer graphics are published. Among them are the [[SIGGRAPH]] and [[Eurographics]] conferences and the [[Association for Computing Machinery]] (ACM) Transactions on Graphics journal. The joint Eurographics and [[ACM SIGGRAPH]] symposium series features the major venues for the more specialized sub-fields: Symposium on Geometry Processing,<ref>{{cite web |url = http://www.geometryprocessing.org |title = geometryprocessing.org |website = geometryprocessing.org |access-date=2014-05-01 }}</ref> Symposium on Rendering, Symposium on Computer Animation,<ref>[http://www.eg.org/events] {{webarchive|url=https://web.archive.org/web/20070314004027/http://www.eg.org/events|date=March 14, 2007}}</ref> and High Performance Graphics.<ref>{{cite web |url = http://www.highperformancegraphics.org |title = High Performance Graphics |website = highperformancegraphics.org }}</ref>
==3D Computer Graphics==
 
As in the rest of computer science, conference publications in computer graphics are generally more significant than journal publications (and subsequently have lower acceptance rates).<ref name="cra memo">{{cite web |url = http://www.cra.org/reports/tenure_review.html |title=Best Practices Memo |website = Cra.org |access-date=2014-05-01 |archive-url = https://web.archive.org/web/20140502002308/http://www.cra.org/reports/tenure_review.html |archive-date=2014-05-02 |url-status=dead }}</ref><ref name="ernst note">{{cite web |url = http://people.csail.mit.edu/mernst/advice/conferences-vs-journals.html |title=Choosing a venue: conference or journal? |website = People.csail.mit.edu |access-date=2014-05-01}}</ref><ref name="graphics acceptance rates">{{cite web |url = http://vrlab.epfl.ch/~ulicny/statistics/ |title = Graphics/vision publications acceptance rates statistics |website = vrlab.epfl.ch |access-date=2014-05-01 }}</ref><ref>An extensive history of computer graphics can be found at [http://accad.osu.edu/~waynec/history/lessons.html this page] {{webarchive |url = https://web.archive.org/web/20070405172134/http://accad.osu.edu/~waynec/history/lessons.html |date=April 5, 2007 }}.</ref>
With the birth of the [[workstation]] computers (like [[LISP machine]]s, [[paintbox]] computers and [[Silicon Graphics]] workstations) came the [[3D computer graphics]], based on [[vector]] representations of virtual objects. (See this article.)
 
== Subfields ==
Some major advances in 3D computer graphics have been:
A broad classification of major subfields in computer graphics might be:
# [[Geometry]]: ways to represent and process surfaces
# [[Computer animation|Animation]]: ways to represent and manipulate motion
# [[Rendering (computer graphics)|Rendering]]: [[algorithm]]s to reproduce light transport
# [[Digital imaging|Imaging]]: image acquisition or image editing
 
=== Geometry ===
; [[Flat shading]]: A technique that shades each polygon of an object based on the polygon's "normal" and the position and intensity of a light source.
[[File:Stanford bunny qem.png|thumb|Successive approximations of a surface computed using quadric error metrics]]
; [[Gouraud shading]]: Invented by H. Gouraud in 1971, a fast and resource-conscious vertex shading technique used to simulate smoothly shaded surfaces.
; [[Texture mapping]]: A technique for simulating a large amount of surface detail by mapping images (textures) onto polygons.
; [[Phong shading]]: Invented by Wu Tong Phong, used to simulate specular highlights and smooth shaded surfaces.
; [[Bump mapping]]: Invented by [[Jim Blinn]], a normal-perturbation technique used to simulate wrinkled surfaces.
; [[Raytracing]]: A shading technique used to simulate reflection and transparency.
; [[Global illumination]]: Covering the techniques of Monte-Carlo gathering and radiosity for simulating realistic light sources.
 
The subfield of geometry studies the representation of three-dimensional objects in a discrete digital setting. Because the appearance of an object depends largely on its exterior, [[boundary representation]]s are most commonly used. Two dimensional [[Surface (topology)|surface]]s are a good representation for most objects, though they may be non-[[manifold]]. Since surfaces are not finite, discrete digital approximations are used. [[polygon mesh|Polygonal meshes]] (and to a lesser extent [[subdivision surfaces]]) are by far the most common representation, although point-based representations have become more popular recently (see for instance the Symposium on Point-Based Graphics).<ref>{{cite web |url = http://graphics.ethz.ch/events/pbg/07/ |title=Point Based Graphics 2007 - PBG07 |website = Graphics.ethz.ch |access-date=2014-05-01}}</ref> These representations are ''Lagrangian,'' meaning the spatial locations of the samples are independent. Recently, ''Eulerian'' surface descriptions (i.e., where spatial samples are fixed) such as [[level set]]s have been developed into a useful representation for deforming surfaces which undergo many topological changes (with [[fluids]] being the most notable example).<ref name="stanford fedkiw">{{cite web |url = http://graphics.stanford.edu/~fedkiw/ |title = Ron Fedkiw |website = graphics.stanford.edu |access-date=2014-05-01 }}</ref>
Several important topics in [[2D computer graphics|2D]] and [[3D computer graphics|3D]] graphics include:
 
Geometry subfields include:
* [[Color space|Color theory]]
* [[Implicit surface]] modeling – an older subfield which examines the use of algebraic surfaces, [[constructive solid geometry]], etc., for surface representation.
* [[Raster graphics]]
* Digital geometry processing – [[3d scanning|surface reconstruction]], simplification, fairing, mesh repair, [[mesh parameterization|parameterization]], remeshing, [[mesh generation]], surface compression, and surface editing all fall under this heading.<ref name="caltech multires dgp">[http://www.multires.caltech.edu/pubs/DGPCourse/] {{webarchive|url=https://web.archive.org/web/20070214021951/http://www.multires.caltech.edu/pubs/DGPCourse/|date=February 14, 2007}}</ref><ref name="uiuc graphics dgp">[http://graphics.cs.uiuc.edu/~garland/class/geometry/ CS 598: Digital Geometry Processing (Fall 2004)<!-- Bot generated title -->] {{webarchive|url=https://archive.today/20041025104252/http://graphics.cs.uiuc.edu/~garland/class/geometry/ |date=2004-10-25 }}</ref><ref name="ubc sheffa dgp">{{cite web|url=http://www.cs.ubc.ca/~sheffa/dgp/ |title=Digital Geometry Processing |website = cs.ubc.ca |access-date=2014-05-01}}</ref>
* [[Vector graphics]]
* Discrete differential geometry – a nascent field which defines geometric quantities for the discrete surfaces used in computer graphics.<ref name="columbia ddg">{{cite web |url = http://ddg.cs.columbia.edu/ |title=Discrete Differential Geometry |website = ddg.cs.columbia.edu |access-date=2014-05-01}}</ref>
* [[Geometric surface representations]]
* Point-based graphics – a recent field which focuses on points as the fundamental representation of surfaces.
* [[Computer graphics/shading|Material properties]]
* [[Subdivision surfaces]]
* [[Data compression|Image compression]]
* Out-of-core mesh processing – another recent field which focuses on mesh datasets that do not fit in main memory.
* [[Computer animation|Animation]]
* [[Computer rendering|Rendering]]
* [[Alpha compositing|Compositing]]
* [[Projection]]
 
=== Toolkits and APIsAnimation ===
The subfield of animation studies descriptions for surfaces (and other phenomena) that move or deform over time. Historically, most work in this field has focused on parametric and data-driven models, but recently [[physical simulation]] has become more popular as computers have become more powerful computationally.
 
Animation subfields include:
If you want to build an application that relies heavily on computer graphics you might find the following useful:
* [[Motion capture|Performance capture]]
* Character animation
* Physical simulation (e.g. [[cloth modeling]], animation of [[fluid dynamics]], etc.)
 
=== Rendering ===
* [[OpenGL]]
{{Main articles|Rendering (computer graphics)}}
* [[DirectX]]
[[File:Cornellbox pathtracing irradiancecaching.png|thumb|Indirect diffuse scattering simulated using [[path tracing]] and [[irradiance]] [[Cache (computing)|caching]].]]
* [[GKS]]
* [[CGM]]
* [[PostScript]]
* [[X Window System]]
 
Rendering generates images from a model. Rendering may simulate [[light transport theory|light transport]] to create realistic images or it may create images that have a particular artistic style in [[non-photorealistic rendering]]. The two basic operations in realistic rendering are transport (how much light passes from one place to another) and scattering (how surfaces interact with light).
See also:
 
* [[Computer Generated Imagery]]
Rendering subfields include:
* [[Bresenham's line algorithm]]
* [[light transport theory|Transport]] describes how illumination in a scene gets from one place to another. [[visibility (geometry)|Visibility]] is a major component of light transport.
* Scattering: Models of ''[[scattering]]'' (how light interacts with the surface ''at a given point'') and ''[[shading]]'' (how material properties vary across the surface) are used to describe the appearance of a surface. In graphics these problems are often studied within the context of rendering since they can substantially affect the design of [[rendering algorithm]]s. Descriptions of scattering are usually given in terms of a [[bidirectional scattering distribution function]] (BSDF). The latter issue addresses how different types of scattering are distributed across the surface (i.e., which scattering function applies where). Descriptions of this kind are typically expressed with a program called a [[shader]]. (There is some confusion since the word "shader" is sometimes used for programs that describe local ''geometric'' variation.)
* [[Non-photorealistic rendering]]
* [[Physically based rendering]] – concerned with generating images according to the laws of [[geometric optics]]
* [[Real-time rendering]] – focuses on rendering for interactive applications, typically using specialized hardware like [[graphics processing unit|GPUs]]
* [[Relighting]] – recent area concerned with quickly re-rendering scenes
<!-- PLEASE RESPECT ALPHABETICAL ORDER-->
 
== Notable researchers ==
{{div col |colwidth = 22em }}
* Arthur Appel
* James Arvo
* [[Brian A. Barsky]]
* [[Jim Blinn]]
* [[Jack E. Bresenham]]
* [[Loren Carpenter]]
* [[Edwin Catmull]]
* [[James H. Clark]]
* [[Robert L. Cook]]
* [[Franklin C. Crow]]
* [[Paul Debevec]]
* [[David C. Evans (computer scientist)|David C. Evans]]
* [[Ronald Fedkiw|Ron Fedkiw]]
* [[Steven K. Feiner]]
* [[James D. Foley]]
* [[David Forsyth (computer scientist)|David Forsyth]]
* [[Henry Fuchs]]
* [[Andrew Glassner]]
* [[Henri Gouraud (computer scientist)]]
* [[Donald P. Greenberg]]
* [[Eric Haines]]
* R. A. Hall
* [[Pat Hanrahan]]
* John Hughes
* [[Jim Kajiya]]
* [[Takeo Kanade]]
* [[Kenneth Knowlton]]
* [[Marc Levoy]]
* [[Martin Newell (computer scientist)]]
* [[James F. O'Brien|James O'Brien]]
* [[Ken Perlin]]
* [[Matt Pharr]]
* [[Bui Tuong Phong]]
* [[Przemyslaw Prusinkiewicz]]
* [[William Reeves (animator)|William Reeves]]
* David F. Rogers
* [[Holly Rushmeier]]
* [[Peter Shirley]]
* [[James Sethian]]
* [[Ivan Sutherland]]
* [[Demetri Terzopoulos]]
* Kenneth Torrance
* [[Greg Turk]]
* [[Andries van Dam]]
* [[Henrik Wann Jensen]]
* [[Gregory Ward]]
* [[John Warnock]]
* [[J. Turner Whitted]]
* [[Lance Williams (graphics researcher)|Lance Williams]]
{{div col end}}
 
== Applications for their use ==
'''Bitmap Design / Image Editing'''
* [[Adobe Photoshop]]
* [[Corel Photo-Paint]]
* [[GIMP]]
* [[Krita]]
 
'''Vector drawing'''
* [[Adobe Illustrator]]
* [[CorelDRAW]]
* [[Inkscape]]
* [[Affinity Designer]]
* Sketch
 
'''Architecture'''
* [[VariCAD]]
* [[FreeCAD]]
* [[AutoCAD]]
* [[QCAD]]
* [[LibreCAD]]
* [[DataCAD]]
* [[Corel Designer]]
 
'''Video editing'''
* [[Adobe Premiere Pro]]
* [[Sony Vegas]]
* [[Final Cut Pro X|Final Cut]]
* [[DaVinci Resolve]]
* [[Cinelerra]]
* [[VirtualDub]]
 
'''Sculpting, Animation, and 3D Modeling'''
* [[Blender 3D]]
* [[Wings 3D]]
* [[ZBrush]]
* Sculptris
* [[SolidWorks]]
* [[Rhino3D]]
* [[SketchUp]]
* [[3ds Max]]
* [[Cinema 4D]]
* [[Autodesk Maya|Maya]]
* [[Houdini (software)|Houdini]]
 
'''Digital composition'''
* [[Nuke (Software)|Nuke]]
* [[Blackmagic Fusion]]
* [[Adobe After Effects]]
* [[Natron (software)|Natron]]
 
'''Rendering'''
* [[V-Ray]]
* [[RedShift]]
* [[RenderMan]]
* [[Octane Render]]
* [[Mantra (Software)|Mantra]]
* [[Lumion (Software)|Lumion]] (Architectural visualization)
 
'''Other applications examples'''
* [[ACIS]] - geometric core
* [[Autodesk Softimage]]
* [[POV-Ray]]
* [[Scribus]]
* [[Silo (software)|Silo]]
* [[Hexagon (software)|Hexagon]]
* [[LightWave 3D|Lightwave]]
 
== See also ==
{{div col|colwidth=22em}}
* [[Computer facial animation]]
* [[Computer science]]
* [[Computer science and engineering]]
* [[Computer graphics]]
* [[Digital geometry]]
* [[Digital image editing]]
* [[Geometry processing]]
* [[IBM PCPG]], (1980s)
* [[Painter's algorithm]]
* [[Stanford Bunny]]
* [[Utah Teapot]]
{{div col end}}
 
== References ==
{{Reflist}}
 
== Further reading ==
* [[James D. Foley|Foley]] ''et al''. ''[[Computer Graphics: Principles and Practice]]''.
* Shirley. ''Fundamentals of Computer Graphics''.
* Watt. ''3D Computer Graphics''.
 
== External links ==
{{Wiktionary|computer graphics}}
{{Commons category|Computer graphics}}
* [https://web.archive.org/web/20070405172134/http://accad.osu.edu/~waynec/history/lessons.html A Critical History of Computer Graphics and Animation]
* {{usurped|1=[https://web.archive.org/web/20070302154206/http://hem.passagen.se/des/hocg/hocg_1960.htm ''History of Computer Graphics'' series of articles]}}
 
=== Industry ===
Industrial labs doing "blue sky" graphics research include:
*[https://web.archive.org/web/20080325152156/http://www.adobe.com/technology/graphics/ Adobe Advanced Technology Labs]
*[http://www.merl.com/ MERL]
*[http://research.microsoft.com/graphics/ Microsoft Research – Graphics]
*[http://research.nvidia.com/ Nvidia Research]
 
Major film studios notable for graphics research include:
*[http://www.ilm.com/ ILM]
*[http://www.dreamworksanimation.com/ PDI/Dreamworks Animation]
*[https://web.archive.org/web/20070302102640/http://www.pixar.com/companyinfo/research/ Pixar]
 
{{-}}
{{Visualization}}
{{Computer graphics}}
{{Computer science}}
 
{{Authority control}}
 
[[Category:Computer graphics|+]]