Aircraft Texturing - illustrated mini-guide


#1

I wrote the following for Military-Meshes.com and thought some of you might like it if I shared it here too.

This is written mainly for 3D Studio MAX, but other apps work in very similar ways, so it might be of use to users of Lightwave, Maya, etc… too.
People might be familiar with my aircraft texture mapping tutorial already, but there are better ways of texturing aircraft models.

1 - Quick & Easy
This technique uses mainly planar mapping of the entire object. One set of mapping coordinates (UV channel 1) from the side, and one set from the top (UV2). These two textures are then merged with the used of a mask.
In MAX a typical material setup would be a top-bottom material using local coordinates (in case your plane attempts a looping! ;)). Each sub material uses a Mix Map for diffuse/specular.bump/etc mapping. The first map in a Mix Map is the sideview (mapping channel 1). The second map is the top or bottom view (mapping channel 2). The third map is the mask, whereby areas that should receive the sideview texture is painted white and other areas black (unused areas can be painted grey for clarity).
The sideview of course has a left and right side. This can be achieved by making it a Composite Map in MAX. If you’ve mapped the side from the left, your first map should be the right side texture (set to tile and “Show Map on Back” turned on = default). Then the second map (which will be composited on top of the first) is the left side texture and it should have tiling disabled and “Show Map on Back” turned off too.
The use of the Top/Bottom Material may speak for itself here.
Below are the (diffuse) textures used on the plane shown in the top image.

UV channel 1:

UV channel 2:


#2

2 - Proper
The second technique is pretty much the same way it’s done for low-poly models. The model is broken up in small parts which can be mapped seperately and arranged in a square. It helps if you already plan ahead your low-poly mesh before adding Meshsmooth (MAX - subdivision) and give each seperate part a different material ID. This saves time breaking up the model for unwrapping (as you can simply select by ID rather than hand-select hundreds of polygons).

A long time ago when we were colleagues, Captain Haddock showed me a technique whereby the mesh broken up in small bits, then animated into a flat square which can be mapped planarly. So first you detach your mesh into small parts which can be mapped planarly. Then turn on the animate button, move the slider to 100 and move and rotate all bits to fit in a square area. When all bits are arrange, add a UV Map modifier and make sure to set both width and height to the same value (the biggest one of the default setting - so the model will be mapped with a 1:1 aspect ratio). When this is done, add a Unwrap UVW modifier. Next cut this modifier again, then delete the UV Map modifier, set the animation slider back to 0 and paste the Unwrap UV modifier again. Collapse the stack back to editable poly or mesh. Now your UVs should be fixed in place. You can check this by adding an Unwrap UV modifier again and opening the Edit window. If you’ve done it right, your UV layout should be the same as the animated mesh layout you made earlier. O yea, don’t forget to weld all broken vertices again.

This technique was used on my Junkers 88 model. I didn’t want to go over 2048x2048 per texture and because of the complexity of the model I needed to map the nose seperately (1024x1024) to have enough texture resolution in the cockpit area in case I needed to add squadron badges and such. The nose area then received its own material ID in a multi-subobject material so it could have the second texture.

Material ID1:

Material ID2:


#3

What is better?
You might wonder now what technique is better. To be honest, I haven’t figured that out myself yet :smiley:
But I can explain you the benefits and draw backs of each:

Technique 1
Benefits

  • It’s faster and easier to set up.
    Unwrapping is kept to an absolute minimum and requires little skill. You just have to be careful with areas that “fold back on itself” such as airscoops. Also, if you have engine nacelles you may have to break them off and map them on a different location in your UV layout. In the case above, you notice that the wing overlaps the rear fuselage. This is wrong of course, and in a later stage the wing was detached in UV1 and moved into one corner so it wouldn’t receive the fuselage mapping. But that’s about all unwrapping you will have to do. Other than that it’s simple planar mapping.
  • You can keep the textures smaller.
    Since you’re using MAX materials anyway, texture resolution doesn’t matter and you can optimise the textures to the shape of your model. This way you can keep each texture relatively small compared to when you would unwrap the entire model on one sheet. Smaller textures are of course much more pleasant to edit in Photoshop.
  • Seamlessly easy.
    By having waved, blurry or speckly edges on your mask, you can prevent seams on your texture really easily. Top/bottom and side views will blend in perfectly and make a neat skin for your mesh. If you keep the length of your top/bottom and side view textures equal, it’s also really easy to match up panel lines and such. Also you can generate your right view from your left vuew, and your bottom view will have a lot in common with your top view. So creating your textures is quite a bit easier too.

Draw backs

  • You can end up with many textures.
    In case of a very complcated model, you can end up with many textures. In case of my Mustang, I wanted a high texture resolution, but not the burden of big textures. So I split up my model in quite a few (too many!) different textures:
    fuselage_top
    fuselage_left
    fuselage_right
    fuselage_bottom
    wing_top
    wing_bottom
    wing_front
    tailplane_top
    tailplane_bottom
    tailplane_front
    …and of each one a diffuse, specular and bump variant. As you can understand, the material structure got kinda complicated in the end, with lots of Composite and Mix Maps.
    With the example above I was able to keep it much simpler. Top, bottom, left, right (which I never bothered making in the end! :D).
    Many textures can be a pain when you want to change something, such as the positioning of a marking that goes across the fuselage. This can easily mean you have to edit 12 textures to adjust one item on it.
  • Materials can get complicated.
    As mentioned above, material structures can get a bit complicated this way. This also means that MAX has a harder time calculating the materials, which can make rendertimes longer.

Technique 2
Benefits

  • Simpler materials.
    If you manage to map everything onto one page, it’s really easy to set up your material. All you need it one Bitmap and no hassle with Mix Maps and Composite Maps. This also improves rendertimes.
  • Fewer textures to edit.
    If you manage to unwrap everything to one texture, you will have an absolute minimum of textures to edit. Quite convenient when you want to make many variations of your model (different camouflages etc…).
  • Stretchless.
    You can unwrap your model in such a way, that there’s no noticeable stretching. With Technique 1 stretching will be limited too, however, never exceeding 45 degrees if you do it properly.
  • Trouble-free export & real-time use.
    Having unwrapped your model properly means that applications that don’t support MAX materials can still display your model properly. So you can export your model to a different application and the materials will be preserved. This will allow your model to be exported to Shockwave 3D, for example, so you can view it in real-time 3D. There are several examples of this on my website.

Draw backs

  • Tricky to set up.
    For many the unwrapping process is a complicated one, and for all it’s elaborate. It simply takes time to align everything the way you want it. And mistakes are easily made if you lose track of where everything goes. It’s also more complicated to edit the texture once it’s unwrapped, as all parts have to meet up in the end. This brings us to…
  • Seams!
    Breaking up your model creates countless seams which have to be cleverly edited on your texture in order to not show up. Here texture baking can be a great help. Imagine having a Tiger Meet F-16 to texture… matching up all the tiger stripes with this technique can be a nightmare. The best option is to make a new, planar, mapping set for this (UV2) and bake it to your unwrapped texture (UV1). But this is a completely different story altogether! :slight_smile:
  • Big texture size!
    For me, the main problem with this technique is the huge texture sizes required to keep a decent resolution for your model (if you unwrap to one single texture). Anything over 2048x2048 will really make Photoshop choke, and the mentioned resolution is rarely sufficient for. A sulution to this is to scale down unimportant parts and thus free up space for more important parts. For example the bottom of a tailplane will rarely be viewed up-close and can be scaled down, allowing the textures of the nose to be bigger to add detail which will show in close ups. But having parts a different scale also brings trouble: seams will be harder to hide and panel line thickness will vary, which might become noticeable if you’re not careful.

