Name | Car Paint | Metal
--------------------|:----------------------------------------------------:|:-----------------:
Albedo | (0.009,0.013,0.028) | (0.5,0.5,0.5)
Metallic | *1* | *1*
Roughness | 0.4 | 0.1
Anisotropy | *0* | 0
Anisotropy Rotation | *0* | 0
Normal | *(0,0,1)* | (0,0,1)
Transparency | *0* | *0*
Cut-Out Opacity | 1 | 1
Sheen | *0* | *0*
Specular | *1* | *1*
Specular Tint | *(1,1,1)* | *(1,1,1)*
Clearcoat | 1 | *0*
Clearcoat Roughness | 0 | *0*
Clearcoat Normal | (0,0,1) | *(0,0,1)*
| ![](img/subtypes_carpaint.png width="160px") | ![](img/subtypes_metal.png width="160px")
[Table [subtypes-parameters-metals]: List of fixed (italic light grey) and user-defined values with their defaults for the parameters of the different recommended metallic material subtypes. Emissive, clear-coat and volumetric parameters are omitted because the effects are not available and parameters can be kept at their defaults (Section [components]).]

Name | Basic | Emissive | Textile | Wood |
--------------------|:-------------------------------------------------:|:------------------------------------------------:|:-------------------------------------------------:|:------------------------------------------:|
Albedo | (0.284,

0.284,

0.284) | *(0,0,0)* | (0.844,

0.82,

0.666) | (0.344,

0.227,

0.07) | Roughness | 0.3 | *0* | 0.4 | 0.5 | Anisotropy | 0 | *0* | *0* | *0* | Anisotropy Rotation | *0* | *0* | 0 | 0 | Normal | (0,0,1) | *(0,0,1)* | (0,0,1) | (0,0,1) | Transparency | *0* | *0* | 0 | 0 | Cut-Out Opacity | 1 | 1 | 1 | 1 | Sheen | *0* | *0* | 0.3 | *0* | Specular | *1* | *0* | *1* | *1* | Specular Tint | *(1,1,1)* | *(0,0,0)* | *(1,1,1)* | *(1,1,1)* | Clearcoat | *0* | *0* | *0* | 1 | Clearcoat Roughness | *0* | *0* | *0* | 0 | Clearcoat Normal | *(0,0,1)* | *(0,0,1)* | *(0,0,1)* | (0,0,1) | Emission Color | *(1,1,1)* | (0.5,

0.442,

0.298) | *(1,1,1)* | *(1,1,1)* | Emission Value | *0 lx* | 10 lx | *0 lx* | *0 lx* | Energy Norm. | *false* | false | *false* | *false* | Thin Walled | *true* | *true* | *true* | *true* | Index of Refraction | *1.5* | *1.5* | *1.5* | *1.5* | | ![](img/subtypes_basic.png width="100px") | ![](img/subtypes_emissive.png width="100px") | ![](img/subtypes_textileleather.png width="100px")| ![](img/subtypes_wood.png width="100px") | [Table [subtypes-parameters-opaque-dielectrics]: List of fixed (italic light grey) and user-defined values with their defaults for the parameters of the different recommended non-volumetric dielectric material subtypes. Volumetric parameters are omitted because the effects are not available and parameters can be kept at their defaults (Section [components]).]

0.284,

0.284) | *(0,0,0)* | (0.844,

0.82,

0.666) | (0.344,

0.227,

0.07) | Roughness | 0.3 | *0* | 0.4 | 0.5 | Anisotropy | 0 | *0* | *0* | *0* | Anisotropy Rotation | *0* | *0* | 0 | 0 | Normal | (0,0,1) | *(0,0,1)* | (0,0,1) | (0,0,1) | Transparency | *0* | *0* | 0 | 0 | Cut-Out Opacity | 1 | 1 | 1 | 1 | Sheen | *0* | *0* | 0.3 | *0* | Specular | *1* | *0* | *1* | *1* | Specular Tint | *(1,1,1)* | *(0,0,0)* | *(1,1,1)* | *(1,1,1)* | Clearcoat | *0* | *0* | *0* | 1 | Clearcoat Roughness | *0* | *0* | *0* | 0 | Clearcoat Normal | *(0,0,1)* | *(0,0,1)* | *(0,0,1)* | (0,0,1) | Emission Color | *(1,1,1)* | (0.5,

0.442,

0.298) | *(1,1,1)* | *(1,1,1)* | Emission Value | *0 lx* | 10 lx | *0 lx* | *0 lx* | Energy Norm. | *false* | false | *false* | *false* | Thin Walled | *true* | *true* | *true* | *true* | Index of Refraction | *1.5* | *1.5* | *1.5* | *1.5* | | ![](img/subtypes_basic.png width="100px") | ![](img/subtypes_emissive.png width="100px") | ![](img/subtypes_textileleather.png width="100px")| ![](img/subtypes_wood.png width="100px") | [Table [subtypes-parameters-opaque-dielectrics]: List of fixed (italic light grey) and user-defined values with their defaults for the parameters of the different recommended non-volumetric dielectric material subtypes. Volumetric parameters are omitted because the effects are not available and parameters can be kept at their defaults (Section [components]).]

