Shaders and textures in detail

What is a shader?

A shader basically describes the properties of the object’s surface and controls how light affects it. There are shaders with different properties. For example, these control the textures, colors, gloss, roughness (of the surface) and other visual effects that make the appearance of 3D objects more realistic. Depending on the type of shader, it can be used, for example, to create shadows, define surface texture, and much more.

The standard shader

For most objects, the standard shader is the right choice. With it you can set the color of the object (or overlay the texture with it) and put a color texture on the object. You can apply a normal map (describes the surface structures) and a gloss map.

The different slots of the textures (color, normal, gloss) do not necessarily have to be filled. So, for example, if no gloss map is included with the object, you simply leave this slot empty and just set the slider to fit.

The Transparent Shader

The Transparent Shader is the right choice if you want to adjust a window in a car, for example.
It is especially important that the 3D object is modeled correctly, otherwise the transparency effect will be displayed incorrectly.
Choose values for gloss and transparency like here and then modify according to your wishes:

Please note the “beta” restriction on gloss/reflection/mirroring and shadow casting. Transparent objects in this version cannot yet cast a shadow, cannot display a reflection, and gloss/reflection is restricted.

The Cutout Shader

The cutout shader is often used to “cut out” finer structures such as leaves with a mask.
The shader is similar to the standard shader, but has an additional transparency map.

The idea behind this is, that fine structures and details do not have to be contained in the actual 3D model, but are only created via the mask. So the details are only added via a mask to get the final look of the object. In this way, the 3D model can be simpler in design, saving many polygons, which is very important for performance.

For example, a tree with many thousands of leaves would have a lot of polygons, but if you model the leaves as strips and make them visible first via the mask, you save the polygons and can even show much finer details.

Leaves without mask:

Leaves with mask:

The mask is a simple black and white texture. The white areas will be visible, while the black areas will be “invisible”.

For the leaves in the example above, the mask texture looks like this:

The settings for the mask are made visually, that is, adjusted so that the desired effect looks good.

In our example it looks like this:

The Hair Shader

The Hair Shader is very similar to the Cutout Shader, but controls the transparency of the mask slightly differently and is optimized for hair.
Hair is also usually modeled as strands and only a mask makes the fine hairs visible.

Texture Types at a Glance

As described above, there are different types of textures, such as the Color, Normal, Gloss maps and Cutout.

Textures can be so pronounced that they extend over the entire model, or they can be tiled and contain only a very small section of the appearance. When a texture is tiled, you save a lot of memory in the graphics card, because the texture is then usually small. A carpet is a good example: here it makes sense to have only a section of the pattern in the texture and then to tile it. The scaling indicates the frequency of the tiling.

Basically, textures should be kept as small as possible in their resolution, so that the memory requirements in the graphics card remain small. For realtime applications, like set.a.light 3D, this is especially important, because large textures and many polygons immediately affect the performance.

We at elixxier therefore optimize the size of the textures and the number of polygons for each object.

On the left you see an example of a tileable color texture, on the right the texturing was put on a map. The example on the left could work as a very small texture with e.g. a resolution of only 256×256 pixels and a strong tiling, the example on the right on the other hand needs a texture with a resolution of about 4K (4096×4096).

It is possible to import textures with a resolution of up to 8K.


The color map contains the color design of the object.

This map is the easiest to recognize and is named *Diffuse*, *Color*, or *BaseColor*. You can see an example of color maps above.


The normal map describes smaller unevennesses of the object and influences the light and thus provides for the representation of very fine shadows. Very fine irregularities do not have to be contained in the 3D object, but are created with the help of the normal map.

Visually, the normal map looks bluish and can be easily recognized by this.

To be able to judge the normal map correctly and to adjust its intensity, you have to switch the viewport to “Render”. Only with “real” light the normal map will be visible. It therefore makes sense to view the object from different directions.


The gloss map describes where the object is more or less shiny.

Visually, the gloss map looks grayish to black and white. In the name it often carries designations like *Smoothness*, *Roughness* and *Gloss* and is to be recognized also by it. However, it sometimes looks similar to the transparency map.

It should be noted that there are several types of gloss maps that work in opposite directions, i.e. the light areas are glossy, in the other form the dark areas are glossy.
In set.a.light 3D you can therefore switch the type of map and choose between “Smoothness” and “Roughness”. So adjust the setting to the existing map. If you don’t know what is right, just try it.

To be able to judge the gloss correctly, you have to switch the viewport to “Render”. Only with the “right” light the gloss will be visible.


The transparency map (or mask) cuts out parts of the 3D model to allow very fine geometry without having to include it in the polygon structure.

Visually, the transparency map looks like a black and white texture with hard edges (without gradations). In the name this type of map usually carries the addition *Mask*, or *Mask* and is also to be recognized by it.