Texture tricks with Blender and GIMP

Get the printable PDF version  

The challenge in modelling mostly is, apart from doing a good design, to achieve the best compromise in detail and low polygon count. So often, one ends up with the question, whether to model the detail or using a texture instead.  
This tutorial covers the generation of detailed textures for more or less planar objects, in particular the popular subject of texturing space ships. The general idea is, to create a raw outline of the texture in Blender, respectively using a snapshot seenfrom a suitable perspective, paint on this outline in GIMP and map it back to the object using the Sticky option. That way, no iterative adjusting of textures is necessary.  
 

How does the Sticky option work?
 
Prerequisite skills: Modelling, basic texturing, (multiple) material assigning.
 
Let us shortly recall some gray theory. We know that image textures basically carry colour information which is to be applied to the 3D object. But we can also use textures to control other parameters as reflectivity, specularity, transparency, etc. of single spots on our polygon surface. Finally, the so called bump maps allow to fake a bumpiness of the object's surface by some modification in the calculation of the light reflection of the affected spot. It is not a real displacement though, which can be seen when the textured surface is tilted strongly towards the virtual camera.  
 

First step: Creating the raw outline in Blender 

Resizing the plane
 
Scale Object
S
 
 
Applying Size/Rot
Ctrl-A
Duplication
Shift-D
Moving to  
layer
M
 
We will start in top view with a simple plane (the default plane), which we put some structure on by simply drawing lines and adding a few circles. Place a camera above the plane that way, that the camera view is fully including it - you may also resize the plane. To set its Object size to 1.0, press [Ctrl-A] to apply the current size. This is useful for later, as we may want to scale the plane during the modelling process.   
Before proceeding, make a copy of the plane with [Shift-D], and move it to another layer using [M]. We will later colour that copy with the generated texture.
  Now for the modelling, which we will do in TopView only: As we may want straight and perpendicular lines dividing the plane in futuristic looking sections, we rescale the object outside EditMode using [S] to a decent size, so that we can use the grid snap for our line structures. Tip: For resizing, press down [Ctrl] while moving the mouse to size in steps.  
Now enter EditMode with [Tab]. We first would like to try a little rectangular section inside our plane, so we select all vertices with [A], duplicate them with [Shift-D] and somewhat shrink that duplicate. To scale in one direction only, press the middle mouse button to toggle the constraint to X respectively Y. Move the rectangle with [G] to the desired place. This is what we now should have got:
Select linked vertices Ctrl-L
Snap Shift-S
 
Let us try some lines: Deselect all vertices with [A], and left-click on a grid point while holding [Ctrl] - a vertex will be set, probably not perfectly matching the grid point though, but never mind, we will fix this right after. All the following vertices you set that way will be linked with the previously selected one. Try to make some tube-like structure from one box to another, as shown below. If you are done, press [Ctrl-L] to select all vertices linked to the last set one. Pressing [Shift-S] and choosing the option Sel->Grid will snap the selected vertices to the grid. 
Select linked vertices near mouse cursor L
Extrude E
 
You can also select contiguous vertices by just pointing the mouse cursor over a vertex and pressing [L].  
Now continue adding lines and maybe finally add some circles, too: Still in EditMode, call the ToolBox with [Space] and choose Circle.  
One last tip before it is getting boring: You can also use the extrude function by selecting the desired vertices and pressing [E] - that way you can quickly generate several complex structures at once. For example, we can create an outline for a row of tubes by extrusion and rotation, as shown in the final outline example below. 
Clear Size Alt-S
 
Now, before you render, reset the plane size to the default size which we saved before by "Apply Size/Rot" - this is done by pressing [Alt-S]: "Clear Size". 
MaterialButtons
EditButtons
When we are ready to export the modelled outline to GIMP, we set the material to Wire and Shadeless in the MaterialButtons. Pressing [F12] will finally render a wireframe view, as we have modelled it. It could be though, that there are some lines missing - in this case, enter EditMode and activate All edges in the EditButtons panel - when you press [Tab] again, all lines will be shown in the 3D display as well as in the final render. 
Finally, for the export, set OSA and render at a decent resolution - preferredly a square one of like 512x512. Save the image in TGA format - we are ready for the GIMP work now! 


Second step: Painting in GIMP using the outline

Load the previously generated image in GIMP.  First, open the Layer Panel by right-clicking on our outline image and selecting Layers->Layers & Channels - we will make extensive use of this selector. 
We will start with making the colour map. Add a new layer with [Ctrl-N] and choose "Transparent". It is suggested, that you rename that layer to "Col" by double-clicking on the name right next to the layer thumbnail. A new layer will then be opened as shown in the figure to the right. Now select the Background layer again (our outline). The process we will now follow is always the same: We will select an area in the Background  layer, change to the Col layer and paint there. We will never paint into the Background layer - this would destroy our selection template! 
Fuzzy Select 
Blur tool 
Clone tool 
The selection is easily done with the Fuzzy Select tool - you just click into the outlined region. Now, when switching to the Col layer and painting in it, the painting will be constrained to that selected region. That's all of the trick! 
The only problem still is, that the edges of those regions are not painted this way, which sometimes might not be desired. With the Blur tool you can smooth the transients, but you may also try the feather option and different radius sizes (double click on the magic wand for the options menu). This will smooth the edge of your selection region. 
About the painting itself: It is best done with the Clone tool. You may either use one of GIMP's patterns or better, load metallic, rusty textures into GIMP and use them as clone source. This works by Ctrl-leftclick on the source spot first, then left-clicking and painting on the destination spot in our Col layer. 
That way, we can produce a good raw colour map. 