Name | Glass | Plastic |
--------------------|:-----------------------------------------------:|:---------------------------------------------------:|
Albedo | (1,1,1) | (0.004,

0.004,

0.004) | Roughness | 0 | 0.25 | Metallic | *0* | *0* | Anisotropy | *0* | *0* | Anisotropy Rotation | *0* | *0* | Normal | (0,0,1) | (0,0,1) | Transparency | *1* | 0 | Cut-Out Opacity | 1 | 1 | Sheen | *0* | *0* | Specular | *1* | *1* | Specular Tint | *(1,1,1)* | *(1,1,1)* | Thin Walled | false | true | Index of Refraction | *1.5* | 1.5 | Attenuation Color | (0.99,

0.99,

0.99) | (1,1,1) | Attenuation Distance| 5 mm | 0.01 mm | Subsurface Color | *(0,0,0)* | (0,0,0) | | ![](img/subtypes_glass.png width="160px") | ![](img/subtypes_plastic.png width="160px") | [Table [subtypes-parameters-transparent-dielectrics]: List of fixed (italic light grey) and user-defined values with their defaults for the parameters of the different recommended transparent dielectric material subtypes. Emissive and clear-coat parameters are omitted because the effects are not available and parameters can be kept at their defaults (Section [components]).]

Design Rationale
================
The Enterprise PBR Shading Model is the basis for a large variety of use-cases, ranging from high-performance VR applications to high-quality offline GI renderings. However, it is not expected that it will cover all use-cases one can imagine, but it should be sufficient for day-to-day use. This requires some tradeoffs, which are based on the following guidelines and requirements.
Most important, the material should be *easy to use* for inexperienced users, but still powerful enough for trained artists in real-time rendering and global illumination. For this reason, the material has only a small amount parameters, following industry-standard workflows known from real-time engines (Unreal Engine 4, Unity Engine) and movie production (Disney BRDF). Using the *metallic/roughness workflow*, it is possible to create a wide varietey of materials from just a very small subset of the whole parameter set, namely albedo, metallic, roughness and normal map. Another aspect of this is the fact that it allows users to parametrize materials in a way that they are *physically-based as a default*, but can be tweaked when needed for more artistic freedom, for example via the specular tint and specular parameters. Wherever possible, the parameters are linear and texturable, so that *layering via parameter blending* is possible. Notable exceptions are parameters affecting the volume, because there are no texture coordinates available inside an object.
Especially for GI renderers, there are certain physical and mathematical properties that materials or BSDFs must fullfill. A BSDF must obey *Helmholtz reciprocity* (for bidirectional rendering methods), be *positive* and *energy conserving* (for fast convergence).
*Performance in real-time rendering* is a critical aspect. Most parameters do not influence each other or have a clearly defined state in which an effect is disabled, making it possible to specialize shader code for certain use-cases. Clearly, offline GI rendering also profits from this, but besides that it is also important to choose BSDFs that can be *sampled efficiently*, like the GGX microfacet model.
As many software packages offer a unified interface to different renderers, *consistency across renderers* and rendering-algorithms is another key requirement for the material. A material prepared in one renderer, for example in GI, should look the same in other renderers, for example in a rasterizer. As this is not always possible, because some effects like refraction or brute-force subsurface scattering are impossible in a real-time rasterizer, the *rasterizers will approximate* the *ground-truth GI solution*. The material is defined in a way that it encourages approximations wherever possible.
Not all real-world effects can be rendered with the Enterprise PBR Shading Model. Especially for high-quality renderings or light simulation, artists and engineers need more flexbility. Other material systems like [Open Shading Language (OSL)](https://github.com/imageworks/OpenShadingLanguage) from Imageworks or [Material Definition Language (MDL)](http://mdlhandbook.com/) from NVIDIA allow users to build their own materials from basic building blocks structured as a node graph. The [Appearance Exchange Format (AxF)](https://www.xrite.com/axf) from X-Rite stores results from a capturing process using their material scanners. Such material systems and models are projected onto the parameters of the Enterprise PBR Shading Model via *fitting* (or *distilling*).
Appendix
========
Combining Metallic and Dielectric BSDFs
---------------------------------------
The core of the Enterprise PBR Material is a weighted sum of three BSDFs, the metallic BSDF, the opaque and the transparent dielectric BSDF. The similarity between the BSDFs allows us to simplify the material significantly. We start from the sum of the three BSDFs:
\begin{eqnarray}
&\text{ThinCore}(\rho, s, \eta, \rho_s, b) &=&\\
&&m & \text{Metallic}(\rho) \nonumber\\
&+&(1-m)(1-t) & \text{OpaqueDielectric}(\rho, s, \eta, \rho_s, b) \nonumber\\
&+&(1-m)t & \text{ThinTransparentDielectric}(\rho, s, \eta, \rho_s) \nonumber
\end{eqnarray}
Note that we omitted some parameters here to make the equations shorter. These do not influence the weighting.
\begin{eqnarray}
\text{ThinCore}(\rho, s, \eta, \rho_s, b) &=& \text{ThinCore}(\mathbf{v}, \mathbf{l}; r_u, r_v, \rho, s, \eta, \rho_s, b) \\
\text{Metallic}(\rho) &=& \text{Metallic}(\mathbf{v}, \mathbf{l}; r_u, r_v, \rho) \\
\text{OpaqueDielectric}(\rho, s, \eta, \rho_s, b) &=& \text{OpaqueDielectric}(\mathbf{v}, \mathbf{l}; r_u, r_v, \rho, s, \eta, \rho_s, b) \\
\text{ThinTransparentDielectric}(\rho, s, \eta, \rho_s) &=& \text{ThinTransparentDielectric}(\mathbf{v}, \mathbf{l}; r_u, r_v, \rho, s, \eta, \rho_s)
\end{eqnarray}
Substituting all terms leads to
\begin{eqnarray}
&\text{ThinCore}(\rho, s, \eta, \rho_s, b) &=& \\
&&m & M_r \, F(\cos\theta_r; \rho, 1) \nonumber\\
&+&m & M_{r,ms} \, F_{ms}(\rho, 1) \nonumber\\
&+&(1-m)(1-t) & \rho \, B(\mathbf{v}, \mathbf{l}; s, F_0, \rho_s, b) \nonumber\\
&+&(1-m)(1-t) & s\,M_r \, F(\cos\theta_r; F_0 \rho_s, 1) \nonumber\\
&+&(1-m)(1-t) & s\,M_{r,ms} \, F_{ms}(F_0 \rho_s, 1) \nonumber\\
&+&(1-m)t & s \, M_r \, F(\cos\theta_r; F_0 \rho_s, 1) \nonumber\\
&+&(1-m)t & \rho\,{M_t}^\prime \, (1 - s \, F(\cos\theta_t; F_0 \rho_s, 1)) \nonumber\\
&+&(1-m)t & s\,M_{r,ms} \, F_{ms}(F_0 \rho_s, 1) \nonumber \\
\end{eqnarray}
and after rearranging we get
\begin{eqnarray}
&=&& M_r \left[
m \, F(\cos\theta_r; \rho, 1) +
(1-m) (1-t) s \,F(\cos\theta_r; F_0 \rho_s, 1) +
(1-m) t s \, F(\cos\theta_r; F_0 \rho_s, 1)
\right] \nonumber\\
&&+& M_{r,ms} \left[
m \, F_{ms}(\rho, 1) +
(1-m) (1-t) s \, F_{ms}(F_0 \rho_s, 1) +
(1-m) t s F_{ms}(F_0 \rho_s, 1)
\right] \nonumber\\
&&+& (1-m)t \rho\,{M_t}^\prime \, (1 - s \, F(\cos\theta_t; F_0 \rho_s, 1)) \nonumber\\
&&+& (1-m)(1-t) \rho \, B(\mathbf{v}, \mathbf{l}; s, F_0, \rho_s, b)
\end{eqnarray}
With the Schlick approximation for the Fresnel term
\begin{equation}
F(\cos\theta,f_0,f_{90}) = f_0 + (f_{90} - f_0) (1 - \cos\theta)^5
\end{equation}
the following properties hold
\begin{eqnarray}
a \, F(\cos\theta,f_0,f_{90}) &=& F(\cos\theta, a \, f_0, a \, f_{90}) \\
F(\cos\theta, a, b) + F(\cos\theta, c, d) &=& F(\cos\theta, a+c, b+d)
\end{eqnarray}
Approximately, that is also the case for the multi-scattering Fresnel $F_{ms}$, so we assume
\begin{eqnarray}
a \, F_{ms}(f_0,f_{90}) &\approx& F_{ms}( a \, f_0, a \, f_{90}) \\
F_{ms}(a, b) + F_{ms}(c, d) &\approx& F_{ms}(a+c, b+d)
\end{eqnarray}
This allows us to simplify the combined BSDFs and we arrive at the final form:
\begin{eqnarray}
\text{ThinCore}(\rho, s, \eta, \rho_s, b)&=&& M_r F(\cos\theta_r; (1-m) s F_0 \rho_s + m \rho, (1-m)s + m) \nonumber\\
&&+& M_{r,ms} F_{ms}((1-m) s F_0 \rho_s + m \rho, (1-m)s + m)) \nonumber\\
&&+& (1-m)t \rho\,{M_t}^\prime \, (1 - s \, F(\cos\theta_t; F_0 \rho_s, 1)) \nonumber\\
&&+& (1-m)(1-t) \rho \, B(\mathbf{v}, \mathbf{l}; s, F_0, \rho_s, b)
\end{eqnarray}
Energy Compensation
-------------------
### Multiple-Scattering GGX BRDFs
The missing energy due to the missing multiple-scattering in the GGX microfacet model $M_r(\mathbf{v},\mathbf{l})$ is approximated by adding an additional compensation term $M_{r,ms}(\mathbf{v},\mathbf{l})$ [#KC17].
\begin{eqnarray}
f_{r,1}(\mathbf{v},\mathbf{l}) &=& M_r(\mathbf{v},\mathbf{l}) + M_{r,ms}(\mathbf{v},\mathbf{l}) \\
&=& M_r(\mathbf{v},\mathbf{l}) + \frac{(1 - E_m(\mathbf{v}\cdot\mathbf{n})(1 - E_m(\mathbf{l}\cdot\mathbf{n}))}{\pi (1 - E_{m,avg})}
\end{eqnarray}
We first omit the Fresnel term for simplicity, assuming that the material is 100% reflective. $E_m$ and $E_{m,avg}$ denote the directional albedo and average albedo respectively, and will be computed in the following.
First we compute the directional albedo $E_m(\mathbf{v})$.
\begin{eqnarray}
E_m(\mathbf{v}) &=& \int_{\Omega_\mathbf{l}} M_r(\mathbf{v}, \mathbf{l}) \langle \mathbf{l}, \mathbf{n} \rangle \, \mathrm d \mathbf{l} \\
\implies E_m(\theta_v, \phi_v) &=& \int_{0}^{2\pi} \int_{0}^{\frac{\pi}{2}} M_r(\theta_l, \phi_l, \theta_v, \phi_v) \cos \theta_l \sin \theta_l \, \mathrm d \theta_l \, \mathrm d \phi_l
\end{eqnarray}
We are only interested in the difference between $\phi_l$ and $\phi_v$, because rotating the BRDF does not change the result. Therefore, with $\phi=\phi_l - \phi_v$ and $\phi_v = 0$ ($\implies \mathrm d \phi = \mathrm d \phi_l$) we get
\begin{eqnarray}
E_m(\theta_v) &=& \int_{0}^{2\pi} \int_{0}^{\frac{\pi}{2}} M_r(\theta_l, \phi, \theta_o) \cos \theta_l \sin \theta_l \, \mathrm d \theta_l \, \mathrm d \phi
\end{eqnarray}
By reparameterization with $\mu_{l,v} = \cos \theta_{l,v}$ ($\implies \mathrm d \mu_{l,v} = -\sin \theta_{l,v} \, \mathrm d \theta_{l,v}$), we arrive at the simpler form
\begin{eqnarray}
E_m(\mu_v) = \int_{0}^{2\pi} \int_{0}^{1} M_r(\mu_l, \phi, \mu_v) \, \mu_l \, \mathrm d \mu_l \, \mathrm d \phi
\end{eqnarray}
Evaluating this integral for different values of $\mu_v$ and isotropic roughness $r$ results in the image shown in Figure [energy-compensation-ggx-e].
![Figure [energy-compensation-ggx-e]: Directional albedo of single-scattering microfacet GGX BRDF](img/energycomp_ggx_e.png)
Integrating over the hemisphere once more gives us the average albedo (Figure [energy-compensation-ggx-e-avg]):
\begin{eqnarray}
E_{m, avg} &=& 2 \int_0^1 E_{m}(\mu_v) \mu_v \, \mathrm d \mu_v
\end{eqnarray}
![Figure [energy-compensation-ggx-e-avg]: Average albedo of single-scattering microfacet GGX BRDF](img/energycomp_ggx_e_avg.png)
We are now able to store these results in a lookup table (e.g., with a size of 32x32 pixels) and fetch them during the evaluation of the BSDF to compute the energy compensation term $M_{r,ms}(\mathbf{v},\mathbf{l})$. Alternatively, we provide a numerical fit for the data in Equation [energycomp-ggx-fit].
Including the Fresnel term [#Hil18], the complete multiple-scattering GGX BRDF looks as follows:
\begin{eqnarray}
f_{r}(\mathbf{v},\mathbf{l}) &=& M_r(\mathbf{v},\mathbf{l}) \, F(\mathbf{h_r}) + M_{r,ms}(\mathbf{v},\mathbf{l}) \, F_{ms} \\
&=& M_r(\mathbf{v},\mathbf{l}) \, F(\mathbf{h}_r \cdot \mathbf{v}) + \frac{(1 - E_m(\mathbf{v}\cdot\mathbf{n})(1 - E_m(\mathbf{l}\cdot\mathbf{n}))}{\pi (1 - E_{m,avg})} \frac{{F_{m,avg}}^2 E_{m,avg}}{1 - F_{m,avg} (1 - E_{m,avg})}
\end{eqnarray}
with the average of the Schlick Fresnel:
\begin{eqnarray}
F_{m,avg} &=& \frac{1}{21} \rho_{s,r,90} + \frac{20}{21} \rho_{s,r,0}
\end{eqnarray}
Results from the white furnace test are shown in Figure [energycomp_none-ggx], Figure [energycomp_fit-ggx] and Figure [energycomp_lut-ggx]. While there is still a bit of energy loss when using the fitted function, the sphere becomes almost invisible when using the more accurate data from the 32x32 table.
![Figure [energycomp_none-ggx]: White furnace test without energy compensation for $r=\{0.1, 0.6, 0.9\}$.](img/energycomp_none-ggx.png)
![Figure [energycomp_fit-ggx]: Energy compensation with numerical fit (Equation [energycomp-ggx-fit]).](img/energycomp_fit-ggx.png)
![Figure [energycomp_lut-ggx]: Energy compensation with lookup table.](img/energycomp_lut-ggx.png)
We provide the lookup tables for download in our Github repository:
* [res/GGX_E.exr](https://github.com/DassaultSystemes-Technology/EnterprisePBRShadingModel/tree/master/res/GGX_E.exr)
* [res/GGX_E_avg.exr](https://github.com/DassaultSystemes-Technology/EnterprisePBRShadingModel/tree/master/res/GGX_E_avg.exr)
### Diffuse BRDF
The incident illumination that hits an object will either be reflected at the surface or enter it and be scattered equally in all directions. The latter results in a diffuse look that is modeled with the diffuse component $B(\mathbf{v}, \mathbf{l})$. The ratio between specular and diffuse reflection is determined by the Fresnel term.
For an energy-preserving and energy-conserving combination of the components we apply the same ideas as for the GGX energy compensation described in Section [Multiple-Scattering GGX BRDFs]. We measure how much energy is left after evaluating the Fresnel-weighted multiple-scattering GGX BRDF and scale the diffuse BRDF accordingly.
First we compute the directional albedo of the multiple-scattering GGX including the Fresnel term for different values of $\rho_{s,r,0}$ ($\rho_{s,r,90} = 1$).
\begin{eqnarray}
E(\mu_v) = \int_{0}^{2\pi} \int_{0}^{1} f_r(\mu_l, \phi, \mu_v) \, \mu_l \, \mathrm d \mu_l \, \mathrm d \phi
\end{eqnarray}
This results in a 3D lookup table, see Figure [energy-compensation-base-e]. As the function is smooth, a resolution of 16 pixels in each dimension is sufficient.
![Figure [energy-compensation-base-e]: Directional albedo of Fresnel-weighted multi-scattering microfacet GGX BRDF for different values of $\rho_{s,r,0}$.](img/energycomp_base_e.png)
As before, we integrate over the hemisphere once more to get average albedo
\begin{eqnarray}
E_{avg} &=& 2 \int_0^1 E(\mu_v) \mu_v \, \mathrm d \mu_v
\end{eqnarray}
and store the result of the integration in a table with 16x16 pixels (Figure [energy-compensation-base-e-avg]).
![Figure [energy-compensation-base-e-avg]: Average albedo of Fresnel-weighted multi-scattering microfacet GGX BRDF for different values of $\rho_{s,r,0}$.](img/energycomp_base_e_avg.png)
Figure [energycomp_fit-base] and Figure [energycomp_lut-base] compare the numerical fit provided in Equation [energycomp-base-fit] to the tabulated data. For typical values of $\rho_{s,r,0}$ in range $[0,0.08]$, which corresponds to an index of refraction in range $[1.0,2.0]$, the energy loss is acceptable. The tabulated data is more precise in all cases.
![Figure [energycomp_fit-base]: White furnace test for combination of diffuse and specular component with numerical fit (Equation [energycomp-ggx-fit]) ($r=0.5$ and $\rho_{s,r,0} = \{0.04, 0.5, 0.9\}$).](img/energycomp_fit-base.png)
![Figure [energycomp_lut-base]: Combination of diffuse and specular component with tabulated data.](img/energycomp_lut-base.png)
We provide the lookup tables for download in our Github repository:
* [res/Base_*_E.exr](https://github.com/DassaultSystemes-Technology/EnterprisePBRShadingModel/tree/master/res/)
* [res/Base_E_avg.exr](https://github.com/DassaultSystemes-Technology/EnterprisePBRShadingModel/tree/master/res/Base_E_avg.exr)
Bibliography
============
[#AS00]: Michael Ashikhmin, Peter Shirley. An Anisotropic Light Reflection Model., Technical Report, University of Utah, 2000.
[#AP07]: Michael Ashikhmin, Simon Premože. Distribution-based BRDFs., Technical Report, University of Utah, 2007.
[#Bur12]: Brent Burley. Physically-Based Shading at Disney, SIGGRAPH 2012.
[#Bur15]: Brent Burley. Extending the Disney BRDF to a BSDF with Integrated Subsurface Scattering., SIGGRAPH 2015.
[#Kar13]: Brian Karis. Real Shading in Unreal Engine 4., SIGGRAPH 2013.
[#Kel01]: Csaba Keleman, Lazlo Szirmay-Kalos. A Microfacet Based Coupled Specular-Matte BRDF Model with Importance Sampling, Eurographics 2001.
[#Wal07]: Bruce Walter, Stephen R. Marschner, Hongsong Li, Kenneth E. Torrance. Microfacet models for refraction through rough surfaces., EGSR 2007.
[#Hei14]: Eric Heitz. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs., Journal of Computer Graphics Techniques Vol. 3, No. 2, 2014.
[#Pen11]: Eric Penner. Pre-integrated skin shading. 2011.
[#JWSG10]: Jorge Jimenez, David Whelan, Veronica Sundstedt, and Diego Gutierrez. Real-time realistic skin translucency. 2010.
[#JMLH]: Henrik Wann Jensen, Stephen R. Marschner, Marc Levoy, Pat Hanrahan. A Practical Model for Subsurface Light Transport.
[#NP13]: David Neubelt and Matt Pettineo. Crafting a Next-Gen Material Pipeline for The Order: 1886. 2013.
[#D10]: Joachim De Deken. A BRDF Analysis of Cloth. 2010.
[#KC17]: Christopher Kulla and Alejandro Conty. Revisiting Physically Based Shading at Imageworks. 2017.
[#Jak14]: Wenzel Jakob et al. Discrete Stochastic Microfacet Models, ACM Transactions on Graphics (ACM SIGGRAPH 2014).
[#AK16]: Asen Atanasov and Vladimir Koylazov. A Practical Stochastic Algorithm for Rendering Mirror-Like Flakes. 2016.
[#Lag13]: Sébastien Lagarde. Memo on Fresnel equations, 2013. https://seblagarde.wordpress.com/2013/04/29/memo-on-fresnel-equations/
[#Fde19]: Carmelo J. Fdez-Agüera. A Multiple-Scattering Microfacet Model for Real-Time Image-based Lighting., Journal of Computer Graphics Techniques Vol. 8, No. 1, 2019.
[#Hil18]: Stephen Hill. A Multi-Faceted Exploration, 2018. https://blog.selfshadow.com/2018/05/13/multi-faceted-part-1/
License
=======
The Enterprise PBR Shading Model (DSPBR), © Dassault Systèmes 2019, is licensed under [CC-BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/). In addition, please acknowledge your use of the Dassault Systèmes Enterprise PBR Shading Model (DSPBR) when DSPBR is used or implemented in a product by adding the following "[name of the product] is implementing DSPBR, the Dassault Systèmes Enterprise PBR Shading Model", in a place and format which shall be reasonably visible.
![](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)
[license.png]: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAPCAMAAABEF7i9AAAAllBMVEUAAAD///+rsapERER3d3eIiIjMzMzu7u4iIiKUmZO6v7rKzsoODg4RERFVVVUNDQ0NDg0PEA8zMzNLTEtbXltmZmZydnF9gn2AgICPkI+ZmZmqqqq7u7vFxsXIzMgNDQwZGRkgICAhISEkJSMnKCcuMC4xMzE5Ozk7PTtBQkFCQkJDQ0Nna2eGhoaHh4ezuLLGysbd3d1wVGpAAAAA0klEQVR42q2T1xbCIAyGk0CXdlmto3XvPd7/5QRL1432WHI4XED4+PMHALQHag0JJBlXMNQScx2ibu9PdTnQcY3iErYl6oxbAo/rUrUJA6J5vx0wNNC0gVkMbBPZXtQ8Uf6qpNJwOf0EjmCKto+ce1aSIg9FzTO1/xlYyVeL34FDMC3ZFT+SNXOX6PEsBKm0rIOYPYuGClnsWTxBHtQV1gRhI4UUGJh6EAsPoxdedjUPK+dzT38DDyvNXXYW9wJ43mh4h6ItN8U7Ldv+FN1/WXO8Aed5CQIgC4KiAAAAAElFTkSuQmCC
0.004,

0.004) | Roughness | 0 | 0.25 | Metallic | *0* | *0* | Anisotropy | *0* | *0* | Anisotropy Rotation | *0* | *0* | Normal | (0,0,1) | (0,0,1) | Transparency | *1* | 0 | Cut-Out Opacity | 1 | 1 | Sheen | *0* | *0* | Specular | *1* | *1* | Specular Tint | *(1,1,1)* | *(1,1,1)* | Thin Walled | false | true | Index of Refraction | *1.5* | 1.5 | Attenuation Color | (0.99,

0.99,

0.99) | (1,1,1) | Attenuation Distance| 5 mm | 0.01 mm | Subsurface Color | *(0,0,0)* | (0,0,0) | | ![](img/subtypes_glass.png width="160px") | ![](img/subtypes_plastic.png width="160px") | [Table [subtypes-parameters-transparent-dielectrics]: List of fixed (italic light grey) and user-defined values with their defaults for the parameters of the different recommended transparent dielectric material subtypes. Emissive and clear-coat parameters are omitted because the effects are not available and parameters can be kept at their defaults (Section [components]).]