In general I seem to be using these two techniques in alternating fashion! No kidding! :smiley:
Once I’ve done a proper unwrap I’ve become frustrated with the large texture sizes and poor texture resolution. So I switch back to the quick&easy method. But then I get annoyed by the many different textures I need to edit in order to make changes. Not very pleasant when having to do many different variations. I’ve used the quick&easy technique on my Mustang and now regret it as I’m planning to do many versions of it and editing the textures and materials is becoming a bit chaotic, as there are so many of them! So next model I’ll probably unwrap properly again! :smiley:

However there is no reason to stick to one technique. In fact, I seem to have found that combining both techniques works well too. One of my current models uses both mixmaps, but also is unwrapped semi-properly. This way I’ve managed to keep both texture sizes and quantities to decent levels without sacrificing quality. The best of both, so to say. But it also means the worst of both. The material setup is not suited for export, for example, and I still had to make the effort of unwrapping the model and dealing with seams.

The ideal solution? I guess that depends on your personal wishes. If I had a superfast computer that could deal with 10,000x10,000 textures easily in Photoshop, I would use Technique 2 exclusively. But since that is not the case, I’ll likely keep alternating these techniques on a per-project basis! :wink:

Well, I hope this “mini-guide” was of some use to those of you who struggle with texture mapping aircraft! Any questions, shoot! :cool:


#4

:thumbsup: Excellent tutorial! A big thanks for your efforts.


#5

Nice one mate !


#6

Great tutorial. Thanks for sharing. :thumbsup: Now tell use how you get those nice renders. :slight_smile:


#7

cool! i just downloaded a zero blueprint last week so i can model my first plane if i got a little time so this info comes very handy for me. thank you!
and ohh, those renderings are very nice! is that a me-262 on the first pic? im not that expert in planes, so i may be wrong. looks great, anyway :smiley:


#8

I was babbling about something similiar just the other day. I like to mix both techniques, but in a slightly different way. I usually start with technique #1, but end up using #2 in the end.

The first mapping channel is the gross UV. Just a regular unwrapping job like in technique #2.
Then mapping channel #2 is what I call the ‘master mask’ channel. In this channel, polys that are going to be the transition areas are given much more UV space. For a human, I would give the wrists and neck loads of space and dinkify the rest. This way it’s much easier to paint a mask or even use a procedural.
Then another mapping channel to give the hands lots of space.
Then another mapping channel to give the head lots of space.
If you bother with setting a good gross UV for channel #1, ripping those parts out for the other channels is good. Just copy the UVs over and do some scaling.
Once all the texture are playing nice with either other, bake them out to channel #1 if there is a need for it (game use or similiar).

Something like that.


#9

Very neat stuff!

I have a few questions about your Second method. You say to detach these parts. Do you mean to element or as a seperate object. I’m not clear on how all of this gets back togther and smoothing works over the reassembled object at the finish. I am trying this in GMAX and I get sort of what you are saying but It isnt working for me yet. I’m kind of old and thick headed…

Thanks,

John


#10

