In this and the next post I will describe my work on the first of the textures required for the SBD Dauntless model. It is called bump (height) map. I use it for recreating all of the minor details that are visible on the aircraft skin.
However, before I begin this work, I had to put my model into more “natural” surroundings. I imported the environment (World) and the material settings from my previous model (the P-40). You can see the initial results below (Figure 68‑1):
Of course, the propeller of this aircraft is static, and there is nothing in the cockpit and under the engine cowling. Do not worry, this is just the first approximation! The principle is that you should work with the materials in the final environment. Otherwise the final result may not look as you want. In this case there is an outdoor scene, full of the sunlight. (Every painter will tell you, that everything on the picture depends on the light: many details would look quite different in the indoor lights and their soft shadows).
As you can see, I decided to start this work with an ideal, smooth and shiny material. Each new texture that I will apply will make it more realistic.
Note for those, who will examine the contents of the Blender file that accompanies this post: I am using the Cycles renderer to create this one and the future pictures. (Cycles is one of the Blender rendering engines). The node-based schemas of its environment and materials are quite complex. What’s more, I modified them after importing from my P-40 model, temporarily removing all of the original P-40 textures, and disconnecting many fragments that initially are not needed (Figure 68‑2):
If you would like to analyze details of this setup – you can find its step-by-step description in vol. III of the “Virtual Airplane” guide. It shows how to obtain the required effects, and also discusses some of the possible alternatives.
Creation of the bump map resembles work on a new scale plan. I am drawing it as the scalable (vector) drawing in Inkscape, adding new details to the picture that I started in one of the previous posts. Keeping the source picture of this texture in the SVG format allows me to quickly generate image of any resolution.
I decided that it will be much easier to use the same texture for all of the SBD versions. Thus I had to shift the UV maps of some version-specific elements (mainly the engine cowlings) into the other, unused areas of this UV space.
Then I had to fill the areas between the panel lines with rivet seams, bolts and various inspection doors. I stared with the center wing area. I used the reference drawings (scale plans and the UV mesh layouts) to create the first approximation of these lines (Figure 68‑3):
Technically, I sketched the rivet seams as dotted lines, using a customized dot pattern. (You can find how to do it in the “Virtual Airplane” guide, in the chapter about Inkscape, section titled “Drawing a dotted line (rivets)”).
Then I matched these seams against the reference photo. Initially these rivets were in red, because this color makes them more visible against the background picture (Figure 68‑4):
During this work I had both: Blender and Inkscape windows on my screen, side-by-side. On the reference photo in Blender I could see the differences between the real rivet seams and my drawing. Using these findings, I updated accordingly the drawing in Inkscape. Then I exported it from Inkscape as a new version of the *.png file, reloaded it in Blender, and looked for the remaining differences. Refreshing the mapped image with these “export+reload” commands is quick and requires just two mouse clicks, and one keyboard shortcut in Blender. Usually I need between 3 and 6 of such iterations to obtain a satisfactory match between my drawing and the photo of the given part of the aircraft.
When the rivet seams are in place, it is good idea to check if the internal ribs and spars fit their lines. (While working on the wing, I created a few of these internal reinforcements inside the wheel bay – see Figure 68‑5):
In the 3D View mode Blender draws the texture on both sides of the surface, so such a comparison is pretty straightforward. To see the rivet seams “through” the elements being verified, I switched their display mode to Wire. When I identified a difference, the rule was that the rivet seams are in proper location (because they were already verified against the reference photos, while these ribs and spars were based just on the reference drawing). In the case depicted above, I had to move forward the front spar (by less than 0.5”).
When I verified all the rivet seams from the current area, I switched their colors. Because the leading edge of the SBD wing had smooth finish with flush rivets, I created for them new sublayer, named Flush. These seam lines are black. The remaining rivets had classic (dome) heads, thus they are white. I placed them on another sublayer named Dome. I also added to this drawing the inspection doors and the fuel filler cover (Figure 68‑6):
In the bump map texture, the shade of the gray determines the height of an area. The highest element is white, while the lowest is black. Thus I switched the background color of my Inkscape drawing to the neutral gray (50% black + 50% white). Then I could recreate the aircraft skin panels. In the SBD Dauntless these panels overlapped each other. To achieve this effect, I used areas filled with linear gradient (Figure 68‑7):
In this fragment of the aircraft skin I used only areas filled with vertical gradients. I placed them on Panels:Vertical sublayer. (In more general cases, I will also use another set of panels, from :Horizontal sublayer). There are always some sheets riveted atop other panels. In this drawing, I drawn them as the lightest areas, placed on Overlays layer. To decrease variation of the rivets height between the darker and lighter areas, I made their layers partially transparent. (See more details of this method in the “Virtual Airplane” guide, in the chapter about Inkscape, section titled “Mapping construction details of airplane surfaces”).
As you can see in the figure above, I also sketched various minor openings in the aircraft skin. Initially they are red (just for easier matching against the reference photos). Ultimately the verified elements from this layer are black. I will use them not only for the bump map, but also for another auxiliary texture: the opacity map (you will see it “in action”, soon).
OK, let’s check how this first fragment of the bump map looks on the model. I exported it from Inkscape as a raster image (4096x4096px) named nor_details.png. Then I added to the material schema an Image Texture node, which represents this image. It is connected to the Displacement slot in the material output (Figure 68‑8):
As you can see in the figure above, I selected one of the available UV maps by name – using the Attribute node. Usually in my schemes it is accompanied by a UV Fallback node. This custom (group) node provides the default UV map for the meshes that do not have the UV map specified in the Attribute node.
You can evaluate the results below (Figure 68‑9):
The first thing that I noticed: the dark gray dots that I used to emulate the flush rivets should create less visible seams. Currently their rivets seems too deep – so I should make these dots lighter. The same applies to the small bumps around bolt heads (visible on the covers).
You can see the details created by the bump texture when you place the model between the camera and the sunlight. (Check it, playing with the rendered model that accompanies this post). These skin details can completely disappear, when you look at the model from certain directions. As in the real world, all these rivets and panel seams are mostly visible not because of their shape (recreated by the bump map), but because of the small amounts of dust and dirt that accumulate around them. In one of the future posts I will recreate this effect, using the reflectivity texture. For this purpose I will reuse most layers from the bump map image.
In this source *.blend file you can evaluate yourself the current version of the model.
As you can see in this post, you have to draw a lot of details while preparing the bump map. (I think that this is the most time-consuming texture). However, nearly all of the other textures will base its drawing. In the next post I am going to show you the finished version, so give me some time to complete its image. I think that I will publish this second article about bump map within two weeks (on April 8th).
5 thoughts on “Creating Textures: Basic Bump Map (1)”
Hi Witold, thank you again for the SBD update, its been some time since I heard from you, I hope you and your family are well in these troubled times, all is well here printing planes and flying.
I am seldom using Blender presently but manage to get around it OK.
Best wishes to you and I look forward to your next update,
kindest regards, Kell Steinman
On Mon, Mar 27, 2017 at 12:39 AM, Airplanes in 3D wrote:
> Witold Jaworski posted: “In this and the next post I will describe my work > on the first of the textures required for the SBD Dauntless model. It is > called bump (height) map. I use it for recreating all of the minor details > that are visible on the aircraft skin. However, before I ” >
Kell, thank you!
Fortunately, there is everything fine “in my small garden”. The business project that I finished in March went pretty well, so now I have time for my hobby.
Witold, nice to have you back- informative as always
Dave, thank you very much for following!
I am really happy that you have found these posts interesting. Some years ago you helped me to start writing these tutorials – I still owe you a model or two :).
All the best