Doing relief

Fill Bucket 
Foreground/Background
Colour selection
Next, let us add a layer for the normal (Nor-) texture map - the bump map. The simple thumb rule is: The brighter, the higher - as in a relief map. The painting technique is just the same - you may use the Fill Bucket for giving a raw structure first and then later using the Addition and Subtract mode (to select in the Brush Selection under File->Dialogs->Brushes). 
Set your Background colour to a medium greay (as shown to the left) and add another layer again, using the "Background" option instead of "Transparent". This layer you might call "Nor". 
 
 
Gradient Tool 
Another option which is very well suited for tube like structures or just round stuff: the Gradient Tool. By double clicking on the icon, you can choose among several modes - try experimenting with the Shapeburst option. The gradient will go from the foreground to the background colour, so adjust them to the desired value, make your selection in the outline layer and then click and drag into the Nor layer to get the result in the figure to the right. Play also with different gradient types as of Bilinear or Radial. 
You can now add other layers for texture maps controlling Spec, Ref, Alpha, Emit or whatever you desire. 
Finally, you may want to apply some more detail to the raw structure you have made. For example, you may want to create some scratched, bumpy hull - so you could use one of the Galaxy brushes to demolish your surface. This you should do in Addition or Subtract mode though...and probably reduce Opacity too - or alternatively choose the proper foreground value. Generally, slight bumps should barely be visible.

Adding detail to several layers

Often, you may want to apply line or rivet structures, as they make a lot of detail on science fiction-like textures. For that, you would start with another source image containing this structure in just black/white and use the clone tool. For a good result, these structures would have to be applied to the Col layer as well as to the Nor layer. This can just be done by switching layers, after the clone source has been specified with Ctrl-click. In this case, you would also use the Addition or Subtract mode again. 

If you want to apply fine coloured structures, it is best to start with another image and generating two layers for Col and Nor separately. You can of course use the same technique from Blender to generate fine structures and then colour them using our method - often these structures look too regular and perfect  though. A good alternative is a scanned image from a circuit board, which you do some image processing on, like edge detection from GIMP's filter menu, etc.  
Finally, your layers might look like this: 

 
Col layer Nor layer Spec layer
 
A few tips: 
  • Safe often - and in the GIMP's native XCF format. Other formats do mostly not save different layer information
  • For lighting windows or position lamps on a space ship, an Emit texture is always well suited
  • Mostly it is not necessary to create a separate layer for Ref and Spec - a good parameter setup can do, too.
As the impatience to see a result might grow now, we save all our layers to TGA and do a test render. Saving the layers is done by selecting the single layer in the layer control panel and choosing "Save As" from the menu. It is suggested to use a naming of the format <name>.<type>.tga, where <type> is of the mapping types Col, Nor, Ref, etc.  

Reimport to Blender

Output mapping buttons
Spec/Ref sliders
Back to Blender, load all those textures in the slots of a newly created material and select the corresponding mappings: 
  • Col layer: just as usual
  • Nor layer: inverted Nor-Button, Nor-Slider around 1.0
  • Spec layer: You may activate the Ref-Button for this, too. Spec/Ref sliders should be set to 0.0 respectively a small value.
In-Mapping buttons
This material we assign to the copy which we made of the plane in the beginning (which was moved to another layer). Before you move the camera, subdivide this copy a few times (this is needed for the interpolation of the texture coordinates for the stick option) by pressing [W] and choosing "Subdivide". If you would not do that, you might notice a weird distortion of the texture later. Then,  choose "Make Sticky" in the EditButtons and set the In-mapping option to Stick for all layers - this causes the texture being mapped back the same way as it was rendered before. 
This is the rendered result of the above example layer combination: 

Further hints

You will probably need a lot of iterating and experimenting until you get a decent result. It always helps if you start with a template, like scanned images from machine parts, or the mentioned circuit boards. Also, it is always good to analyze the "real world" and simply begin with copying something known. 
You could also start with an image of a structure which you subject to some colour reduction (GIMP's posterize feature : Image->Colors->Posterize). That way you may get larger contiguous regions which you can select with the fuzzy select tool again. 

A somewhat different approach to create textures entirely with blender is shown at http://honk.physik.uni-konstanz.de/onk/3d/. It uses a setup with World Mist to create a relief map from a given 3D structure. 

 
 
 
Oktober 1999
onk@gmx.net