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
Phong 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 technique for surface shading}} {{About|Phong's normal-vector interpolation technique for surface shading|Phong's illumination model|Phong reflection model}} [[Image:Phong-shading-sample (cropped).jpg|upright=1.3|thumb|Flat shading (left) versus Phong shading (right)]] {{3D computer graphics}} In [[3D computer graphics]], '''Phong shading, Phong interpolation,<ref name="Watt1992">{{cite book |last=Watt |first=Alan H. |title=Advanced Animation and Rendering Techniques: Theory and Practice |author2=Watt, Mark |publisher=Addison-Wesley Professional |year=1992 |isbn=978-0-201-54412-1 |pages=21β26}}</ref>''' or '''normal-vector interpolation shading<ref name="Foley1996">{{cite book |last=Foley |first=James D. |title=Computer Graphics: Principles and Practice. (2nd ed. in C) |author2=van Dam, Andries |author3=Feiner, Steven K. |author4=Hughes, John F. |publisher=Addison-Wesley Publishing Company |year=1996 |isbn=0-201-84840-6 |pages=738β739}}</ref>''' is an [[interpolation]] technique for surface [[shading]] invented by computer graphics pioneer [[Bui Tuong Phong]]. Phong shading interpolates [[surface normal]]s across [[Raster graphics|rasterized]] polygons and computes [[pixel]] colors based on the interpolated normals and a reflection model. ''Phong shading'' may also refer to the specific combination of Phong interpolation and the [[Phong reflection model]]. == History == Phong shading and the [[Phong reflection model]] were developed at the [[University of Utah]] by [[Bui Tuong Phong]], who published them in his 1973 Ph.D. dissertation<ref>Bui Tuong Phong, ''Illumination of Computer-Generated Images'', Department of Computer Science, University of Utah, UTEC-CSc-73-129, July 1973.</ref><ref>University of Utah School of Computing, [http://www.cs.utah.edu/school/history/#phong-ref History]</ref> and a 1975 paper.<ref>Bui Tuong Phong, "Illumination for Computer Generated Pictures," [[Comm. ACM]], Vol 18(6):311-317, June 1975.</ref> Phong's methods were considered radical at the time of their introduction, but have since become the ''de facto'' baseline shading method for many rendering applications.{{fact|date=December 2019}} Phong's methods have proven popular due to their generally efficient use of computation time per rendered pixel.{{fact|date=December 2019}} == Phong interpolation == Phong shading improves upon [[Gouraud shading]] and provides a better approximation of the shading of a smooth surface. Phong shading assumes a smoothly varying surface normal vector. The Phong interpolation method works better than Gouraud shading when applied to a reflection model with small [[specular highlight]]s such as the Phong reflection model. The most serious problem with Gouraud shading occurs when specular highlights are found in the middle of a large polygon. Since these specular highlights are absent from the polygon's [[Vertex (graph theory)|vertices]] and Gouraud shading interpolates based on the vertex colors, the specular highlight will be missing from the polygon's interior. This problem is fixed by Phong shading. Unlike Gouraud shading, which interpolates colors across polygons, in Phong shading, a normal vector is [[linear interpolation|linearly interpolated]] across the surface of the polygon from the polygon's vertex normals. The surface normal is interpolated and normalized at each pixel and then used in a reflection model, e.g. the [[Phong reflection model]], to obtain the final pixel color. Phong shading is more computationally expensive than Gouraud shading since the reflection model must be computed at each pixel instead of at each vertex. In modern graphics hardware, variants of this algorithm are implemented using [[Pixel shader|pixel or fragment shaders]]. == Phong reflection model == {{main|Phong reflection model}} ''Phong shading'' may also refer to the specific combination of Phong interpolation and the [[Phong reflection model]], which is an empirical model of local illumination. It describes the way a surface reflects light as a combination of the [[diffuse reflection]] of rough surfaces with the [[specular reflection]] of shiny surfaces. It is based on [[Bui Tuong Phong]]'s informal observation that shiny surfaces have small intense [[specular highlight]]s, while dull surfaces have large highlights that fall off more gradually. The reflection model also includes an ''ambient'' term to account for the small amount of light that is scattered about the entire scene. [[Image:Phong components version 4.png|655px|center|thumb|Visual illustration of the Phong equation: here the light is white, the ambient and diffuse colors are both blue, and the specular color is white, reflecting a small part of the light hitting the surface, but only in very narrow highlights. The intensity of the diffuse component varies with the direction of the surface, and the ambient component is uniform (independent of direction).]] == See also == * [[List of common shading algorithms]] * [[BlinnβPhong shading model]] β Phong reflection model modified to trade precision with computing efficiency * [[Flat shading]] β shading of polygons with a single color * [[Gouraud shading]] β shading of polygons by interpolating colors that are computed at vertices * [[Phong reflection model]] β reflection model often used with Phong shading * [[Specular highlight]] β other specular lighting equations ==References== {{Reflist}} {{DEFAULTSORT:Phong Shading}} [[Category:Computer graphics algorithms]] [[Category:Shading]] [[Category:Vietnamese inventions]]
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:About
(
edit
)
Template:Cite book
(
edit
)
Template:Fact
(
edit
)
Template:Main
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)