Materials - textures

Diffuse - Bump - Normal - Specular - Alpha - Ambient occlusion - Emissive - Fur

In the previous tutorial, we focused only on the base material components that has the same value for whole surface of the body. However, far better visual results will be achieved when we use textures for each of the material components, that we introduce now. With textures, you can create fine details to make your models more convincing.

When setting the basic material components (ambient, diffuse, specular, emissive, ...) and the simultaneous use of textures, their effect is combined. More precisely, the texture values are modulated by the base components. Thus, for example, if we set the diffuse texture to the material and at the same time set the basic diffusion component to red color, the entire texture will be reddish. To preserve only texture values in a material, their parent base components must be set to base values (ie. color: white, opacity: 100%, etc.).

It is possible to add textures to the material either simply by loading from image on disk or generating texture. Generating textures will speed up and make it easier to create textures, but if you want to capture some of the important details, you may need to edit them in one of the 2D graphics editors.

All texture types have several buttons with the same meaning in their dialog window. These are: Disconnect - to disconnect a loaded texture from that material; Open... - to load texture from disk; Generate - to generate a texture based on the specified parameters (memory only) and Save... - to save the generated texture from memory to file on disk. Textures are also generated into the preview immediately after changing any parameter. For use in material it is always necessary to save them on disk after generating.

In the following description, we'll primarily focus on automatically generating textures.

Tip: Textures of different effects associated with one material have same UV mappings. This means that individual texture themes must have the same proportions and the same layout.


The most basic and most visible of all is Diffuse texture. This texture contains a color theme to be applied to the body's surface. Its dialog box opens in the materials window by pressing the Diffuse button.

This window also contains the most parameters for generating especially noise textures. The Width and Height parameters specify of course the dimensions of the resulting texture. Freq. (frequency) specifies how fine noise will be used in the texture - higher frequency means finer noise. Offset moves the generated noise in the texture along its X and Y axes. Finally, by Seamless edge, the strip copy of the corresponding width from the border of the texture is used to create a seamless texture, meaning one that repeated side-by-side does not have clearly visible edges.

The following section Noise takes care of filling the texture with pseudo-random content from 0.0 to 1.0 for each pixel. First, one of the noise types must be selected: Perlin's - continuous, detailed; Interpolated - continuous, less detailed; Interpolated absolute - interpolated with sharp transitions in low values; Interpolated absolute inverse - interpolated with sharp transitions in high values. Offset Z indicates an artificial increase / decrease of generated values similar to image brightness, Amplitude indicates the scale of generated values similar to image contrast. The Persistence and Iteration parameters take care of the fineness of texture detail and finally use of the Start and End color the range of generated values gets a color tone. From lowest values (Start color) to highest values (End color).

If we had a texture filled with only noise, our options would be considerably shortened. The following section Thresholds is used for further editing. This, as the name suggests, allows the texture image to be distorted by color thresholding with multiple setting options. First of all, it is necessary to choose the type of thresholds to which other parameters are then weighed. None - thresholding not applicated; Equal - the texture's color palette is divided into equal intervals in which the colors will unite to one shade; Geometric up - threshold density increases towards lighter colors, the first threshold is placed in the Start value; Geometric down - threshold density grows toward darker colors, the first threshold is placed in the Start value; Single - the image colors will be divided by a single threshold, the height of that threshold is given by the Start parameter.

After selecting the threshold type, there are additional parameters. Count - indicates the number of thresholds. Start by noise - when checked causes noise values lower (thresholds Geom. up) or higher (thresholds Geom. down) than Start remain fully colored without thresholding. Enable countours - draws outlines of thresholds that can be further controlled by the Width parameter and colored by Start color of countours to End color of contours.

With the tools described above, you can with a suitable combining generate a variety of noise textures like military camouflage, wood, marble, etc.


Bump texture, sometimes referred to as displacement texture, is a base map that contains height/depth differences on the body surface. Its purpose depends on other circumstances. Either it is used for virtual or actual displacement mapping - that is the effects of changing the body surface height at each point (e.g. Parallax mapping) or is used to generate Normal textures (see below).

Press Bump button to open the Bump texture dialog box. This texture is generated from the Diffuse texture, and therefore must be the diffuse set first. If Diffuse texture resolution is checked, the generated Bump texture will have the same dimensions as its diffuse pattern. Otherwise the Width and Height parameters will be enabled and can be set. Brightness and Contrast provides adjusting of the texture's image properties suggested by their names. In principle, generating Bump texture, the brightness and contrast adjustments are repeated several times to highlight mapped surface bumps. Therefore, there is the third parameter Iteration, which can be used to control the number of repetitions and, if necessary, the last parameter - check box Inversion to convert the resulting texture to negative.

