Computer graphics (computer science): Difference between revisions

Content deleted Content added
Subfields: too much boldface
 
(42 intermediate revisions by 34 users not shown)
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.]]
{{about|the scientific discipline of computer graphics|a broader overview|Computer graphics|other uses|Computer graphics (disambiguation)}}
 
'''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 [[3D computer graphics|three-dimensional computer graphics]], it also encompasses [[2D computer graphics|two-dimensional graphics]] and [[image processing]].
[[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 (computer scientist)|Martin Newell]] in 1975]]
 
'''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 [[3D computer graphics|three-dimensional computer graphics]], it also encompasses [[2D computer graphics|two-dimensional graphics]] and [[image processing]].
 
== Overview ==
Computer graphics studies the 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:
Line 28 ⟶ 25:
{{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>
 
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>
Line 35 ⟶ 32:
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
Line 42 ⟶ 39:
[[File:Stanford bunny qem.png|thumb|Successive approximations of a surface computed using quadric error metrics]]
 
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>
 
Geometry subfields include:
* [[Implicit surface]] modeling – an older subfield which examines the use of algebraic surfaces, [[constructive solid geometry]], etc., for surface representation.
* 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.istoday/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>
* 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>
* Point-based graphics – a recent field which focuses on points as the fundamental representation of surfaces.
Line 53 ⟶ 50:
 
=== Animation ===
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:
* [[Motion capture|Performance capture]]
* Character animation
* Physical simulation (e.g. [[cloth modeling]], animation of [[fluid dynamics]], etc.)
 
=== Rendering ===
{{Main articles|Rendering (computer graphics)}}
[[File:Cornellbox pathtracing irradiancecaching.png|thumb|Indirect diffuse scattering simulated using [[path tracing]] and [[irradiance]] [[Cache (computing)|caching]].]]
 
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 [[Rendering (computer graphics)]] for more information.
 
Rendering subfields include:
* [[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]]. (Note that thereThere 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]]
Line 81 ⟶ 79:
* [[Jim Blinn]]
* [[Jack E. Bresenham]]
* [[Loren Carpenter]]
* [[Edwin Catmull]]
* [[James H. Clark]]
Line 87 ⟶ 85:
* [[Franklin C. Crow]]
* [[Paul Debevec]]
* [[David C. Evans (computer scientist)|David C. Evans]]
* [[Ronald Fedkiw|Ron Fedkiw]]
* [[Steven K. Feiner]]
Line 126 ⟶ 124:
* [[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 ==
Line 136 ⟶ 201:
* [[Digital image editing]]
* [[Geometry processing]]
* [[IBM PCPG]], (1980s)
* [[Painter's algorithm]]
* [[Stanford Bunny]]
Line 153 ⟶ 219:
{{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 ===
Line 175 ⟶ 241:
 
[[Category:Computer graphics|+]]
[[Category:Computer science]]