Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Gouraud shading
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Interpolation method in computer graphics}} {{Multiple issues| {{primary sources|date=February 2014}} {{more citations needed|date=March 2012}} }} {{3D computer graphics}} [[File:Gouraudshading00.png|thumb|300px|Gouraud-shaded triangle mesh using the [[Phong reflection model]]]] '''Gouraud shading''' ({{IPAc-en|ɡ|uː|ˈ|r|oʊ}} {{respell|goo|ROH}}), named after [[Henri Gouraud (computer scientist)|Henri Gouraud]], is an [[interpolation]] method used in [[computer graphics]] to produce continuous [[shading]] of surfaces represented by [[Polygon mesh|polygon meshes]]. In practice, Gouraud shading is most often used to achieve continuous lighting on [[triangle mesh]]es by computing the lighting at the corners of each triangle and [[Linear interpolation|linearly interpolating]] the resulting colours for each [[pixel]] covered by the triangle. Gouraud first published the technique in 1971.<ref name="thesis">{{cite thesis|last=Gouraud|first=Henri|title=Computer Display of Curved Surfaces, Doctoral Thesis|year=1971|publisher=University of Utah |url=http://content.lib.utah.edu/cdm/ref/collection/uspace/id/4477}}</ref><ref>{{cite journal|last=Gouraud|first=Henri|title=Continuous shading of curved surfaces|journal=IEEE Transactions on Computers|year=1971|volume=C-20|issue=6|pages=623–629|doi=10.1109/T-C.1971.223313|s2cid=123827991 |url=http://page.mi.fu-berlin.de/block/htw-lehre/wise2012_2013/bel_und_rend/skripte/gouraud1971.pdf}}</ref><ref>{{cite book|last=Gouraud|first=Henri|title=Seminal Graphics: Pioneering efforts that shaped the field|year=1998|publisher=ACM Press|isbn=1-58113-052-X|editor=Rosalee Wolfe|chapter=Continuous shading of curved surfaces|url=https://archive.org/details/seminalgraphicsp00wolf|url-access=registration}}</ref> However, enhanced hardware support for superior shading models has yielded Gouraud shading largely obsolete in modern rendering. == Description == Gouraud shading works as follows: An estimate to the [[Normal (geometry)|surface normal]] of each [[Vertex (geometry)|vertex]] in a polygonal 3D model is either specified for each vertex or found by averaging the surface normals of the polygons that meet at each vertex. Using these estimates, lighting computations based on a reflection model, e.g. the [[Phong reflection model]], are then performed to produce colour intensities at the vertices. For each [[Pixel|screen pixel]] that is covered by the polygonal mesh, colour intensities can then be [[interpolation|interpolated]] from the colour values calculated at the vertices. == Comparison with other shading techniques == [[File:D3D Shading Modes.png|thumb|300px|Comparison of [[flat shading]] and Gouraud shading]] Gouraud shading is considered superior to [[flat shading]] and requires significantly less processing than [[Phong shading]], but usually results in a faceted look. In comparison to Phong shading, Gouraud shading's strength and weakness lies in its interpolation. If a mesh covers more pixels in screen space than it has vertices, interpolating colour values from samples of expensive lighting calculations at vertices is less processor intensive than performing the lighting calculation for each pixel as in Phong shading. However, highly localized lighting effects (such as [[specular highlight]]s, e.g. the glint of reflected light on the surface of an apple) will not be rendered correctly, and if a highlight lies in the middle of a polygon, but does not spread to the polygon's vertex, it will not be apparent in a Gouraud rendering; conversely, if a highlight occurs at the vertex of a polygon, it will be rendered correctly at this vertex (as this is where the lighting model is applied), but will be spread unnaturally across all neighboring polygons via the interpolation method. The problem is easily spotted in a rendering which ought to have a specular highlight moving smoothly across the surface of a model as it rotates. Gouraud shading will instead produce a highlight continuously fading in and out across neighboring portions of the model, peaking in intensity when the intended specular highlight aligns with a vertex of the model. While this problem can be fixed by [[Tessellation (computer graphics)|increasing the density of vertices]] in the object, at some point the [[diminishing returns]] of this approach will favour switching to a more detailed shading model. <gallery widths="180px" heights="180px"> Image:Gouraud_low_anim.gif|A Gouraud-shaded sphere-like mesh - note the poor behaviour of the specular highlight. Image:Gouraud_high.gif|Another sphere-like mesh rendered with a higher polygon count </gallery> == Linear vs. hyperbolic interpolation == Gouraud's original paper described linear color interpolation.<ref name="thesis"/> In 1992, Blinn published an efficient algorithm for hyperbolic interpolation<ref>{{cite journal |last1=Blinn |first1=James F. |title=Hyperbolic Interpolation |journal=IEEE Computer Graphics and Applications |date=July 1992 |volume=12 |issue=4 |page=89-94 |doi=10.1109/MCG.1992.10028 |s2cid=207973430 |url=https://resolver.caltech.edu/CaltechAUTHORS:20191107-073429669 |ref=blinn}}</ref> that is used in [[Graphics processing unit|GPUs]] as a perspective correct alternative to linear interpolation. Both the linear and hyperbolic variants of interpolation of colors from vertices to pixels are commonly called "Gouraud shading". == Mach bands == Any linear interpolation of intensity causes derivative discontinuities which triggers [[Mach bands]], a common visual artifact of Gouraud shading. ==See also== * [[List of common shading algorithms]] * [[Blinn–Phong reflection model]] * [[Phong shading]] ==References== <references /> [[Category:Shading]] [[Category:Virtual reality]] [[Category:Computer graphics algorithms]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:3D computer graphics
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite thesis
(
edit
)
Template:IPAc-en
(
edit
)
Template:Multiple issues
(
edit
)
Template:Respell
(
edit
)
Template:Short description
(
edit
)