Reflection (computer graphics): Difference between revisions

Content deleted Content added
m cleaned up the description of reflection
m Approaches to reflection rendering: Add spaces between word and round bracket
 
(5 intermediate revisions by 4 users not shown)
Line 1:
{{short description|Simulation of reflective surfaces}}
{{More citations needed|date=November 2022}}
[[Image:Refl sample.jpg|frame|right|[[Ray tracing (graphics)|Ray-traced]] model demonstrating specular reflection.]]
'''Reflection''' in [[computer graphics]] is used to render [[reflection (physics)|reflective]] objects like [[mirror]]s and shiny surfaces.
 
Line 7:
 
==Approaches to reflection rendering==
[[File:CG reflections comparison.png|thumb|right|upright=1|Comparison of accurate reflections computed with [[path tracing]] (left), approximate reflections with [[environment mapping]] (middle), and screen space reflections (right).]]
For rendering environment reflections there exist many techniques that differ in precision, computational and implementation complexity. Combination of these techniques are also possible.
 
Line 16:
Reflections on non-planar (curved) surfaces are more challenging for real time rendering. Main approaches that are used include:
 
*[[Environment mapping]] (e.g. [[cube mapping]]): a technique that has been widely used e.g. in video games, offering reflection approximation that's mostly sufficient to the eye, but lacking self-reflections and requiring prerenderingpre-rendering of the environment map.<ref name="randima">{{cite book|last1=Fernando|first1=Randima|last2=Kilgard |first2=Mark|title=The Cg tutorial. The definitive guide to programmable real-time graphics|date=2003|publisher=Addison-Wesley Professional|isbn=9780321194961}}</ref>{{rp|174}} The precision can be increased by using a spatial array of environment maps instead of just one. It is also possible to generate cube map reflections in real time, at the cost of memory and computational requirements.<ref name="Hongtongsak">{{Cite web |last=Hongtongsak |first=Kevin |title=Dynamic Cubemapping |url=https://people.engr.tamu.edu/sueda/courses/CSC471/2016S/demos/khongton/index.html |access-date=2024-03-09 |website=people.engr.tamu.edu}}</ref>
*Screen space reflections (SSR): a more expensive technique that traces reflection rays income screenfrom spacepixel (as opposed to world space in edata.g. ray tracing). This isrequires donethe fordata eachof renderedsurface pixelnormal ofand theeither reflecteddepth surface,buffer using(local thespace) surfaceor normalposition andbuffer scene(world depthspace). The disadvantage is that objects not captured in the rendered frame cannot appear in the reflections, which results in unresolved intersections and incompleteor reflectionfalse image subsequentlyintersections causing artefacts onsuch theas edgereflection ofvanishment theand reflectionvirtual image. SSR was originally introduced as Real Time Local Reflections and wasin later[[CryENGINE changed3]].<ref>{{cite web |last=Kasyan |first=Nickolay |last2=Schulz |first2=Nicolas |last3=Sousa |first3=Tiago |date=18 August 2011 |title=Secrets of CryENGINE 3 Graphics Technology |url=http://www.klayge.org/material/4_1/SSR/S2011_SecretsCryENGINE3Tech_0.pdf |accessdate=27 November 2022}}</ref>
 
==Types of reflection==
Line 31:
 
===Polished or mirror reflection===
[[Image:Mirror2.jpg|frame|right|Mirror on wall rendered with 100% reflection.]]
Mirrors are usually almost 100% reflective.
{{clear}}
Line 74:
 
{{DEFAULTSORT:Reflection (Computer Graphics)}}
{{Computer graphics}}
[[Category:Computer graphics]]
[[Category:3D computer graphics]]