Tip 1: Bump texture is the default for generating some additional textures and may not always contain the same details from Diffuse texture. This varies from case to case, so for better results in later work, it is preferable to prepare the Bump texture or fine-tune it after generation manually. For example, if we were to model a monochrome object with minor surface irregularities, its Bump texture could contain these irregularities while Diffuse texture would remain intact.

Tip 2: The above mentioned Parallax mapping effect is the effect of unreal changing body surface height based on Bump texture content. In CaZaBa, this effect is set in the Parallax mapping section of the Render settings F10. The Scale parameter is the relative value of how much the change in surface height should take effect. The Min. samples count and Max. samples count parameters determines the number of times each pixel is tested within the algorithm. Attention: When Bump texture is assigned to the material, CaZaBa renders the Parallax mapping effect automatically. If Bump texture is disconnected, the Parallax mapping will not be used for that material.


Normal texture is used during the calculation of the direct lighting to map small surface irregularities approximately in millimeters. Instead of different height data, it contains a normal vector in each pixel for each point of the mapped surface. The generation algorithm calculates this information from Bump texture values, which must be set earlier in the material. Press Normal button to open the Normal texture window. Generating Normal texture is very easy, only the Weight parameter is set. By default, it is set to 1.000, but in practice you can use a value around 0.100, depending on the overall scale of the scene and the required notability of details. There are still two more parameters available - the Invert axis X(Y) checkboxes, which flip the calculated normal vectors signs as needed. In fact, Normal texture can sometimes be mistakenly automatically generated so that in the subsequent render the bumps appear as the protrusions and vice versa. Depends on Bump texture's content. However, with the sign-change parameters, this error can be compensated.

Normal texture only modulates the way how the light will reflect on the surface. On the other hand Bump texture maps height differences of the surface. This means that if we want to show only very small details, then it is sufficient if the material will contain only the Normal texture. However if we want to show also truly distinct bumps and depressions, the material must have also a Bump texture assigned, which will handle this. Therefore, it is not necessary to have both (Bump and Normal) textures set for proper functionality and their use depends on the user's intent only.


Specular texture, that is the glare texture. By setting the global material components Specular (color) and Specular exponent, we will make the entire body shine with the same style during illumination. In the real world, however, there are many cases where different parts of the body shine with different power, in different colors, or some parts do not shine at all. For example, tiles on the floor of a corridor may look smooth and clean, but just when looking in the direction of the specular reflection will appear the footprints of shoes and so.

Press Specular button to open the Specular texture window. Specular texture is generated from Diffuse texture, so diffuse must be pre-set. As with Bump texture, the Diffuse texture resolution switch again determines whether to take the dimensions of the diffusion template when generated - if checked. Otherwise, Specular texture dimensions are set through Width and Height parameters. As mentioned above, the reflection is governed by two values - Specular component and Specular exponent of the material. In the Specular texture the Specular component is stored in RGB layer and Specular exponent is generated to Alpha channel. The rightmost radiobuttons - Edit the shine (Spec. exponent / Alpha) and Edit RGB (Spec. component/Color) - are used for their individual views in the window. Subsequently, in the middle column, Brightness, Contrast, Saturation and Inversion serves to setting the RGB component of the Specular glare/texture - the color of the reflection. The Brightness of shine, Contrast of shine, and Invert the shine parameters are then used to set the Specular exponent in the texture's Alpha channel - the power of reflection in every pixel.

Tip 1: As with all textures, the generated Specular texture may need some fine-tuning of important details in a 2D graphics editor.

Tip 2: Because the Specular texture contains two elements of information in RGB and Alpha channels, you must choose also a file format, which is able to keep the Alpha channel. For example: *.PNG, *.TGA etc.


Alpha texture is used to define parts of the model which are to be transparent or partially transparent. Sometimes the Alpha channel of the Diffuse texture is used for this purpose - hence the name of this texture, but it is often used also as a separate texture. Likewise in the CaZaBa program. It's just a texture in black & white shades where black color means full transparency and white color full opacity. Any grayscale shade then represents partial transparency.

Press the Alpha button to open the Alpha texture window. The first three parameters of Diffuse texture resolution, Width, and Height have the same meaning as in Bump and Specular texture. This also suggests that Alpha texture is also generated from Diffuse texture and that is done by choosing a color, which will the algorithm consider transparent. Usually this is some less natural color which is not too much frequent. For example magenta which would fill the background of the main theme in the Diffuse texture but of course it is possible to choose as a Transparent color any other - as needed. The Tolerance parameter then determines how much similar shades will be also considered transparent.

Of course, you can fine-tune the resulting texture with the familiar Brightness, Contrast and Inversion parameters. Finally, saving Alpha texture is possible in two ways. Either as a separate file with the Save... button or combine it with an existing Diffuse texture with the button Export with diffuse texture... if its future purpose requires it. In this case, however, you need to choose a file format which is able to keep the Alpha channel, where Alpha texture is stored. For Alpha texture saved as a separate file the chosen file format doesn't matter.

