This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
gamedev:pbr [2012/12/04 12:33] – dragonlord | gamedev:pbr [2020/04/05 10:36] (current) – dragonlord | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | {{tag> | ||
<WRAP youarehere> | <WRAP youarehere> | ||
- | [[: | + | [[: |
</ | </ | ||
+ | |||
+ | ====== Physically based Rendering ====== | ||
For a much more in depth discussion about the topic of using physically based rendering in games see the [[http:// | For a much more in depth discussion about the topic of using physically based rendering in games see the [[http:// | ||
- | ====== | + | ====== Rendering Methods ====== |
There exist various rendering models that can be used to render computer graphics. Nearly all of the rendering in games is using a sort of **ad-hoc rendering method**. These are rendering methods that contain parameters in the rendering equations that are **interlinked** and/or **unintuitive to use**. These game engines or rendering engines expose some kind of **specularity** value typically paired with some kind of **exponent** parameter. The specularity represents in these systems the strength of the specular reflections of light sources on a material. The expoonent on the other hand defines the shape of the specular reflection. A well known method is the Phong rendering in which the specular exponent is of a cosine form whereas the specularity is a percentage value between 0% and 100% of the light added as specular reflection. The main problem with these systems is that in reality the speculiarty and exponent values vary across the material for different **viewing directions** as well as different **lighting conditions**. One set of parameters tuned for one lighting condition does usually not work well at all for an entirely different lighting condition. This is due to the fact that for different lighting conditions these parameters have to adjusted. This is though neither feasible to do nor is it easy for the artist. What is the proper specular exponent to use for a model? And what is the correct specular reflection strength to use? Answering these questions for an artist is a problem in many cases. In the end these Ad-hoc rendering methods result in artificial renders and artists having to adjust lighting parameters whenever the lighting conditions change in a scene. | There exist various rendering models that can be used to render computer graphics. Nearly all of the rendering in games is using a sort of **ad-hoc rendering method**. These are rendering methods that contain parameters in the rendering equations that are **interlinked** and/or **unintuitive to use**. These game engines or rendering engines expose some kind of **specularity** value typically paired with some kind of **exponent** parameter. The specularity represents in these systems the strength of the specular reflections of light sources on a material. The expoonent on the other hand defines the shape of the specular reflection. A well known method is the Phong rendering in which the specular exponent is of a cosine form whereas the specularity is a percentage value between 0% and 100% of the light added as specular reflection. The main problem with these systems is that in reality the speculiarty and exponent values vary across the material for different **viewing directions** as well as different **lighting conditions**. One set of parameters tuned for one lighting condition does usually not work well at all for an entirely different lighting condition. This is due to the fact that for different lighting conditions these parameters have to adjusted. This is though neither feasible to do nor is it easy for the artist. What is the proper specular exponent to use for a model? And what is the correct specular reflection strength to use? Answering these questions for an artist is a problem in many cases. In the end these Ad-hoc rendering methods result in artificial renders and artists having to adjust lighting parameters whenever the lighting conditions change in a scene. | ||
Line 36: | Line 40: | ||
represents the alignment of mirrors on the surface. This determines hw sharp the reflections are and thus how broad the specular hightlight is. This parameter is the most complicated one because the different BRDF function possibilities for the Surface Reflectance have all kinds of roughness parameters going from 0 all the way up to infinity. For an artist this is not easy to use. For this reason a special definition has been created with a generic roughness parameter in the range from 0 (mirror) to 1 (fully diffuse) with a gradual change from mirror to diffuse. This way the Graphic Module can decide itself what BRDF function to use and maps the roughness parameter itself. The **[[gamedev: | represents the alignment of mirrors on the surface. This determines hw sharp the reflections are and thus how broad the specular hightlight is. This parameter is the most complicated one because the different BRDF function possibilities for the Surface Reflectance have all kinds of roughness parameters going from 0 all the way up to infinity. For an artist this is not easy to use. For this reason a special definition has been created with a generic roughness parameter in the range from 0 (mirror) to 1 (fully diffuse) with a gradual change from mirror to diffuse. This way the Graphic Module can decide itself what BRDF function to use and maps the roughness parameter itself. The **[[gamedev: | ||
- | ===== Dielectric and Metal Materials ===== | + | ===== Dielectric and Metallic |
<WRAP box 150px right :en> | <WRAP box 150px right :en> | ||
- | {{ : | + | {{ : |
- | <WRAP centeralign> | + | <WRAP centeralign> |
</ | </ | ||
<WRAP box 150px right :en> | <WRAP box 150px right :en> | ||
Line 46: | Line 50: | ||
</ | </ | ||
- | In games materials can be classified roughly in two main categories: dielectric and metal. Metals have the disticntive property that they have next to no Subsurface Reflectance (**[[gamedev: | + | In games materials can be classified roughly in two main categories: dielectric and metallic. Metals have the disticntive property that they have next to no Subsurface Reflectance (**[[gamedev: |
<WRAP center round important 80%> | <WRAP center round important 80%> | ||
Line 57: | Line 61: | ||
<WRAP center round important 80%> | <WRAP center round important 80%> | ||
- | The importance shifts thus from authoring two or more textures (specular color, glossiness, exponent) of unintuitive parameters working at only one lighting condition to one roughness texture with an intuitive parameter. If metallic and non-metallic | + | The importance shifts thus from authoring two or more textures (specular color, glossiness, exponent) of unintuitive parameters working at only one lighting condition to one roughness texture with an intuitive parameter. If metallic and dielectric |
</ | </ | ||
Line 66: | Line 70: | ||
Physically based rendering is thus foremost about **reducing the material parameters** artists and game developers have to deal with to a small set of **intuitive**, | Physically based rendering is thus foremost about **reducing the material parameters** artists and game developers have to deal with to a small set of **intuitive**, | ||
</ | </ | ||
- | + | ||
+ | ====== Example Materials ====== | ||
+ | Images of some example materials can be found in the **[[gamedev: |