UV Mapping a High Poly World War II Willys Jeep in Modo - Part 5
In the fifth and final part of the series, we'll finish up our UVMapping. In this part we'll unwrap the wheels and pack them onto their own UV map, and go through the process of unwrapping and packing the rest of the Willys jeep.
This tutorial will teach you how to unwrap a hard surface model. For that we will use the model from my previous “Modeling a High Poly World War II Willys Jeep in Modo” tutorial. We will unwrap the Willys jeep using the default Modo tools and the ETEREA UV tools which are a great addition to the Modo toolset.
For most people unwrapping is a tedious task. When you grasp the idea and learn the tools the process will become easy and comfortable. Modo helps in making the process smooth and painless. It gives you only a few tools, but they can easily get the job done. I hope that after you complete this tutorial you’ll understand the UVing process and will feel more comfortable unwrapping.
1. Unwrapping The Wheel
The final piece we need to unwrap is the wheel. I won't be unwrapping the bolts on the rim (which I talked about in the previous part.) I will only be unwrapping one wheel. The rest will be instances of this one. If you need more variation, just use the same geometry with the same UVs, but create two different textures.
Add a UV Map called wheel just as we did before. As I said our wheel will use a separate texture.
Let's start by isolating the rim (we'll tackle the tire later.) The rim consists of three parts, below you can see some messy, default UVs. That's because I renamed the default UV Map
Let's start by unwrapping the back of the rim. So just use the Unwrap Tool for these specific polygons.
For the polygons running around the outside of the rim, you can use the UV Projection Tool with Cylindrical projection. The tool filled the entire 0-1 space, but we know the proportions of our flattened cylinder shouldn't be square. So let's apply the checker pattern to our wheel to see the distortion.
The Senecas script adds a new bitmap on the top of the shader stack. In the first part of the series, I explained that every bitmap has to be applied to a specific UV Map. If we now change checker patterns, the UV Map on the wheel it won't show up on our body UV Map.
To fix it, I applied a material to the wheel object (by pressing M) and I duplicated the checker pattern into my material. The checker pattern outside the material is applied to body and the one inside the material, to the wheel. Be sure your maps and materials are below the Base Shader in the stack.
Now you can easily see the distortion on the wheel. Be sure to relax the polygons we unwrapped in Step 5. Now let's unwrap the rest of the rim. Looking at the main shapes of the rim (not looking at those two parts in the middle), we can see a cylindrical border and round cap in the middle. Let's separate those two, by selecting the loop as shown in the image below and using the Unwrap Tool. We get a nicely unwrapped cap, but not as great UVs for the cylinder.
Double-click those polygons in UV window and hide the rest of the geometry.
Since we isolated them, we don't need to select the loops we selected earlier. So just select one loop (shown below), to cut this piece. When you run the Unwrap Tool with those edges selected, you'll get nice UVs.
Deselect the edges. Below you can see I tried relaxing this piece, but unfortunately not much changed. That's because our cylinder changes in diameter in the 3D view. It's close to a cylinder shape, but it isn't a perfect cylinder.
We can get a better unwrap by using the Senecas scripts to straighten the edges, like we've done many times before.
I also straightened the horizontal edges. The distortion this caused isn't really noticeable, so there was no reason to leave it as it was.
Now let's unhide the rest of the rim, and unwrap the two remaining pieces.
But before we do that, let's pack those shells using Pack UVs. Also Relax what needs relaxing (don't relax the parts you already modified by hand, for example if you already straightened the edges.)
Now isolate the middle parts of the rim. The Polygons I have selected here (highlighted below) won't be seen, so let's Delete those.
Start by breaking one of the parts into main shapes. Again, these consist of a cap and a cylindrical surface.
Relax the polygons running around this piece. And as you can see, we're done with one of the two.
The second part is harder to unfold, since it's beveled. It's always hard to unwrap parts like this without creating an easily visible seam. This part is small though, so it shouldn't be much of a problem. Using the Unwrap Tool, break the cap into it's own shell.
On the rest of the polygons, use the UV Projection Tool with Cylindrical as the projection type.
Now let's Relax this shell. As you can see, the result is not that bad.
Rotate this shell so it's mostly horizontal, and start straightening those edges.
Try to match the scale of the both shells. Below you can see how it should look. Looks solid.
Unhide the rest of the polygons. If any shell is way bigger than the rest. Scale it down by hand. If they are mostly the same scale, use Pack UVs to match the scale.
Now let's tackle the tire and we'll be done unwrapping. The tire is a repeating pattern. Since we created it by duplicating and bending, it is good idea to unwrap it before the bend, but we don't have this luxury right now. First of all, I won't unwrap whole tire, just one quarter. If you really need a unique texture running around the tire, you can unwrap a quarter of the tire and then move the overlapping UVs and stitch them.
The inner polygons will be unwrapped as a one whole. Why? Because that's usually where the tire's brand name goes. And it's usually not repeating, so you can't overlap the UVs.
Change your view to the one perpendicular to those polygons, and use Project from View to unwrap the polygons (you can also Relax them a bit.)
If you want to have the inner side show the same as the outer side, you can leave them overlapped. But I moved one of them up.
Hide what we already UV'd, and let's Delete three quarters of the tire. Select edges as shown in the following image. You can use the Modeling palette by pressing F2, and under the Edges tab you'll find Split. Use it to separate these polygons from the rest, then Double-click on the three quarter portion of the tire, and Delete it.
You should now have something like you see in the image below. It's not an easy shape to unwrap, so we will have many UV shells. You could also create the tire with less ribs, just to reduce the UV shell count.
Like many times before, I used Select Sharp to select all the hard edges.
If you now use the Unwrap Tool now, you'll get lots of separate shells. You can use Initial Projection, Pinning Axis and Projection Axis in the Unwrap Tool to improve your unwrap a bit. After some messing around, this is the best I could get.
Everything except the biggest shell is unwrapped as we would expect. To improve this bended shell, let's use the UV Projection Tool with Cylindrical as a projection type. Change the projection to Manual and in the side view, just move the gizmo to a place where the tire's center would be. But as you can see, my UVs are squashed.
Scale this shell horizontally, until the pattern in the 3D view looks good.
Unfortunately, we do get some stretching on the side polygons of this shell.
To fix this, select the vertices shown in the following image (be sure to select both sides.)
Scale them vertically in the UV window. The pattern in the 3D view will slowly improve. Stop when it looks good.
Now deselect the verts closest to the middle of the shell, and once again, Scale vertically in the UV window. The next loop of polygons will get more space in the UVs, improving the pattern's look.
Do the same for the remaining polygons. Below you can see what it should look after this operation. Seems OK.
Unhide the rest of the polygons, and move the banana shapes away. I won't stitch these anywhere, so unfortunately we will be stuck with all these small shapes. We can reduce some of the shell count though.
Select everything that's left in the 0-1 space. You can see that these are those small shells on the inner edge of tire.
After selected all of those polygons, run the Unwrap Tool. It will stitch the shells together, giving those planes nice UVs.
Using the Senecas script, pack those small UV islands. Also be sure to Scale them so they're rather uniform.
2. Packing The Wheel UVs
First, unhide the rest of the geometry so we're able to pack them.
Use Pack UVs to scale the shells to the same texel density (as you can see below, the difference in scale, caused the rim to blow out.) Caring for similar scale will save you the trouble of cleaning this mess.)
OK let's pack those UVs. First of all, you can now Scale all the shells up or down as needed. You want them to be as big as possible, but still be able to fit them all into the 0-1 space. Also be sure you are scaling all of them. If you don't do it, you will mess up the texel density between shells. First, put the biggest shells into the 0-1 space.
Now try to fill the empty space with the smaller ones. I packed the tire thread in the top right corner. Try to keep the shells which are connected in the 3D view, close to each other on the UV map.
I filled the rest of the space with our bananas. Be sure to leave some space between shells, and also a few pixels in between the shells and the 0-1 border.
3. Packing body UVs
Let's jump back to our body UV map. I uniquely unwrapped all of the seats earlier. The best thing to do before you unwrap, is to delete every part that will have overlapping UVs. Leave only one copy and then duplicate it after you're done with unwrapping.
Select all the meshes belonging to the Body UV map in Item mode. Now you can edit the contents of multiple mesh objects. Now use Pack UVs to average the scale of every UV shell. I always said that you should scale manually before. That's because if your shells are drastically different in scale, they could average into huge shells that overlap and create a hard to untangle mess.
Once again, start packing by placing the biggest shells first. As you can see, not all of the shells are placed in the 0-1 are big. I just put the whole chassis in there and tried to keep the shells close to each other. Again, I fill the holes with geometry that is close to those holes in the 3D view. For now I don't know if everything will fit into the 0-1 space, bit I just want to get a good UV placement without wasting space. Later I can scale everything down, and modify my layout.
Packing is almost never done in one go. But here I will do it all in one go, since it can sometimes take a really long time if you want a perfect layout.
Continue by placing the hood shells next. I put them in the corner where I know it will utilize the space as best as it can (it's almost a rectangular shape.)
To put the seat shells into the 0-1 space, I first put them in order between each other. Below you can see how I've arranged them.
I wanted to put these on the top of the 0-1 space, but as you can see, I can't fit them (most of them fit, but the rest don't.) I like to move whole selections like this. Deselect shells that match the space I have, and than move the rest of the selection around, until I find a good place for them.
After I rearranged shells a bit more, I was able to fit all the seats UVs close to each other.
The next big piece would be the frame. I don't want to pack these weird shapes though. The seams on the frame shouldn't be noticeable, so select the vertical pieces connecting the frame parts together and just move them, with Tear Off turned on.
I aligned those shells parallel to each other, and tried to keep each part's corresponding shells together.
Now let's place those shells into the 0-1 space. If you aligned them outside the 0-1 into one big rectangular shape, you can treat them as such when packing.
Here I filled in some areas with the rest of the frame geometry. I prefer to waste a bit of space and be able to have corresponding parts close to each other. The comfort while texturing is more important to me, than using 100% of the UV space.
I moved the container under the chassis into the most convenient place. Be sure it doesn't overlap, and that you leave some space around it.
Next, the front grill. I saved some space here, by placing one shell in the hole where lights are in the 3D view.
The mudguards are really badly shaped to pack them efficiently. So I tried to use the space around the floor of the chassis.
The biggest parts left to pack now are the windows. I would like to fill the space in as shown below, but unfortunately we'll need to rearrange some of our previously packed shells (happens often during packing.)
Below you can see how I rearranged the frame shells, to be able to fit in the window shells.
We've still got four shells which would really take up a lot of space, unless we break them down into easier to manage chunks.
If you can't remove the seams in your texture, you may want to try packing everything without breaking up the shapes. But I broke them up as you can see in the image below. Into long, straight pieces.
Using the Senecas scripts, I arranged the shells in a nice manner.
Now I can use the space inside the window shell and around it.
Below you can see that the lower parts of the window were placed inside the main body shell. This still makes sense, because in the 3D view, they are placed close to the back of the hood. So they shouldn't get lost in those UVs.
We are left with a few details to pack. First, the handles. I've got two handle types, a bent one and a straight one. Pack them close together into some free space.
Now find some space for the the dials. Actually these are one of these parts you may want to scale up. They will have a larger texel density, which means they will use more pixels than any other surface, but you may want to have a bit more detail on those. I didn't scale them up, but don't be afraid to do that on more important parts.
Finally pack the pedals, the gear shift stick and the reflector.
The steering wheel shells, I placed inside the chassis shell and tried to give them a bit more breathing room. Be sure long parts are aligned horizontally/vertically and not rotated slightly.
Below you can see my final UV layout. It could be better. It can always be better. I left some space around the dials. Incase I ever want to scale them up, and there's room if my texture starts bleeding from one shell to another. I can then move them and give some more space around them.
Below you can see the UV layout with Overlapping turned on. You can turn it through the Senecas palette or through the options in the top left corner of the UV window. As you can see, every red piece is one that will share texture with the other instances. Of course I duplicated geometry. If you still haven't done that, you won't have those red shells.
We reached the end. You have now fully unwrapped the Willys jeep. You can now texture it by using two texture sheets. I hope you learned something from this tutorial :).
Thank you for reading this tutorial. If you have any questions, please leave a comment or write me an email.