RedSDK Material Concepts and Properties

RedSDK Materials are based on the following components:

Diffusion

This is the diffuse color / texture information of the material, used in a Lambertian equation.

Transmission

This is the transmission color / texture information of the material. The transmission has precedence over the diffusion term for the calculation of energy preservation.

Reflection

This is the reflection color / texture information of the material. The reflection has precedence over the diffusion and transparency terms for the calculation of energy preservation.


These inputs can be modified using special parameters:

Fresnel

The fresnel option is a very powerful term that is used to modulate the amount of reflection emitted by the material based on the angle of the viewing direction with the surface. This must be turned on for all glasses materials.

Anisotropic reflectance

This is an extra anisotropic term that can be set to specify anisotropic reflections in the realistic material. Two anisotropy values (anisotropy in U and anisotropy in V) can be set, or texture with at least two channels (red and green) can be set instead, to define a per-pixel anisotropic information. Anisotropy values are in [0.0, 1.0]. The larger the value the wider the reflection angle.

Anisotropy orientation

This term defines the orientation of the anisotropy. Either a single angular value or a texture with at least one channel (red) defines the value of the rotation angle to apply to the basis used to define the reflectance of the material. Angles are expressed in radians. The read texture value is multiplied by 2*PI to map the usual [0.0,1.0] range to [0.0,2*PI].

Transmission glossiness

This term defines the glossiness value of the material. A single glossiness value or a texture with at least one channel (red) can be used to define the per-pixel transmission glossiness of the material. Glossiness values are in [0.0,1.0]. The larger the value the wider the transmission glossiness cone.

Transmission scattering

This is an extra absorption term that can be specified for the material transmission. It uses an out-scattering color and an out-scattering scale used to specifiy the amount of energy being absorbed along the path of a ray for each unit length crossed in the model media volume.

Reflection fog

This is fade-out term that can be specified for reflections. At a certain distance, the color of the reflection becomes equal to the specified reflection fog color, and any other visible reflection is lost.

Finally, materials also feature surface modifiers that are detailed below:

Bump map

The bump map of the realistic material affects the surface normal of the geometry at the shaded fragment.

Displacement map

The displacement map of the realistic material modifies the surface of the geometry that uses it.

Diffusion

The diffusion model used is Lambertian, meaning that the incoming light is diffused uniformly in every outgoing direction (i.e. in the whole hemisphere around the surface hit point). It is controlled giving one color (constant over the surface or by texel using a texture). A light that illuminates a surface produces a more visible lighting if it's aligned with the surface normal.

Reflection

In our realistic material, reflections have greater weight than two others shading components. First, the user has to choose between two different behaviors (see the figure below):

  • Fresnel-like reflections: the reflection amount is proportional to the opposite of the dot product between the eye vector and the surface normal. Reflections are then stronger near the grazing angles. We use the Schlick Fresnel term approximation in our model (as in almost any other shading models found in the literature). Note that the reflection amount is still post-multiplied by the user-given reflection color.
  • Uniform reflection: the reflection amount is read from the material input (constant color or texture)


Fresnel reflections (on the left) compared to uniform ones (on the right); in the Fresnel case, note how the reflection fades off as the angle between the eye vector and the surface normal decreases
Whatever the model you choose, reflections can be made glossy and / or anisotropic. The glossiness is a measure of the dispersion of the reflection rays around the perfectly specular reflection vector. It can be seen as the half-angle of the cone subtended by the reflection vector where reflection samples are taken. The more the angle increases the more the reflections are blurry (and will require samples to avoid too much noise; see figure below).

The sphere on the right is less glossy than the one on the left.
The anisotropy defines the shape of the reflections. Anisotropic materials reflect light according to the surface orientation (see figure below). It means that a local surface coordinate system is needed to handle oriented reflections.

The sphere on the left is isotropic as the one on the right is anisotropic. Notice how reflections are vertically distorted in the anisotropic case

Transmission

Every realistic material has its own index of refraction (IOR) When transparent, the material IOR is used to deviate light rays when they travel through the volume (see figure below).

The same realistic material with two different IOR values (1.02 on the left and 1.1 on the right)
As for reflections, refractions can be glossy to simulate a wide range of materials:

The same realistic material with (on the right) or without (on the left) refraction glossiness



The Bidirectional Reflectance Distribution Function is a function that defines how light is reflected at an opaque surface.



BRDF - Reflection

This group lets you set the glossiness parameter of reflection. The glossiness parameters control how much the reflections/transmissions are blurry. Depending on the chosen glossiness values, the results may vary a lot:

