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
Rendering equation
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|Integral equation}} [[File:Rendering eq.png|right|thumb|300px|The rendering equation describes the amount of light leaving a point {{mvar|x}} along a particular viewing direction, given functions for incoming light and emitted light, and a [[Bidirectional reflectance distribution function|BRDF]].]] In [[computer graphics]], the '''rendering equation''' is an [[integral equation]] that expresses the amount of light leaving a point on a surface as the sum of emitted light and reflected light. It was independently introduced into computer graphics by David Immel et al.<ref name="Immel1986"> {{Cite conference <!-- Citation bot no -->| last1 = Immel | first1 = David S. | last2 = Cohen | first2 = Michael F. | last3 = Greenberg | first3 = Donald P. | conference = Proceedings of the 13th annual conference on Computer graphics and interactive techniques |title= SIGGRAPH '86 | chapter = A radiosity method for non-diffuse environments | chapter-url = http://www0.cs.ucl.ac.uk/research/vr/Projects/VLF/vlfpapers/multi-pass_hybrid/Immel_D_S__A_Radiosity_Method_for_Non-Diffuse_Environments.pdf | editor1= David C. Evans | editor2= RussellJ. Athay | doi = 10.1145/15922.15901 | year = 1986 | pages = 133–142 | isbn = 978-0-89791-196-2| s2cid = 7384510 }}</ref> and [[James Kajiya]]<ref name="Kajiya1986"> {{Cite conference <!-- Citation bot no -->| last1 = Kajiya | first1 = James T. | conference = Proceedings of the 13th annual conference on Computer graphics and interactive techniques | chapter = The rendering equation | title= SIGGRAPH '86 | chapter-url = http://www.cse.chalmers.se/edu/year/2011/course/TDA361/2007/rend_eq.pdf | doi = 10.1145/15922.15902 | year = 1986 | editor1= David C. Evans | editor2= RussellJ. Athay | pages = 143–150 | isbn = 978-0-89791-196-2| s2cid = 9226468 }}</ref> in 1986. The equation is important in the theory of [[physically based rendering]], describing the relationships between the [[Bidirectional reflectance distribution function|bidirectional reflectance distribution function (BRDF)]] and the [[Radiometry|radiometric quantities]] used in [[Rendering (computer graphics)|rendering]]. The rendering equation is defined at every point on every surface in the scene being rendered, including points hidden from the camera. The incoming light quantities on the right side of the equation usually come from the left (outgoing) side at other points in the scene ([[ray casting]] can be used to find these other points). The [[Radiosity (computer graphics)|radiosity]] rendering method solves a [[Discretization|discrete approximation]] of this system of equations.<ref name="Immel1986"/> In [[distributed ray tracing]], the integral on the right side of the equation may be evaluated using [[Monte Carlo integration]] by randomly sampling possible incoming light directions. [[Path tracing]] improves and simplifies this method.<ref name="Kajiya1986"/> The rendering equation can be extended to handle effects such as [[fluorescence]] (in which some absorbed energy is re-emitted at different wavelengths) and can support transparent and translucent materials by using a [[Bidirectional scattering distribution function|bidirectional scattering distribution function (BSDF)]] in place of a BRDF.<ref name="Glassner95">{{cite book | last1 = Glassner | first1 = Andrew S. | author-link = Andrew Glassner | date = 2011 | orig-date = 1995 | title = Principles of digital image synthesis | publisher = Morgan Kaufmann Publishers, Inc. | isbn = 978-1-55860-276-2 | url = https://www.realtimerendering.com/Principles_of_Digital_Image_Synthesis_v1.0.1.pdf | version = 1.0.1 | access-date = 2025-05-15 | page=722 }}</ref> The theory of path tracing sometimes uses a ''path integral'' (integral over possible paths from a light source to a point) instead of the integral over possible incoming directions.<ref name="Veach1997">{{cite thesis | last = Veach | first = Eric | title = Robust Monte Carlo methods for light transport simulation | year = 1997 | degree = PhD | publisher = Stanford University | url = https://graphics.stanford.edu/papers/veach_thesis/thesis.pdf | access-date = 2025-05-15 | pages=219-220 }}</ref> == Equation form == The rendering equation may be written in the form :<math>L_{\text{o}}(\mathbf x, \omega_{\text{o}}, \lambda, t) = L_{\text{e}}(\mathbf x, \omega_{\text{o}}, \lambda, t) + L_{\text{r}}(\mathbf x, \omega_{\text{o}}, \lambda, t)</math> :<math>L_{\text{r}}(\mathbf x, \omega_{\text{o}}, \lambda, t) = \int_\Omega f_{\text{r}}(\mathbf x, \omega_{\text{i}}, \omega_{\text{o}}, \lambda, t) L_{\text{i}}(\mathbf x, \omega_{\text{i}}, \lambda, t) (\omega_{\text{i}}\cdot\mathbf n) \operatorname d \omega_{\text{i}}</math> where *<math>L_{\text{o}}(\mathbf x, \omega_{\text{o}}, \lambda, t)</math> is the total [[spectral radiance]] of wavelength <math>\lambda</math> directed outward along direction <math>\omega_{\text{o}}</math> at time <math>t</math>, from a particular position <math>\mathbf x</math> *<math>\mathbf x</math> is the location in space *<math>\omega_{\text{o}}</math> is the direction of the outgoing light *<math>\lambda</math> is a particular wavelength of light *<math>t</math> is time *<math>L_{\text{e}}(\mathbf x, \omega_{\text{o}}, \lambda, t)</math> is [[emissivity|emitted]] spectral radiance *<math>L_{\text{r}}(\mathbf x, \omega_{\text{o}}, \lambda, t)</math> is [[reflectance|reflected]] spectral radiance *<math>\int_\Omega \dots \operatorname d\omega_{\text{i}}</math> is an [[integral]] over <math>\Omega</math> *<math>\Omega</math> is the unit [[Sphere|hemisphere]] centered around <math>\mathbf n</math> containing all possible values for <math>\omega_{\text{i}}</math> where <math>\omega_{\text{i}}\cdot\mathbf n > 0</math> *<math>f_{\text{r}}(\mathbf x, \omega_{\text{i}}, \omega_{\text{o}}, \lambda, t)</math> is the [[bidirectional reflectance distribution function]], the proportion of light reflected from <math>\omega_{\text{i}}</math> to <math>\omega_{\text{o}}</math> at position <math>\mathbf x</math>, time <math>t</math>, and at wavelength <math>\lambda</math> *<math>\omega_{\text{i}}</math> is the negative direction of the incoming light *<math>L_{\text{i}}(\mathbf x, \omega_{\text{i}}, \lambda, t)</math> is spectral radiance of wavelength <math>\lambda</math> coming inward toward <math>\mathbf x</math> from direction <math>\omega_{\text{i}}</math> at time <math>t</math> *<math>\mathbf n</math> is the [[Normal (geometry)|surface normal]] at <math>\mathbf x</math> *<math>\omega_{\text{i}} \cdot \mathbf n</math> is the weakening factor of outward [[irradiance]] due to [[angle of incidence (optics)|incident angle]], as the light flux is smeared across a surface whose area is larger than the projected area perpendicular to the ray. This is often written as <math>\cos \theta_i</math>. Two noteworthy features are: its linearity—it is composed only of multiplications and additions, and its spatial homogeneity—it is the same in all positions and orientations. These mean a wide range of factorings and rearrangements of the equation are possible. It is a [[Fredholm integral equation]] of the second kind, similar to those that arise in [[quantum field theory]].<ref>{{cite book| last1=Watt| first1=Alan| last2=Watt| first2=Mark |title=Advanced Animation and Rendering Techniques: Theory and Practice| url=https://archive.org/details/advancedanimatio00watt| url-access=limited|year=1992|publisher=Addison-Wesley Professional|isbn=978-0-201-54412-1|page=[https://archive.org/details/advancedanimatio00watt/page/n299 293]|section=12.2.1 The path tracing solution to the rendering equation}}</ref> Note this equation's [[spectrum|spectral]] and [[time]] dependence — <math>L_{\text{o}}</math> may be sampled at or integrated over sections of the [[visible spectrum]] to obtain, for example, a [[trichromatic]] color sample. A pixel value for a single frame in an animation may be obtained by fixing <math>t;</math> [[motion blur]] can be produced by [[averaging]] <math>L_{\text{o}}</math> over some given time interval (by integrating over the time interval and dividing by the length of the interval).<ref>{{cite web | last = Owen | first = Scott | title = Reflection: Theory and Mathematical Formulation | date = September 5, 1999 | url = http://www.siggraph.org/education/materials/HyperGraph/illumin/reflect2.htm | accessdate = 2008-06-22}}</ref> Note that a solution to the rendering equation is the function <math>L_{\text{o}}</math>. The function <math>L_{\text{i}}</math> is related to <math>L_{\text{o}}</math> via a ray-tracing operation: The incoming radiance from some direction at one point is the outgoing radiance at some other point in the opposite direction. == Applications == Solving the rendering equation for any given scene is the primary challenge in [[realistic rendering]]. One approach to solving the equation is based on [[finite element analysis|finite element]] methods, leading to the [[radiosity (3D computer graphics)|radiosity]] algorithm. Another approach using [[Monte Carlo method]]s has led to many different algorithms including [[path tracing]], [[photon mapping]], and [[Metropolis light transport]], among others. == Limitations == Although the equation is very general, it does not capture every aspect of light reflection. Some missing aspects include the following: * [[Transmission (wave propagation)|Transmission]], which occurs when light is transmitted through the surface, such as when it hits a [[glass]] object or a [[water]] surface, * [[Subsurface scattering]], where the spatial locations for incoming and departing light are different. Surfaces rendered without accounting for subsurface scattering may appear unnaturally opaque — however, it is not necessary to account for this if transmission is included in the equation, since that will effectively include also light scattered under the surface, * [[Polarization (waves)|Polarization]], where different light polarizations will sometimes have different reflection distributions, for example when light bounces at a water surface, * [[Phosphorescence]], which occurs when light or other [[electromagnetic radiation]] is [[Absorption (electromagnetic radiation)|absorbed]] at one moment and emitted at a later moment, usually with a longer [[wavelength]] (unless the absorbed electromagnetic radiation is very intense), * [[Interference (wave propagation)|Interference]], where the wave properties of light are exhibited, * [[Fluorescence]], where the absorbed and emitted light have different [[wavelength]]s, * [[Nonlinear optics|Non-linear]] effects, where very intense light can increase the [[energy level]] of an [[electron]] with more energy than that of a single [[photon]] (this can occur if the electron is hit by two photons at the same time), and [[Emission (electromagnetic radiation)|emission]] of light with higher frequency than the frequency of the light that hit the surface suddenly becomes possible, and * [[Doppler effect]], where light that bounces off an object moving at a very high speed will get its wavelength changed: if the light bounces off an object that is moving towards it, the light will be [[blueshift]]ed and the [[photon]]s will be packed more closely so the photon flux will be increased; if it bounces off an object moving away from it, it will be [[redshift]]ed and the photon flux will be decreased. This effect becomes apparent only at speeds comparable to the [[speed of light]], which is not the case for most rendering applications. For scenes that are either not composed of simple surfaces in a vacuum or for which the travel time for light is an important factor, researchers have generalized the rendering equation to produce a ''volume rendering equation''<ref>{{Citation | last1 = Kajiya | first1 = James T. | last2 = Von Herzen | first2 = Brian P. | journal = ACM SIGGRAPH Computer Graphics | title = Ray tracing volume densities | doi = 10.1145/964965.808594 | year = 1984 | volume = 18 | pages = 165–174 | issue = 3| citeseerx = 10.1.1.128.3394 }} </ref> suitable for [[volume rendering]] and a ''transient rendering equation''<ref>{{Cite tech report| first=Adam M.| last=Smith |author2=Skorupski, James |author3=Davis, James| title=Transient Rendering| number=UCSC-SOE-08-26| institution=UC Santa Cruz| year=2008 | url=http://classes.soe.ucsc.edu/cmps290b/Fall07/TransientRendering/ucsc-soe-08-26.pdf}}</ref> for use with data from a [[time-of-flight camera]]. == References == <references /> == External links == * [http://graphics.stanford.edu/courses/cs348b-00/lectures/lecture12/ Lecture notes] from Stanford University course CS 348B, ''Computer Graphics: Image Synthesis Techniques'' [[Category:Computer graphics]]
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:Citation
(
edit
)
Template:Cite book
(
edit
)
Template:Cite conference
(
edit
)
Template:Cite tech report
(
edit
)
Template:Cite thesis
(
edit
)
Template:Cite web
(
edit
)
Template:Mvar
(
edit
)
Template:Short description
(
edit
)