## Siggraph 2014 : Moving Frostbite to Physically based rendering V2

July 14, 2015 31 Comments

The slides, course notes and Mathematica files of me and my-coworker Charles de Rousiers “Moving Frostbite to Physically based rendering” are available here (The course notes have been update to v2, mathematica files to v3):

http://www.frostbite.com/2014/11/moving-frostbite-to-pbr/

And also on the official PBR course website:

http://blog.selfshadow.com/publications/s2014-shading-course/ (To be update only slides for now)

The talk is a survey of current PBR technics and small improvement we have done for the Frostbite engine. It covert many topics. Here is the table of content of the course note (available on linked website):

1 Introduction

2 Reference

2.1 Validating models and hypothesis

2.2 Validating in-engine approximations

2.3 Validating in-engine reference mode

3 Material

3.1 Material models

3.2 Material system

3.3 PBR and decals

4 Lighting

4.1 General

4.2 Analytical light parameters

4.3 Light unit

4.4 Punctual lights

4.5 Photometric lights

4.6 Sun

4.7 Area lights

4.8 Emissive surfaces

4.9 Image based lights

4.10 Shadow and occlusion

4.11 Deferred / Forward rendering

5 Image

5.1 A Physically Based Camera

5.2 Manipulation of high values

5.3 Antialiasing

6 Transition to PBR

**v2 Update:**

During a year, we have get several feedbacks from various people on our document (Sorry we forget to do a list of all of them). There was several mistakes, typo and unclear statement. We have upgrade the course note with all the reported error and clarified some part. The v2 course contain the following list of correction (Also listed on page 98 in the new course note pdf document):

– Section 3.2.1 – Corrected wrong statement for describing the micro-specular occlusion of the Reflectance parameters: ”The lower part of this attribute defines a micro-specular occlusion term used for both dielectric and metal materials.”. Description of BaseColor and Reflectance parameters have been updated.

– Section 3.2.1 – Removed reference on Alex Fry work of normal encoding as it has not been done.

– Section 4.2 – Updated the description of color temperature for artificial lights sources. Including the concept of color correlated temperature (CCT).

– Section 4.4 – Clarified what is lightColor in Listing 4

– Section 4.5 – Clarified what is lightColor in Listing 5

– Section 4.6 – Updated and explained the computation of the Sun solid angle and the estimated illuminance at Earth surface.

– Section 4.7.2.2 – Added comment in Listing 7: FormFactor equation include a invPi that needs to be canceled out (with Pi) in the sphere and disk area light evaluation

– Section 4.7.2.2 – Clarified in which case the diffuse sphere area formula is exact above the horizon

– Section 4.7.2.3 – Clarified in which case the diffuse disk area formula is exact above the horizon

– Section 4.7.4 – Correct listing 15. getDiffuseDominantDir parameter N is float3

– Section 4.7.5 – Correct listing 16. getSpecularDominantDirArea parameters N and R are float3

– Section 4.9.2 – Corrected the PDF of the specular BRDF and equations from 48 to 60. They had missing components or mistakes. The code was correct.

– Section 4.9.3 – Correct listing 21/22/23. getSpecularDominantDir parameters N and R are float3. getDiffuseDominantDir parameters N and V are float3

– Section 4.9.5 – Added and update comment about reflection composition: The composition weight computation for medium range reflections was causing darkening if several local light probes were overlapping. The previous algorithm was considering that each local light probes visibility was covering a different part of the BRDF lobe (having 10 overlapping local light probes of 0.1 visibility result in 1.0). The new algorithm considers that it covers the same part of the BRDF lobe (Adding 10 overlapping local light probes of 0.1 visibility result in 0.1).

– Section 4.10.2 – Corrected listing 26. Roughness and smoothness were inverted. The listing have been updated and an improve formula have been provided. Figure 65 has been updated accordingly.

– Section 4.10.2 – Added a reference to “Is Accurate Occlusion of Glossy Reflections Necessary” paper.

– Section 5.2 – Table~\ref{tab:SmallFloat}: Fixed wrong largest value for 14-bit float format. 16-bit float format is a standard floating point format with implied 1 on the mantissa. Max exponent for 16-bit float is 15 (not 16, because 16 is reserved for INF). Largest value is . Whereas 14-bit float format has no leading 1, but a max exponent of 16. Largest value is . 10-bit and 11-bit float format follow same rules as 16-bit float format.

And here is the slides:

**Few notes**

Last year I was giving a talk about Remember Me at GDCEurope 2013 : The art and rendering of Remember Me. And I was saying: Read more of this post