Different reflection glossiness settings
Glossiness is achieved by increasing the "Anisotropy in U" and "Anisotropy in V" parameters. If both parameters are identical, then, the reflection is isotropic. If both parameters have different values, the reflection is anisotropic, like on a CD-ROM surface or on hairs and furs.

Parameters for a strong anisotropy

BRDF - Orientation


Different reflection anisotropic settings

BRDF - Transmission

Like for the BRDF - Reflection group, this one lets you set the glossiness parameter for the transmission. The IOR (Index Of Refraction) is exposed to control the amount of refraction.

A transparent material with different IOR

Bump and Displacement

For bump or displacement, things are a little bit different as those channels can't be color-based. The combo box is then adjusted to propose only the texture mode. The height of the bump/displacement can be set via a parameter.
Like the previous material channels, Offset, Scale and Rotation parameters are used to transform the texture mapping.

Difference between Bump (on the left) and Displacement (on the right)

Advanced options

When it comes to setup reflection/transmission, Fresnel support is essential. It describes the way real surfaces interacts with the light. The strength of the reflection generally depends on the viewing angle (the angle between the observer and the surface normal). For example, see how your office window panes or car paint reflect more when viewed under grazing angles rather than when front facing.

Difference between Fresnel (on the left) and non-Fresnel (on the right) reflections
This is also the place where you can turn on Caustics generation (both reflective and refractive) for your material.

A glass material with caustics turned on (on the left) or off (on the right)
A Double sided option is also available in this category to set the back-face rendering of the shape.

RedSDK Material Properties

Property

Description

Min

Max

Default

Options





Double sided:

Controls the front and back sides visibility

0;




Note: Caustics are produced by objects when light gets concentrated through reflections and refractions. Well-known examples are visible at the bottom of a swimming pool under the summer sun or a glass on a table.




Reflective caustics:

Enables/disables reflective caustics

0;



Refractive caustics:

Enables/disables refractive caustics

0;



Fresnel:

Controls the Fresnel behavior

0;



IOR:

Controls the index of refraction (IOR) of the material

-1e+038

1e+038

1.5;

Transmission scattering color:

Controls the out-scattering along the transmission ray in the material

255

255

255;

Transmission scattering scale:

Scales the effect of the transmission scattering color

-1e+038

1e+038

0;

Reflection fog:

Enables/disables Reflection fog

0

0

0;

Reflection fog color:

Controls the color of the reflection fog

0

0

0;

Reflection fog distance:

Defines the distance at which the true reflection color gets replaced by the reflection fog color

-1e+038

1e+038

3.40282e+038;

Pattern





Color shader





Diffuse color:

Controls the diffuse color

255

0

0;

Texture Shader





Diffuse texture:

Controls the diffuse texture

bmp, jpg, tif, png



Diffuse UV matrix U offset:

Controls the translation of the texture along U

-1e+038

1e+038

0;

Diffuse UV matrix V offset:

Controls the translation of the texture along V

-1e+038

1e+038

0;

Diffuse UV matrix U tiling:

Controls the number of texture repetitions along U

-1e+038

1e+038

1;

Diffuse UV matrix V tiling:

Controls the number of texture repetitions along V

-1e+038

1e+038

1;

Diffuse UV matrix UV rotation angle:

Controls the rotation angle of the texture

0

360

0;

Reflectance





Color shader





Reflection color:

Controls the reflection color

127

127

127;

Texture Shader





Reflection texture:

Controls the reflection texture

bmp, jpg, tif, png



Reflection UV matrix U offset:

Controls the translation of the texture along U

-1e+038

1e+038

0;

Reflection UV matrix V offset:

Controls the translation of the texture along V

-1e+038

1e+038

0;

Reflection UV matrix U tiling:

Controls the number of texture repetitions along U

-1e+038

1e+038

1;

Reflection UV matrix V tiling:

Controls the number of texture repetitions along V

-1e+038

1e+038

1;

Reflection UV matrix UV rotation angle:

Controls the rotation angle of the texture

0

360

0;

Transparency





Color Shader





Transmission color:

Controls the transmission color

0

0

0;

Texture Shader





Transmission texture:

Controls the transmission texture

bmp, jpg, tif, png



Transmission UV matrix U offset:

Controls the translation of the texture along U

-1e+038

1e+038

0;

Transmission UV matrix V offset:

Controls the translation of the texture along V

-1e+038

1e+038

0;

Transmission UV matrix U tiling:

Controls the number of texture repetitions along U

-1e+038

1e+038

1;

Transmission UV matrix V tiling:

Controls the number of texture repetitions along V

-1e+038

1e+038

1;

Transmission UV matrix UV rotation angle:

