16.1. Understanding EnSight's Materials

In this version of EnSight, we provide a predefined material library with some commonly used material types. To maintain compatibility, EnSight sets the default material to be of type "Default", which is compatible with the lighting model used in previous EnSight versions. For other material types, some different lighting models will be used in the raytracer.

The materials are physically based. Their major differences come from the individual microfacet representation. In computer graphics, we use a term Bidirectional Reflectance Distribution Function (BRDF) to describe the distribution of light scattering on the surface. Different materials have different BRDFs. Some of the BRDFs are:

Lambertian

an ideal model that equally reflects in all directions.

OrenNayer

a kind of diffuse reflection controlled by a smoothness term. Can degenerate into Lambertian when smoothness becomes zero.

GGX, Velvety, BlinnPhong

are different specular highlighting models

Coated GGX

a double-layer model, where the outer layer is transparent with an index of refraction value controlled by the user, and the inner layer is a normal layer such as GGX or BlinnPhong

Another significant difference for the materials is their Fresnel terms. For some of the materials, their Fresnel reflection terms are fixed and hidden from the user. When light moves from one media into another with different refraction indices, both reflection and refraction may occur. The Fresnel equations describe what fraction of the light is reflected, and what fraction is refracted. Fig. 1 shows the reflection ratio according to the changes of incident angles for various materials. It clearly indicates that differences between metals and non-metals are significant. For example, at zero incidence angle, all the metals in the figure have reflection ratio > 0.5, while the non metals have low reflection ratio < 0.2. Real world perceptions substantiate this. However, note that at glancing angles, all materials reflect almost all light.

Internally, the Fresnel terms are controlled by the factor of refraction index. For metals, we assign default values for different metal types. A user thus does not need to know anything about it. Once selecting a metal type, a user can freely modify its appearance while EnSight will still use the same Fresnel terms for computation. For non-metals, sometimes the refraction index is exposed. If it is exposed to the user, a user can adjust this value to control the reflection and/or refraction ratios for incident light.

The materials are designed as shown in Material Definition. You can see that some do not have a diffuse component, while others do not have reflective highlights. Both the graphics hardware rendering & raytracing implementations roughly follow the same design. However, in the interactive graphics windows, they may look similar. This is done for realtime performance reasons. Namely, we have to use a simple implementation to handle several material types quickly.

Material Definition

Material

Diffuse

Specular

Reflective

Transmitive

BRDF

BRDF

Fresnel

Default

Lambertian

BlinnPhong

no

n/a

yes

Cloth

Minnaert

Velvety

no

n/a

n/a

Glass

n/a

n/a

n/a

yes

yes

Liquid

Lambertian

GGX

yes

yes

yes

Metal

n/a

GGX

yes

yes

yes

Paint high-gloss

Lambertian

coated GGX

yes

yes

yes

Paint semi-gloss

Lambertian

coated GGX

yes

yes

yes

Paint satin

Lambertian

Anisotropic

yes

n/a

yes

Paint eggshell

Lambertian

Anisotropic

yes

n/a

yes

Paint Matte

OrenNayar

n/a

n/a

n/a

yes

Plastic

Lambertian

GGX

yes

n/a

yes

Rubber

OrenNayar

n/a

n/a

n/a

yes