Tip: Here it is also like that in some cases Alpha texture may contain transparent areas where Diffuse texture has some color theme. So again, it is possible that a particular material for a particular model will require the completion of the Alpha texture using a 2D editor.

Ambient occlusion

Ambient occlusion, that is covering from the surrounding area, means that this texture is used for shading of surface bumps of the Bump and Normal texture, and that without using direct lighting. Therefore generating of the Ambient occlusion texture gets informations as it has been said from Bump and Normal texture. As a result the Ambient occlusion texture stores how much each pixel is surrounded by obstacles nearby.

The Ambient occlusion texture window opens by pressing the Ambient button. Generation takes place in two waves. First, for each pixel its neighborhood is scanned by samples using the Samples count parameter. Because the Bump and Normal texture contains geometric information about surface's irregularities, they can be seen together as a separate 3D space. The samples are then selected in both the radius and depth according to the Samples radius and Sample depth parameters, both of which are given in pixels. Attention: The larger the radius and depth you select, the more obstacles the algorithm finds and counts into the resulting value, and the resulting Ambient occlusion texture will be darkened to undesired level. Brightness parameter can compensate for this, but only partially.

For sufficient quality of the Ambient occlusion texture it would need to be tested over 200 samples for each pixel, which would be undesireably slow for high resolution textures. Therefore, it is also possible to test a lower number of samples - eg.: 16 as is already preset in the program, and then use the noise filter. To do this, use the Filter iteration parameter, which indicates the number of times the filter passes. Usually just set it to 2 or 3. The second parameter is Filter intensity, which specifies the amount of noise blur and the preset value 0.300 may again be sufficient.


Since the basic Emissive component of the material makes the body glow by itself, the same behavior can be achieved for individual parts of the model with the Emissive texture. This allows us to create small glowing details on the model like hot spots, glowing control buttons, magic runes, etc. Emissive texture setting is located in the additional material settingswindow. In the material palette, press the More... button to display this window. Then press the Emissive button to display the Emissive texture settings window.

Emissive texture is generated from Diffuse texture. The first three parameters Diffuse texture resolution, Width and Height takes care of capturing dimensions from Diffuse texture as well as in Bump, Specular and Alpha textures (see above). The Emissive color parameter specifies the color of the areas of the Diffuse texture to be taken to generate a glowing pattern in Emissive texture. Determining only one particular shade could be accompanied by inaccuracies. Therefore, there are two other parameters Tone tolerance and Saturation tolerance to determine the shades relative to Emissive color to be also counted into the Emissive texture. Simply, the higher tolerance value, the more different shades will be taken into Emissive texture.

Tip: Attention, it is not needed to have colors of the pattern in Emissive texture matching those in the Diffuse texture. But then the Emissive texture must be prepared manually in a 2D editor.

Tip: Emissively glowing details are possible to animate. Simply set the corresponding base emissive component of the material in the particular model's keyframe and then reassign this material to the model. Black color - the emissive component / texture will disappear. White color - the emissive / texture has full effect.


Fur texture is used to create a fur, hair, grass and the like. To do this Fur texture contains grayscale points that are just determining where the hairs "grow". The Fur texture setting is located in the additional material settings window. In the material palette, click the More...button to display this window. Then press the Fur button to display the Fur texture settings window.

If possible, this type of texture is generated from Diffuse texture. Therefore the Diffuse texture resolution, Width and Height parameters are already known. Generating the Fur texture itself will be done by choosing the color of points / areas symbolizing the hair roots in Diffuse texture. Select this color with the Fur key color parameter. To extend the interval of shades related to this color we will set the Tone tolerance and Saturation tolerance parameters again. The higher the value, the higher the tolerance for the different shades. Density specifies the density of generated points / hairs, Min. height determines creation of the lowest hairs in relative accordance to grayscale in the texture. The brighter, the higher and vice versa. Height distribution then determines whether there will be generated more higher hair or more lower hair.

Besides the parameters in the Fur texture settings window, additional parameters are in the previous Material properties window. Close the Fur texture window and notice the For model section just below the Fur button. This parameter section applies always to one specific model in the scene which uses this material, therefore it is active only when a model in the scene is selected. Otherwise, the For model section is inactive. The thing is that each model can have a different Curvature of hairs and this curvature can also be subject to another source of force. External deformation force can be determined by gravity by one of the world's space or model space axes on which the hair grows, but it can also be gravity (attraction) or repulsion to a specific model determined by Other model. Mores simply put, the hair bend always according to a specified source of force.

<< Return to topics

Copyright (c) 2013 - 2023

General terms and conditions

End user license agreement