Thanks guys :slight_smile:
Gen-An, it’s actually a Henschel Hs P 122 (http://www.luft46.com/henschel/hsp122.html). A very obscure high altitude bomber that was never build. Possibly it was the first aircraft ever that was specifically designed to deliver precision guided weapons. However the project was ultra-secret and only very little data survived the war. So I’m afraid we might never know what “Projekt 122” really was.

Dzignguy, since in MAX you can’t use Unwrap UVW on multiple objects, it’s best to detach to elements and save yourself a lot of trouble :slight_smile:

I’ve prepared and uploaded an example of yet another aircraft model whereby I use a combination of technique 1 and 2. Below are the both mapping channels and mask, plus an animation showing how UV1 was achieved with the animation technique.


(apologies to 56K users… this is 250 kb and might take awhile to load completely)

I hope this will answer a number of questions you might have.


#11

May I add to this…

NB. For technique 2, animation is not a necessity at all. If you can’t do it (Lightwave), or you don’t like it, then simply do the following:
Detach each “flat” piece to its own object, making sure all objects have the same location and orientation in their “start position”. This is preferably (0,0,0) on both position and rotation.
Next you move and rotate all objects in place and when done you add a single UV Map modifier (in MAX) to all seperate objects. Then reset all positions and rotations to (0,0,0) again (simply select all, press F12 (MAX) and right click on all X/Y/Z positions and rotations) and attach all objects together. Weld all vertices and you’re done. Saves you the hassle of doing animations (where it’s all to easy to forget the animate button and screw up your model completely). Just make sure you detach everything in the “assembled” position, or you’ll have a hard time matching up stray parts later.


#12

Fantastic tutorial skyraider! im sure it will benefit the 3d community.

Thought Id make a small contribution for MAYA users:

For the shader, Where the Mix Map is used in MAX, Either a blend node ( with the 2 shaders, and mask ) could be used in each material slot, or if u wanted to use seperate materials for each orthagraphic projection ( top and side ) you could use a Layered texture which would require putting the mask in the first ( or second ) transparency slot, and its inverse in the other.


#13

Hi mate!!

Fantastic tutorial!!! :thumbsup:
Many thanks for the time you spent working on this and for sharing it with the rest of us.
It will be of a great help to the flight community of this forum :slight_smile:
I already visited the tutorial you have on your site, but this one is clear to follow i think.
Thanks once more!

greets


#14

Thx a lot for this tutorial Skyraider. That’s just great !
Could you please explain a little bit more what you mean by “bake” the texture for the example of the tiger stripes ?
Is this a specific tool ?


#15

Yeah you could call it that, I suppose. It’s “Render To Texture” in the Render menu. With this you can render, for example, procedural materials to a flat texture. Don’t use the auto-unwrap though. Manual is better (I think ;)).


#16

some great tips, never thought of the animation bit…going to try now…

Thanks


#17

hi i have been trying to find out why when i meshsmooth my model after UVWunwrap the seams of the texture get distorted the only way i can find to stop this is to unwrap it all seamless. or apply the mapping after the meshsmooth/collapse.

what i mean is take say a tyre and map/unwrap the tread part. then map the side wall and anwrap it. you are left with a seam were the tread texture joins as its gone through 360deg and a seam were the side wall texture meets the tread texture. then if i meshsmooth it the mapping around these seams gets distorted!!!

i was thinking of meshsmoothing and collapsing everything in my scene and then mapping it but it would make my scene very very very poly heavy. i have read tuts on cars modeling but and they all seam to use the meshsmooth at render and i was hoping to keep it like this for a few reasons.

can you shed any light on this problem.

cheers

A


#18

Basically Meshsmooth smooths the UVs as well. This is horribly annoying but it’s a fact, unfortunately. From a technical point of view it makes perfect sense, but it can be a real pain! So the only way to make it work is to texture map after Meshsmooth is applied. If you want to keep your low-poly mesh, this seriously limits your options. There are two things you can do:

  1. Use planar/cylindrical maps only and use multiple UV channels. This will make your modifier stack rather large, though (which MAX doesn’t like);
  2. Make a copy of your mesh. Collapse it and unwrap it. Copy the unwrap modifier and paste it on top of the Meshsmooth in your original. The way MAX works with vertex numbers however makes this a little bit of a risky operation. It might not always work and if you change anything in your original mesh or Meshsmooth settings it will most likely screw up big time! But it’s definitely worth a try.
    Personally I always collapse my mesh for the simple reason that I prefer adding small details afterwards. If you want to keep your scene “light”, use low-poly XRef objects and replace them with the real models at rendertime. But that’s a whole different tutorial! :wink:

#19

This article is now available as a tutorial on my website.


#20

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.