Physical Based Rendering

James Brady nearly had my head for not knowing this, so I went and learnt a bit on what PBR meant.

PBR (Physical Based Rendering) treats light the way it is in the physical world, creating accurate material definitions. It refers to concepts like energy conservation, physically plausible scattering and layering in materials and linear color spaces.

PBR explained through gaming. (YouTube, 2016).

Photons and Scattering

In rendering, light is created through the stimulation of protons, which travel through the air and bounce of surfaces and through volumes, eventually colliding with the camera sensor. The combination of all of these forms the rendered image.

Surface shaders literally means how a surface interacts with photons. When photons hit an object, they are absorbed, refract through the surface, are reflected off it, or scatter on the inside of the object. These things combined contribute to the variety of appearances in materials.

Energy Conservation

Surfaces can’t return more energy than they take in from a light source (unless they themselves are acting as a light- emitting photons). For a material to conserve energy,  the number of photons leaving the surface should be smaller or equal to the number of incoming photons. If materials do not follow this principle, they will appear overly bright, and the render will have an increased noise level (esp. using global illumination). To keep materials from doing this, the weight and color of material components should never exceed 1.

Materials

Objects, when looked at in detail, contain a lot of small intricate detailing. In rendering, modelling does not express this kind of detail, instead, statistical models are used with easy to understand parameters. These are made of different components, which I researched more into, below;

Diffuse and Subsurface Scattering

I researched the use of the diffuse interior. When photons enter an object, they bounce around the inside and are absorbed or exit the object at another location. If the photons scatter many times, a diffuse appearance occurs, created when the photons leave the surface at many different locations and directions. I found the below information explained how this would be used in practice.

For materials like skin, photons can scatter relatively far under the surface giving a very soft appearance, which we render with subsurface scattering. For materials like unfinished wood, photons do not scatter very far which gives a harder appearance, and we render these as diffuse. For thin objects like leaves, the photons can scatter all the way to the other side of the object, which we render as diffuse backlighting.Note that fundamentally all of these types of materials have the same underlying physical mechanism, even though we provide separate controls for them in the shader. (Support.solidangle.com, 2016).

The diffuse interior has the biggest influence on the actual colour of the mater. As each photon is associated with a known wavelength (and a particular one), depending on the properties, some are more likely to be absorbed than others.  This in turn means that photons with some wavelengths are more likely to leave the surface, which will give it a colored appearance.

image2015-12-21 11_8_13.png

 The skin of a red apple mostly reflects red light. Only the red wavelengths are scattered back outside the apple skin and the others are absorbed by it.  (Support.solidangle.com, 2016).

Energy Conservation

A single photon can only participate in one of the diffusesubsurface scattering and backlighting components, for physical correctness we do not want more photons leaving the surface than entering. For aiStandard we must manually ensure that the sum of diffusesubsurface scattering and backlighting weights does not exceed 1. For alSurface it is automatically ensured that the sum of these components is not higher than 1.

Specular Scattering

In the above graphic, the specular roughness is show from 0 to 1. (Support.solidangle.com, 2016).

Roughness

The specular layer is modelled using a microfacet distribution. It is taken that a surface is made up of thousands of tiny faces, facing in random directions. A low roughness surface (i.e. a mirror) has little variations in between these faces, giving sharp reflections. With high roughness, there is a lot of variation in the faces, giving softer, glossy reflections.

glossy-reflection-rays-jpg

 

Glossy surface- angle of incidence and reflection are equal. (Support.solidangle.com, 2016).
glossy-roughness.jpg.png
Diffuse surface- angle of reflection varies a lot! (Support.solidangle.com, 2016).

 

Roughness Map

A map connected to the specular roughness creates a variation on the surface highlights. It not only changes the brightness of the highlight, but also the size and sharpness in the environmental reflection.

roughness-map-3

High specular roughness.

roughness-map-1.jpg

Low specular roughness.

Refraction

Photons refract though a surface, as well as being reflected off it. Photons will pass through the specular layer, typically changing direction when exiting on the other side of the layer, controlled by the index of refraction (IOR). If an object’s interior is transparent (e.g. glass), the photons can pass through and exit the opposite side.  If there is a diffuse interior, the photon can scatter inside the object and get absorbed or exit the object again.

The more refractive the specular layer, the more the underlying diffuse interior will be visible. For materials like metals, photons refracting through the specular are often immediately absorbed, and so the diffuse interior is not visible.

Reflection of Light.jpg

Refraction of a mirror- ah the GCSE Physics memories.

Fresnel

The actual percentage of photos that is either reflected or refracted by the specular layer is dependent on the view. Looking at a surface head on, most of the light is refracted. Whereas, looking as the grazing angles, most light is reflected. This is known as the Fresnel effect. The index of refraction controls exactly how this effect varies with the viewing angle.

 

FINISH

https://support.solidangle.com/display/AFMUG/Understanding+Physically+Based+Rendering+in+Arnold

Energy Conservation

For mixing diffuse, specular reflection and refraction components in a physically plausible way, it’s best to use Fresnel. Their color weights can be anywhere in the range from 0 to 1, and the shader will mix them in a way that’s energy conserving.

For the Standard shader it’s best to enable Fresnel to affect specular, diffuse and SSS, and to control the effect using the index of refraction. alSurface will use Fresnel by default.

Opacity and Transmittance

Opacity is best understood as a way to model surface geometry using textures. It does not affect how photons interact with the surface, but rather indicates where the surface’s geometry is absent and the photons can pass straight through.

Ramp texture connected to the opacity

 

A typical use for opacity would be a sprite type of effect, such as cutting out the shape of a leaf from a polygon card or making the tips of hair strands transparent. Be warned however that scenes containing many opacity sprites (for example tree leaves) can slow down rendering considerably.

References

YouTube. (2016). What is PBR? Physically-Based Rendering Explained. [online] Available at: https://www.youtube.com/watch?v=7NjGETJMZvY [Accessed 4 Nov. 2016].

Support.solidangle.com. (2016). Understanding Physically Based Rendering in Arnold – Arnold for Maya User Guide – Solid Angle. [online] Available at: https://support.solidangle.com/display/AFMUG/Understanding+Physically+Based+Rendering+in+Arnold [Accessed 4 Nov. 2016].

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s