Creating Textures: Bump Maps (2) and the Opacity Map

Originally I was going to describe the finished bump map in this post. However, when I started writing it, I discovered that I have enough materials for at least two subsequent posts. Thus I decided to split this text into this and the next article.

There are many small openings in the aircraft skin. For example ­– perforation of the SBD Dauntless wing flaps, or small slots for control surfaces actuators. It would require a lot work to model each of such details “in the mesh”. What’s more – it would make the model meshes much more complex, which would hinder the UV mapping, and so on.

Fortunately, there is a much simpler solution for all these small openings. Just draw their shapes as black objects on white background, then use this picture as so-called opacity map (Figure 69‑1):

Figure 69-1 Opacity map and its effects

As you can see in figure above, the final result does not differ from the openings modeled “in the mesh”.

For this opacity map I used a 4096x4096px image, mapped with the same UV coordinates as the bump map (i.e. UVTech coordinates). Below you can see how it is connected to the material scheme (Figure 69‑2):

Figure 69-2 Opacity map – connection details

I also used these black contours in the bump map (they create impression of “metal sheet thickness” around edges of these openings).  Of course, if you wish to make extreme close-ups of the model, you can generate from the source Inkscape drawing a raster picture of higher resolution (8192x8192px?). In the extreme cases you can even create a separate UV map for the opacity texture, enlarging the areas around holes and reducing all the others. (I do not need such an extremal solution in this model).

Working on this model, I am drawing the bump map and the opacity map in parallel.

In the previous post I showed how I recreated bump map details of a classic stressed skin: rivets, panel edges. However, the fabric-covered surfaces, like the aileron, require different elements (Figure 69‑3):

Figure 69-3 Bump map: aileron details (an example of the fabric-covered surface)

As you can see, the background color of this image is darker than in the previous post (it is 75% black). I decided to use it, because most of the elements on the SBD skin is protruding (rivets, inspection doors). To recreate the protruding rib edges, I used a combination of linear and circular gradients (the latter for the circular endings of each rib). These gradients have a sharp, symmetric, parabolic profile. (For details of this solution, see “Virtual Airplane” guide, chapter about Inkscape, section titled “Mapping the fabric-covered surfaces”).

I also used gradients to recreate flanges, stamped around the flap holes (Figure 69‑4):

Figure 69-4 Flanges around openings in the flap

I set the opacity values in the subsequent nodes of this gradient so that they match the profile of this flange.

For another element I had to use a different solution. The fabric between ribs is tensed like a membrane, so in an aircraft standing on the ground it is flat. However, in the flight it is deformed by the airflow. To reproduce this deformation, I added another shape to the bump map (Figure 69‑5):

Figure 69-5 Dynamic “bumps” on the fabric surfaces between ribs

First I sketched black shapes in the areas between ribs. Then I used a special so-called SVG filter to blur these areas. (SVG filters are “dynamic” modifiers: I still can turn it off to modify the original contour). Such a blurred shape creates gentle recesses on the rendering.

One note about implementation of these recesses in the bump maps textures. To obtain the effects depicted above I had to intensify the “black” components. The contrast between black areas and 75% black of the background is relatively low in the basic texture (see the fragment of nor_details.png image, presented below). To make these recesses deeper, I had to add another texture (nor_blur.png – see Figure 69‑6):

Figure 69-6 Using two bump maps to intensify the effect of selected darker areas

Pixels from both images are merged in the material schema using Multiply node, thus all black areas in the result image are still black. Before the Multiply node, each texture has its own control node. These nodes control influences of their sources in the resulting bump map image (i.e. in the input delivered to the Displacement slot in the surface output node). The simpler Moderate node can make nor_blur.png darker, while the control node of nor_details.png makes it lighter (the Min value), but simultaneously it can “flatten” its grayscale Range. Comparing to altering the shades of the source image layers in Inkscape such a solution has two advantages:

  1. You can easier to alter their intensity in the material schema, and you can instantly see the effect on the rendered picture;
  2. Blender converts output from Image nodes to floating-point numbers, thus you will not lose any contrast from the source image. (In Inkscape every elementary color component is converted to a byte integer 0..255, thus when you decrease color intensity range, it can lose some of the image contrasts);

Of course, I can also decrease depth/height of a single element (for example – recesses of the fabric surface between the ribs) by reducing its opacity in Inkscape. However, to apply such a change, you have to export the new version of the texture image from Inkscape and refresh it in Blender. It requires more “clicks” than altering of a single slide in the material scheme. On the other hand, I did not want to use too many images in the material schema. Thus I decided that I will use two source bump maps in Blender. I expect that I will alter their intensities more often than the others.

Figure 69‑7 shows the updates that I made in this post, on the model:

Figure 69-7 Updated model

As I mentioned before, the rivets and panels seams created by the bump maps are visible from a relatively narrow field of view. The camera used to create the picture above was outside this area. They will become more visible when I apply other textures (reflectivity map, color map).

In this source *.blend file you can evaluate yourself the current version of the model. Note, that the enclosed texture images covers just the wing (BTW: it had a hell of inspection doors on its lower surface!). There is no image for the tailplane, nor for the fuselage, yet. I will finish these areas and describe in the next post, which will appear in two weeks.

One thought on “Creating Textures: Bump Maps (2) and the Opacity Map

  1. Hello,I check your blogs named “Creating Textures: Bump Maps (2) and the Opacity Map – Airplanes in 3D” regularly.Your humoristic style is witty, keep up the good work! And you can look our website about proxy list.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s