Physically based rendering: Difference between revisions

Content deleted Content added
Add mention of 4th edition of Pharr et all book.
+History info (first video games to use it)
Line 11:
 
The phrase "Physically Based Rendering" was more widely popularized by [[Matt Pharr]], Greg Humphreys, and [[Pat Hanrahan]] in their book of the same name from 2004, a seminal work in modern computer graphics that won its authors a Technical Achievement [[Academy Award]] for [[special effects]].<ref name=":1">{{Cite book |last=Pharr |first=Matt |title=Physically Based Rendering: From Theory to Implementation |last2=Humphreys |first2=Greg |last3=Hanrahan |first3=Pat |publisher=Morgan Kaufmann |year=2004 |isbn=9780080538969 |edition=1st}}</ref> The book is now in its fourth edition.<ref name=":2">{{Cite book |last=Pharr |first=Matt |title=Physically Based Rendering: From Theory to Implementation |last2=Jakob |first2=Wenzel |last3=Humphreys |first3=Greg |publisher=The MIT Press |year=2023 |isbn=9780262048026 |edition=4th}}</ref>
 
The first successful, yet partial implementation of physically-based rendering in a video game can be found in the 2013 title Remember Me, that despite being built on a game engine not natively supporting this technology ([[Unreal Engine#Unreal Engine 3|Unreal Engine 3)]] was properly modified to accommodate this feature.<ref name=":3" /> Despite being a moderate approach to PBR, its accuracy has been further refined with posterior titles such as [[Ryse: Son of Rome]] and [[Killzone Shadow Fall]], released on the same year, until the current state of PBR advancements in the 2020s. <ref name=":4" /> <ref name=":5" />
 
==Process==
 
[[File:Physically Based Rendering Sample 1.png|thumb|upright=1.2|[[Bricks]] rendered using PBR. Even though this is a rough, [[Opacity (optics)|opaque]] surface, more than just diffuse light is reflected from the brighter side of the material, creating small highlights, because "everything is shiny" in the physically-based rendering model of the real world. [[Tessellation (computer graphics)|Tessellation]] is used to generate an object [[mesh]] from a [[heightmap]] and [[normal mapping|normal map]], creating greater detail.]]
PBR is, as Joe Wilson puts it, "more of a concept than a strict set of rules"<ref name=":3">Wilson, Joe. [https://www.marmoset.co/posts/physically-based-rendering-and-you-can-too/ "Physically Based Rendering – And You Can Too!"] Retrieved on 12 Jan 2017.</ref> – but the concept contains several distinctive points of note. One of these is that – unlike many previous models that sought to differentiate surfaces between non-reflective and reflective – PBR recognizes that, in the real world, as John Hable puts it, "everything is shiny".<ref>Hable, John . [http://filmicgames.com/archives/547 "Everything Is Shiny"] {{Webarchive|url=https://web.archive.org/web/20161205184849/http://filmicgames.com/archives/547 |date=2016-12-05 }}. Retrieved on 14 November 2016.</ref> Even "flat" or "matte" surfaces in the real world such as [[concrete]] will reflect a small degree of light, and many [[metal]]s and [[liquid]]s will reflect a great deal of it. Another thing that PBR models attempt to do is to integrate [[photogrammetry]] - measurements from photographs of real-world materials - to study and replicate real physical ranges of values to accurately simulate [[albedo]], [[gloss (optics)|gloss]], [[reflectivity]], and other physical properties. Finally, PBR puts a great deal of emphasis on [[Specular highlight#Microfacets|microfacets]], and will often contain additional textures and mathematical models intended to model small-scale [[specular highlights]] and [[ambient occlusion|cavities]] resulting from smoothness or roughness in addition to traditional specular or reflectivity maps.
 
===Surfaces===
Line 21 ⟶ 23:
PBR often utilize [[Bidirectional scattering distribution function]]s to calculate the visible light reflected at a given point on [[surface]]s. Common techniques use approximations and simplified models that try to [[Curve fitting|fit]] approximate models to more accurate data from other more time consuming methods or laboratory measurements (such as those of a [[gonioreflectometer]]).
 
As described by researcher Jeff Russell of Marmoset, a surface-focused physically based rendering pipeline may also focus on the following areas of research:<ref name=":5">Russell, Jeff, [https://marmoset.co/posts/basic-theory-of-physically-based-rendering/ "PBR Theory"]. Retrieved on 20 August 2019.</ref>
* [[Reflection (computer graphics)|Reflection]]
* [[Diffuse reflection|Diffusion]]
Line 71 ⟶ 73:
* [[Unreal Engine]]
* [[Webots]]
A typical application provides an intuitive [[graphical user interface]] that allows artists to define and layer materials with arbitrary properties and to assign them to a given 2D or 3D object to recreate the appearance of any synthetic or organic material. Environments can be defined with procedural shaders or textures as well as procedural geometry or meshes or [[point cloud]]s.<ref name=":4">{{Cite web|url=https://help.sketchfab.com/hc/en-us/articles/209143806-Point-Clouds|title=Point Clouds|website=Sketchfab Help Center|language=en-US|access-date=2018-05-29}}</ref> If possible all changes are made visible in real-time and therefore allow for quick iterations. Sophisticated applications allow savvy users to write custom shaders in a [[shading language]] such as [[HLSL]] or [[GLSL]], though increasingly node-based material editors that allow a graph-based workflow with native support for important concepts such as light position, levels of reflection and emission and metallicity, and a wide range of other math and optics functions are replacing hand-written shaders for all but the most complex applications.
 
== See also ==