(For more resources on Blender, see here.)
Before we start to dig into textures, let me say that the biggest problem of working with them is actually finding or creating a good texture. That's why it's highly recommended that you start to create your own textures library as soon as possible. Textures are mostly image files, which represent some kind of surface, such as wood or stone, based on the photography. They work like wallpaper, which we can place on a surface or object. For instance, if we place an image of wood on a plane, it will give the impression that the plane is made of wood. That's the main principle of using textures; to make an object look like something in the real world. For some projects, we may need a special kind of texture, which won't be found in a common library, so we will have to take a picture ourselves or buy an image from someone.
But don't worry, because often we deal with common surfaces that have common textures as well.
Procedural textures vs. Non-procedural textures
Blender basically has two types of textures, which are procedural textures and bitmap textures. Each one has positive and negative points; which one is the best? It will depend on your project needs:
- Procedural: This kind of texture is generated by the software at rendering time, just like vector lines in software, such as Inkscape or Illustrator. This means that it won't depend of any type of image file. The best thing about this type of texture is that being resolution-independent, we can set the texture to be rendered at high resolutions with minimum loss of quality. The negative point of this kind of texture is that it's harder to get realistic textures with it. The advantage of using procedural textures is that because they are all based on algorithms, they don't depend on a fixed number of pixels.
- Non-Procedural: To use this kind of texture, we will need an image file, such as a JPEG, PNG, or TGA file. The good thing about these textures is that we can quickly achieve a very realistic look and feel with it. On the other hand, we must find the texture file before using it. And what's more, if you are creating a high-resolution render, the texture file size must be as well.
Do you remember the way we organized materials? We can do the exact same thing with textures. Besides setting names and storing the Blender files to import and use again later, collecting bitmap textures is another important point. Even if you don't start right away, it's important to know where to look for textures. So, here is a small list of websites, which provide free texture downloads:
To use a texture, we must apply a material to an object, and then use the texture with this material. We always use the texture inside a material. For instance, to make a plane that simulates a marble floor, we have to use a texture, and set up how the surface will react to light to give the surface a proper look of marble. To do that, we use the Texture panel, which is located right next to the Materials button. We can use a keyboard shortcut to open this panel; just hit F6 to open it:
There is a way to add a texture in the Material panel also, with a menu named Texture:
To get all the options, the best way to add a texture is with the Texture panel. In this panel, we will be able to see buttons, which represent the texture channels. Each one of these channels can hold a texture. The final texture will be a mix of all the channels. If we have a texture in channel 1 and another texture in channel 2, these textures will be blended and represented on the material.
Before adding a new texture, we must select a channel by clicking on one of them. Usually the first channel will be selected, but if you want to use another one, just click on the channel. When the channel is selected, just click on the Add New button to add a new texture:
The texture controls are very similar to the materials controls. We can give a name to the texture at the top and erase the texture if we don't want it anymore. With the selector, we can choose a previously created texture also. Just click and select it:
Now, here comes the fun part. With a texture added, we have to choose a texture type. To do that, we click on the Texture Type combo box:
There are a lot of textures, but most of them are procedural textures, and we won't use them frequently. The only texture that isn't procedural is the Image type. We see an example of a procedural Wood texture in the following screenshot:
We can use textures such as Clouds and Wood to create effects and give surfaces a more complex look, or even create a grass texture with dirt on it. But most of the time, the texture type which we will be using will be the Image type:
Each texture has it's own set of parameters to determine how it will look on the object. If we add a Wood texture, it will show the configuration parameters to the right:
(Move the mouse over the image to enlarge.)
If we choose texture type as Clouds, the parameters shown on the right will be completely different.
With the Image texture type, it's not different. This kind of texture has its own type of setup. Following is the control panel:
To show how to set up a texture, let's use an image file that represents a wood floor and a plane. We can apply the texture to this plane and set up how it's going to look, testing all parameters:
The first thing to do is to assign a material to the plane, and then add a texture to this material. We choose the Image option as texture type. Blender will show the configuration options for this kind of texture.
To apply the image as a texture to the plane, just click on the Load button, located in the Image menu. When we hit this button, we will be able to select the image file:
Locate the image file, and the texture will be applied. If we want to have more control on how this texture is organized and placed on the plane, we need to learn how the controls work. Every time you make any changes to the setup of a texture, these changes will be shown in the preview window. Use it to make the required changes.
Here is a list of what some of the buttons can do for the texture:
- UseAlpha: If the texture has an alpha channel, we have to press this button for Blender to calculate the channel. An image has an alpha channel when some kind of transparency is stored in the image. For instance, a PNG file with a transparent background has an alpha channel. We can use this to create a texture with a logo, for a bottle, or to add an image of a tree or person, to a plane.
- Rot90: With this option, we can rotate the texture by 90 degrees.
- Repeat: Every texture must be distributed on the object surface; repeating the texture in lines and columns is the default way to do that.
- Extend: If this button is pressed, the texture will be adjusted to fit the entire object surface area.
- Clip: With this option, the texture will be cropped, and we will be able to show only a part of it. To adjust which parts of the texture will be displayed, use the Min/Max X/Y options.
- Xrepeat / Yrepeat: This option determines how many times a texture is repeated with the repeat option turned on.
- Normal Map: If the texture will be used to create Normal Maps, press this button. These are textures used to change the face normals of an object.
- Still: With this button selected, we will specify that the image used as texture is a still image. This option is marked by default.
- Movie: If you want to use a movie file as texture, press this button. This is very useful if we need to make something similar to a theater projection screen or a tv screen.
- Sequence: We can use a sequence of images as a texture too. Just press this button. It works the same way as with a movie file.
There are a few more parameters, such as the Reload button. If your texture file is updated outside of Blender, you must press this button to make Blender update the texture in your project. The X button can erase this texture; use it if you need to select another image file.
When we add a texture to any material, an external link is created to this file. This link can be absolute or relative. Suppose we add a texture named wood.png, which is located in the root of your primary hard disk, such as C:\. A link to this texture will be created like this — c:\wood.png. So every time you open this file, the software will look for that file at that exact place. This is an absolute link, but we can use a relative link as well. For instance, when we add a texture located in the same folder as our scene, a relative link will be created.
Every time we use an absolute link and we have to move the .blend file to another computer, the texture file must go with it. To imbue the image file with .blend, just press the icon for gift package:
To save all the textures used in a scene, just access the File menu and use the Pack Data option. It will cause all the texture files to get embedded with the source .blend file.
(For more resources on Blender, see here.)
Every time we add a texture to any object, we must choose a mapping type to set up how the texture will be applied to the object. For instance, if we have a wall and apply a wood texture, it must be placed like wallpaper. But for cylindrical or spherical objects or even walls, we have to set up a way that makes the texture adapt to the topology of the surface, to avoid effects such as a stretched texture.
To set up this, we use the mapping options which are located in the Map Input menu:
In this menu, we can choose between four basic mapping types which are Cube, Sphere, Flat, and Tube. If you have a wall, choose the option that matches the topology type with the model. In this case, the best choices are Cube or Flat.
Another important option here is the UV button, which allows us to use another very powerful type of texturing, based on UV Mapping.
This is a special and useful type of texture that can change the normals of surfaces. If we have a floor and a texture of ceramic tiles, with this kind of map, the surface can be represented with all the little details of that tiling. It's almost as if we model the tiles. But everything is created just with a normal map:
To use this kind of texture, we turn on the Nor button in the Map To menu. When this button is selected, we can set up the Nor slider to determine the intensity of the normal displacement. We see a comparison between a surface without and with the Nor option enabled in the next image:
It works based on the pixel color of the texture. With white pixels, the normals are not affected, and with black pixels, the normals are fully translated. If you want to optimize the normal mapping, using a special texture for that is recommended. Some texture libraries even have these types of normal maps ready for use in projects.
Here is an example of how we can use them. We take a stone texture and a tiled texture with a white background and black lines:
The stone texture is applied to the floor, and the tiled texture is used to create a tiling for the floor. The setup for that is really simple. Just apply the texture at a lower channel, and turn off the Col button for this channel. Turn on the Nor button, and this texture will affect only the normal's and not the material color. If you want, any image can be used as a normal map. Just set up the Nor intensity with the slider and check the render:
Turn on positive and turn on negative
Some of the buttons in the Map To menu can be turned on with positive and negative values. For instance, the Nor option can be turned on with one click. If we click on it again, the Nor text will turn yellow. This means that the Nor is inverted, with negative values. Some other buttons may present this same option:
(For more resources on Blender, see here.)
For some models, just placing an image on a surface is not enough. We have to take more control over all textures, and even create a more personalized texture for a model. With UV Mapping, we can create a texture image that fits exactly to all surfaces of a model and with the possibility to add details such as dirt and small imperfections to the texture image. Some of the painting of a texture can be done in Blender.
This kind of editing has to be done outside Blender, with painting software such as Gimp or Photoshop. Once this editing is done, we just have to apply the new texture again to the model.
What do we have to do to create a texture like this? The process for using this kind of texture is simple, but the task can demand a bit of editing. We must mark the model with some lines named seams.
Let's see how it works with a wall. The first step is to select the model, and change the work mode to Edit Mode:
Change the selection mode to Edge, and select a few edges. Press the Ctrl + E shortcut, and choose the Mark Seam option:
With this, we will be marking the edges of the model that will be break during the unfold process. Which are the best edges to mark? Well, here we will have to use a bit of imagination:
To choose the best edges, we must imagine the best places to mark and unfold the model. When the seams are marked, open a new window and change the window type to UV/Image Editor:
When this new window is opened, press the U button in the 3D View with all the objects selected. It will call the unwrap function, and create a flat layout with the unfolded model. Sometimes this operation requires a lot of testing and adjustment to produce a good result, but with the right seams, it will produce a nice flat image with all surfaces aligned and ready to be converted into a texture file.
Now, we have to export this layout as an image. To do that, we use a very good script named Save UV Face Layout... Just access the UV menu in the UV/Image Editor window, and choose Scripts | Save UV Face Layout...
It will call a small menu, with the options for this script:
To set up the layout, we must change a few parameters, such as:
After editing the layout, we can apply the layout as a texture. But we must turn on the UV button in the Map Input menu. It will make the material look for a UV Mapping image to display:
Now, all we have to do is press F12 to render the image, and the texture will be applied to the object.
The operation of creating a UV Mapping can be very annoying for some people, because we have to imagine the unfolded model to mark the seams. To help with this task, there are a few scripts to create the seams and unfold the model automatically. One of them is created especially for architectural models.
The name of this script is Unwrap (smart projections), and it's very easy to use. Just open a new window, and choose a UV/Image Editor as the window type. Then, in the 3D View, and in Edit mode, press the U key, and choose Unwrap (smart projections) in the UV Calculation menu:
The Angle Limit will determine how the faces will be unfolded. Bigger angles will generate layouts with grouped faces, and smaller angles will create layouts with more islands, which mean groups of faces generated by the unwrapping process. The Selected Faces button makes the script unfold only the selected faces, if turned on:
We can use the Stretch to Bound to make the layout fit the UV layout. And the Bleed Margin determines a limit for the UV layout to grow outside the limits of the window. And with the Fill Quality, we can set up the overall quality of the filling for the faces, if the Fill Holes button is pressed. We can see an example of how an angle set to 1 (minimum) and to 89 (maximum), can change the look of an unwrapped model in the following image:
In this article, we have learned how to work with textures to give our materials more realism. There are basically two types of textures, which are procedural and non-procedural textures. For us, the bitmap textures will be used most often, to allow us to create scenes with more realism.
In addition, we learned how to:
- Choose and organize textures
- Apply and setup a bitmap texture
- Map a texture around a model
- Use normal maps
- Create UV Layouts to create more complex textures
- Blender 3D 2.49 Architecture, Buildings, and Scenery [Book]
- Blender 3D 2.49: Quick Start [Article]
- Blender 3D 2.49 Incredible Machines [Book]
- Make Spacecraft Fly and Shoot with Special Effects using Blender 3D 2.49 [Article]
- Blender 2.49 Scripting [Book]
- Blender 2.49 Scripting: Shape Keys, IPOs, and Poses [Article]
- Advanced Effects using Blender Particle System [Article]
- Character Head Modeling in Blender [Article]