Controls the rotation angle of the texture

0

360

0;

BRDF-Reflection






NOTE: The Bidirectional Reflectance Distribution Function is a function that defines how light is reflected at an opaque surface.




Values Shader





Anisotropy in u:

Controls the material anisotropy in u

-1e+038

1e+038

0.01;

Anisotropy in v:

Controls the material anisotropy in v

-1e+038

1e+038

0.01;

Texture Shader





Anisotropy texture:

Controls the anisotropy texture

bmp, jpg, tif, png



Anisotropy UV matrix U offset:

Controls the translation of the texture along U

-1e+038

1e+038

0;

Anisotropy UV matrix V offset:

Controls the translation of the texture along V

-1e+038

1e+038

0;

Anisotropy UV matrix U tiling:

Controls the number of texture repetitions along U

-1e+038

1e+038

1;

Anisotropy UV matrix V tiling:

Controls the number of texture repetitions along V

-1e+038

1e+038

1;

Anisotropy UV matrix UV rotation angle:

Controls the rotation angle of the texture

0

360

0;

BRDF-Orientation





Rotation Shader





Anisotropy rotation:

Controls the rotation of the anisotropy

0

1

0;

Texture Shader





Anisotropy rotation texture:

Controls the orientation of the anisotropy

bmp, jpg, tif, png



Anisotropy rotation UV matrix U offset:

Controls the translation of the texture along U

-1e+038

1e+038

0;

Anisotropy rotation UV matrix V offset:

Controls the translation of the texture along V

-1e+038

1e+038

0;

Anisotropy rotation UV matrix U tiling:

Controls the number of texture repetitions along U

-1e+038

1e+038

1;

Anisotropy rotation UV matrix V tiling:

Controls the number of texture repetitions along V

-1e+038

1e+038

1;

Anisotropy rotation UV matrix UV rotation angle:

Controls the rotation angle of the texture

0

360

0;

BRDF-Transmission





Angle Shader





Transmission glossiness angle:

Controls the glossiness angle of the transmission

0

1

0;

Texture Shader





Transmission glossiness texture:

Controls the transmission glossiness texture

bmp, jpg, tif, png



Transmission glossiness UV matrix U offset:

Controls the translation of the texture along U

-1e+038

1e+038

0;

Transmission glossiness UV matrix V offset:

Controls the translation of the texture along V

-1e+038

1e+038

0;

Transmission glossiness UV matrix U tiling:

Controls the number of texture repetitions along U

-1e+038

1e+038

1;

Transmission glossiness UV matrix V tiling:

Controls the number of texture repetitions along V

-1e+038

1e+038

1;

Transmission glossiness UV matrix UV rotation angle:

Controls the rotation angle of the texture

0

360

0;

Bump





Texture Shader





Bump texture:

Controls the bump texture

bmp, jpg, tif, png



Bump UV matrix U offset:

Controls the translation of the texture along U

-1e+038

1e+038

0;

Bump UV matrix V offset:

Controls the translation of the texture along V

-1e+038

1e+038

0;

Bump UV matrix U tiling:

Controls the number of texture repetitions along U

-1e+038

1e+038

1;

Bump UV matrix V tiling:

Controls the number of texture repetitions along V

-1e+038

1e+038

1;

Bump UV matrix UV rotation angle:

Controls the rotation angle of the texture

0

360

0;

Displacement





Texture Shader





Displacement texture:

Controls the surface displacement

bmp, jpg, tif, png



Displacement height:

Controls the amount of geometry displacement

-1e+038

1e+038

0;

Displacement offset:

Controls the relative position of displacement

-1e+038

1e+038

0;

Displacement UV matrix U offset:

Controls the translation of the texture along U

-1e+038

1e+038

0;

Displacement UV matrix V offset:

Controls the translation of the texture along V

-1e+038

1e+038

0;

Displacement UV matrix U tiling:

Controls the number of texture repetitions along U

-1e+038

1e+038

1;

Displacement UV matrix V tiling:

Controls the number of texture repetitions along V

-1e+038

1e+038

1;

Displacement UV matrix UV rotation angle:

Controls the rotation angle of the texture

0

360

0;

Common Indices of Refraction

Material

IOR

Acetone

1.36

Air

1.0

Alcohol

1.33

Chromium Oxide

2.7

Copper Oxyde

2.7

Crystal

2.0

Diamond

2.42

Emerald

1.57

Ethyl Alcohol

1.36

Glass

1.5

Glass, Crown

1.52

Glass, Heaviest Flint

1.89

Glass, Heavy Flint

1.65

Glass, Light Flint

1.58