(focus on Game Models for Serious Sam)
By Max Glick
This tutorial explains two methods for the UV mapping of an object in Lightwave3D 7.0b. This tutorial should be compatible with all 6.X+ versions of Lightwave3D.
Lightwave offers a number of ways to generate UV maps, but often the computer-generated maps are difficult to interpret and paint on. As a result, this tutorial is intended to show you two processes for making more controlled UV maps. The concepts provided here are a combination of my personal experience and practices I've learned from others, in particular from Aristo Menis's tutorial "Nothing Compares 2 UV" from the site www.menithings.com and the CroTeams's tutorial on UV mapping in the Serious Sam SDK.
The goal of this tutorial is to demonstrate the creation of a UV Texture map for a character model for the Serious Sam engine by CroTeam, but the ideas provided can easily be adapted for any UV mapping project. Remember, this is an approach I use, but it is not the only way to do it. Experiment and find what works best for you.
1. Load your object into Modeler. The first step is to create a surface for each plane (X,Y,Z) and area of the object. This is part of the process described in the texturing section of the Serious SDK. In this image, you can see I have colored each surface differently so they are easy to distinguish when the placement map is exported for the "Serious Modeler".
2. As you can see, the sides of the legs are on one surface, the front another, the inside leg another, and the leg-back surface is unseen. You could also use one surface and later use "cylindrical type" when creating the UV texture, but that's not what we're going to do here. So these 3 surfaces define the 4 basic planes of the legs. Above the legs are 2 surfaces, torso front and torso back, and the feet are made up of 2 planes: inside and outside. These last 2 areas only have 2 planes since they are flatter then the legs, and do not need the extra planes to flatten the areas for the UV texture.
| How To: |
Switch to Polygon mode by clicking "polygon" in the bottom left or pressing "space" until it is highlighted. Left Click to select the polygons. Adjust using SHIFT/CTRL if needed. Press "q" to open the new surface panel. Enter a name for the surface and choose a default color. Repeat this until all polygons have been assigned a surface. |
3. Lightwave dynamically updates UV data as mesh data is updated. This is a great feature in Lightwave. What this allows us to do is UV map half the object and then mirror it later. While this is great for low-resolution characters, I do not usually use this with high-resolution characters since it makes things overly symmetrical.
Select the identical parts from half the object and delete them, thus leaving you half the object. In this object, we have 2 polygons that crossover both halves of the model. These will be deselected so they will not be deleted. Later, when we mirror the object, we will select all polygons but these when we duplicate the existing half to make the object whole again.
| How To: |
Hold down the right mouse button and use the lasso to select half the object. If you select any extra polygons on the other side, simply Left Click on the unintentionally selected polygons to deselect them. In the "top" or "bottom" view, you will see the two polygons that crossover both halves of the model. Left Click to deselect these 2 polygons. Press the "Cut" button "x" at the bottom of the screen to delete the polygons. |
4. Save this object as "player1.lwo" and "player2.lwo".
| How To: |
Choose "File>Save As" from the left menu. |
Now we deviate with 2 possible directions. One is making a new image map, the other is to use an existing image. If you are making a new image map, your best approach is to use a positioning image to make sure your map will wrap smoothly around your model. CroTeam has recommended using a checkerboard image to accomplish this. In your favorite image editor, create a new image 1024x1024 and draw a 2-color checkerboard of 16-pixel squares or download the one here. The checkerboard image is used as a temporary image for setting up the UV map, and is then replaced with the final image.
The first approach is a quick version using Lightwave's mapping tools to generate our map, then the checkerboard image will be used to cleanup the UV placement. The second approach will focus on more extensive control over UV placement and allow for fine detail manipulation. For this approach, we will use an existing image map (from CroTeam's game Serious Sam) and we will mold our UV map to work with this image map.
1. We will now create a new UV map for our object, then use Lightwave's UV Map tools to create the UV data for the map. This method will allow for the quick generation of UV data that we will then adjust once the map is generated.
2. Load the "player1.lwo" object. Now with all the symmetrical polygons deleted, select all points and "unweld" them.
| How To: |
Use the Lasso tool again by holding the right mouse button and drag the lasso around the entire object. Now select the "Detail" tab in the top bar and press "unweld" located in the "points" subsection of the left bar. |
3. Now is a good time to do a "save as" to back up your work so far.
4. Select the surfaces for the front, outside and back of the leg. We are not going to include the inside leg surface because this will cause problems for the model in the Serious Sam engine, which will not accept a single point having 2 UV coordinates. Select the 3 surfaces that make up the outside area of the leg using the select by surface tool in the statistics panel.
| How To: |
Press "w" or select statistics from the left main menu: Modeler>Windows>Statistics. Switch to Polygon mode by clicking "polygon" in the bottom left or pressing "space" until it is highlighted. In the "surf" line, press the down arrow and choose the surface you wish to select. Now press the "+" button to the left of the "surf" line. The "-" button will deselect all polygons that have the selected surface. After the first surface is selected, select the next surface in the list for the leg and press the "+" button. Do this once more for the third leg surface we are selecting. |
5. Now create a "Cylindrical" UV map for the main part of the leg. We will use this same map for all our UV data, so only one image will be used to map the entire lower body.
| How To: |
At the bottom right of the screen you will see the map controls: W T M (none). Press the "T" button and from the pop-up menu select "new". In the "Create UV Texture Map" dialog box, name the new map "player". Set the Map Type to "cylindrical", the Axis to "Y" and Settings to "Automatic". Press "ok". |
6. Now we have our first UV data for our UV map. To see the UV data, switch the bottom right view to "UV Texture" mode. Move this data out of the UV coordinate area so the next part we generate does not overlap the data we just created.
| How To: |
In the top left of the bottom view, use the pop-up menu to switch from the current view to "UV Texture". To move the UV coordinates, press "t" or in the top menu select "Modify" then "Move" in the left menu. Now drag the polygons out of the UV Texture grid in the UV Texture view. Holding the CTRL key will restrict movement to one axis. |
7. Now we are going to add the UV coordinates for the polygons that make up the inside of the leg to the "player" UV map. Deselect any currently selected polygons and select the surface for the inside of the leg in the statistics panel. Choose "create new UV texture map", then select the existing "player" UV map and create a "planar" type map on the X-axis for the selected surface. Last, move the UV-coordinates out of the active UV area.
| How To: |
To deselect any existing polygons, Left Click in any empty space in the left menu. Now select the polygons that make up the inside leg surface in the "statistics" panel as we did before. At the bottom right of the screen you will see the map controls: W T M (none). Press the "T" button and from the pop-up menu select "new". In the "Create UV Texture Map" dialog, use the drop-down arrow by name to choose the existing map "player". Set the Map Type to "planar", the Axis to "X" and Settings to "Automatic". Press "ok". To move the UV coordinates press "t" or in the top menu select "Modify" then "Move" in the left menu. Now drag the polygons right in the UV Texture view. |

8. Now we are going to add the UV coordinates for the polygons that make up the back of the torso to the "player" UV map. Deselect any currently selected polygons and select the surface for the back of the torso in the "statistics" panel. Choose "create new UV texture map", then select the existing "player" UV map and create a "planar" type map on the Z-axis for the selected surface. Last, move the UV-coordinates out of the active UV area.
| How To: |
To deselect any existing polygons, left click in any empty space in the left menu. Now select the polygons that make up the TorsoBack surface in the "statistics" panel as we did before. At the bottom right of the screen, you will see the map controls: W T M (none). Press the "T" button and from the pop-up menu, then select "new". In the "Create UV Texture Map" dialog box, use the drop-down arrow by name to choose the existing map "player". Set the Map Type to "planar", the Axis to "Z" and Settings to "Automatic". Press "ok". To move the UV coordinates press "t" or in the top menu select "Modify" then "Move" in the left menu. Now drag the polygons out of the UV Texture grid, in the UV Texture view. |
9. Now we are going to add the UV coordinates for the polygons that make up the front of the torso to the "player" UV map. Deselect any currently selected polygons and select the surface for the front of the torso in the "statistics" panel. Choose create "new UV texture map", then select the existing "player" UV map and create a "planar" type map on the Z-axis for the selected surface. Last move the UV-coordinates out of the active UV area.
 |
 |
| How To: |
To deselect any existing polygons, left click in any empty space in the left menu. Now select the polygons that make up the "TorsoFront" surface in the "statistics" panel as we did before. At the bottom right of the screen, you will see the map controls: W T M (none). Press the "T" button and from the pop-up menu select "new". In the "Create UV Texture Map" dialog box use the dropdown arrow by name to choose the existing map "player". Set the Map Type to "planar", the Axis to "Z" and Settings to "Automatic". Press "ok". To move the UV coordinates press "t" or in the top menu select "Modify" then "Move" in the left menu. Now drag the polygons out of the UV Texture grid, in the UV Texture view. |
The process we used for the leg and torso surfaces will now be repeated for the rest of the remaining surfaces. For all the remaining surfaces, we will use planar maps but you could mix any map types that best suits your model in this process.
10. Create the UV coordinates for the "bodyTop" surface. This surface is not very important since the torso will almost always obscure it; it just needs to blend in with the torso texture. Create a planar map on the Y-axis as you did with the previous surfaces and add it to the "player" UV Texture. Then move the coordinates out of the UV grid.
| How To: |
Follow the methods explained in making the torso texture. For this step, the planar map will be on the Y-axis. |
11. Create the UV coordinates for the "LegCuff" surface. This surface is not very important since it will be raised up under the pant leg; it just needs to blend in with the leg texture. Create a planar map on the Y-axis as you did with the previous surfaces and add it to the "player" UV Texture. Then move the coordinates out of the UV grid.
| How To: |
Follow the methods explained in making the torso texture. For this step, the planar map will be on the Y-axis |
12. Create the UV coordinates for the "shoeInside" surface. This surface is the inside of the shoe. Create a planar map on the X-axis as you did with the previous surfaces, and add it to the "player" UV Texture. Then move the coordinates out of the UV grid.
| How To: |
Follow the methods explained in making the torso texture. For this step, the planar map will be on the X-axis |
13. Create the UV coordinates for the "shoeSides" surface. This surface is the outside of the shoe and the outside of the sole around the inside and outside. Create a planar map on the X-axis as you did with the previous surfaces and add it to the "player" UV Texture. Then move the coordinates out of the UV grid.
| How To: |
Follow the methods explained in making the torso texture. For this instance, the planar map will be on the X-axis. |
14. Create the UV coordinates for the "Sole" surface. This surface is the sole of the shoe. Create a planar map on the Y-axis as you did with the previous surfaces and add it to the "player" UV Texture. Then move the coordinates out of the UV grid.
| How To: |
Follow the methods explained in making the torso texture. For this instance, the planar map will be on the Y-axis. |
15. Now arrange your UV coordinate pieces to cover a roughly square area and then size them all down together to fit in the UV Grid.
| How To: |
Switch to Polygon mode by clicking "polygon" in the bottom left or pressing "space" until it is highlighted. In the "surf" line, press the down arrow and choose the surface you wish to select. Use either the "Lasso" (right mouse button) or select by surface in the "statistics" panel. Use the "move" tool "t" to arrange the surface groups. Once they are arranged, use the "size" tool "H" found in the "stretch" section of the "Modify" tab. Hold the "CTRL" key to uniformly size the UV coordinates down to fit the UV Grid. |
16. Now is a good time to save your work.
17. Open the "Surface Editor" and select all the surfaces. Add a texture to the "color" channel. Load the grid image for the "player" UV Texture. You can now see the red grid texture wrapped on to your model. Some parts are a little stretched so we will load the image into the "UV Texture" view and adjust the positioning of some of the coordinates.
| How To: |
Open the "Surface Editor" panel "CTRL+F3" found at the top left of the menu. Left click on the first surface in the list, hold the shift key and the left click on the last surface in the list. Now click the [T] button to the right of the "color" channel. In the Texture dialog, set the "projection" type to "UV", select the "player" map for the "UVMap" option and for the image use the dropdown box to select "new" and load the Red Grid image. Finish by pressing the "Use Texture" button. |
18. Now load the Red Grid as the background for the "UV Texture" view. The image is a little bright so lower the brightness and contrast in order to see the UV data a little more clearly.
| How To: |
Press "d" to open the display options dialog and press the "Background" tab. Now choose to modify the bottom right view by pressing the [BR] button. In the image drop-down list, choose the red grid image and then lower the brightness and contrast by dragging their respective sliders to the right. |
19. Notice how the image map is getting stretched and pinched in some areas. The checkerboard pattern helps us to easily identify these areas and clean up the UV coordinates so our final image map will wrap smoothly over our object. Since I know that the torso and shoe sections of the final map will be separate from the legs, I'm not going to focus on getting the grid to be consistent in size and edge connection across the entire object, but I will make sure for the 3 basic areas that the map lines up well and displays with a consistent size.
20. The inside of the leg looks very different from the outside. The grid pattern is much smaller for the inside. Since the inside of the leg is not going to be all that visible in the game engine, it's not overly important. Select all the polygons that make up the inside leg, and then using the size tool and move tool adjust the UV coordinates to better match the outside leg.
| How To: |
Use the "statistics" panel to select the "legInside" surface or use the "Lasso" tool, (right mouse button), and then size the polygons down using the "size" tool "H", in the "modify" tab. Once the size of the grid matches the outside leg, use the "Move" tool "t", found in the "Modify" tab, to adjust the inside leg's grid to align better with the outside leg. |
21. The outside leg has some stretching and pinching in some areas, so using the move tool adjust the UV coordinate points to smooth out the texture.
| How To: |
Switch to point mode by clicking "points" in the bottom left or pressing "space" until it is highlighted. Click on the point in the "UV Texture" view you want to modify, and choose the "Move" tool "t" under the "Modify" tab. Drag the point, using the perspective view to judge the effects on the image map to find the proper position. Press "space" to drop the move tool, then Left Click on the select point again to deselect it. Select the next point you wish to modify and repeat the process. |
22. Since the torso is a separate section as mentioned above, we will focus on smoothing the UV coordinates for just the front and back of the torso and not make a consistent connection with the grid of the leg section. The front torso only needs a little change to the bottom right point. The back needs a little more work to straighten out its lines, then move all the points to better line up with the front torso.
| How To: |
Follow the same guidelines as you did in step 20, "inside leg", for point adjustments to fix the torso. |
23. The shoe needs a little more work then other areas. We have broken the shoe into 2 parts. The main part is the outside area, the section containing the laces and the entire area that connects the shoe to the sole. The other part of the foot is only the inside ankle. In some cases, it may be easier or more desirable to separate these parts further, especially the top of the shoe where the laces are, but for this instance we will be served fine with this simple distribution of UV coordinates.
Adjust the points to smooth the grid around the outside shoe surface. Pay special attention to getting a good transition on the top laces area. Now adjust the inside shoe surface to match the relative grid size of the outside shoe. Once the grid wraps consistently around both parts, make any final tweaks to the coordinates. As with the inside leg, the inside shoe surface is not going to be a prominent visible area of the character so perfection is not necessary.
| How To: |
Follow the same guidelines as you did in step 20, "inside leg", for point adjustments to fix the shoe. |
24. Select all polygons using the "Lasso" tool. As when we deleted half this model before, deselect the 2 polygons that stretch across both halves of the model so they will not be mirrored. Now "mirror" the object. Now you have your whole object and the entire thing is image-mapped. Save this object.
| How To: |
Switch to Polygon mode by clicking "polygons" in the bottom left or pressing "space" until it is highlighted. Use the right mouse button to "Lasso" select all the polygons in the object. In the "top" or "bottom" view, you will see the two polygons that crossover both halves of the model. Left Click to deselect these 2 polygons. To mirror the selected polygons, activate the "Mirror" tool "V" under the "Multiply" tab. Move the mouse to the "0,0" point in the "Front" or "Back" view, then press the left mouse button and drag down. You will see the object mirrored in the view port. Release the mouse button to finish. |
25. Finally Merge points "m", found in the Reduce section of the left menu under the "Construct" tab. You now have a UV mapped object ready to use.
| How To: |
Press "m", then press "OK" in the "Merge Points" dialog box. |
1. This approach will focus on more extensive control over UV placement and allow for fine detail manipulation. For this path, we will use an existing image map (from CroTeam's game Serious Sam) and we will mold our UV map to work with this image map.
1. Load the "player2.lwo" object. Now with all the symmetrical polygons deleted, select all points and "unweld" them.
| How To: |
Use the Lasso tool again by holding the right mouse button and drag the lasso around the entire object. Now select the "Detail" tab in the top bar and press "unweld" located in the "points" subsection of the left bar. |
2. Now is a good time to do a "save as" to back up your work so far.
3. We are now going to create a morph map so we can use "EndoMorph's" to morph between the current version and the flat version of the object we are about to make. Once we have a flat version of the object, we will UV map, then morph the object back to its original 3 dimensional form. Create a new "Morph Map" and name it "Flat". Aristo Menis' tutorial first introduced me to the idea of using morph maps to do this and he deserves the credit for it. If it weren't for Menis, I'd still be doing this the old "Saturn's Ring Morph" way, a more time consuming process of morphing separate objects in layout.
| How To: |
At the bottom right of the screen you will see the map controls: W T M (none). Press the "M" button and from the pop-up menu select "new". In the "EndoMorph" dialog box name the new map "Flat" and set the type as "Relative". This tutorial will not work unless the type is "Relative". |
4. We are now going to position the points for this morph. Since all the points are unwelded we will select polygon groups by surface and position them on the Z-axis so we can create a planar UV map on the Z-axis. To select surfaces by name, use the statistics panel. Do not directly select individual points or polygons. Since the object is unwelded, it is very easy to mess up the object and have to revert back to the saved version. Select the front surface for the leg and move it to the right of the model.

| How To: |
Press "w" or select statistics from the left main menu: Modeler>Windows>Statistics. Switch to Polygon mode by clicking "polygon" in the bottom left or pressing "space" until it is highlighted. In the "surf" line, press the down arrow and choose the surface you wish to select. Now press the "+" button to the left of the "surf" line. The "-" button will deselect all polygons that have the selected surface.
To move the object, press "t" or in the top menu select "Modify" then "Move" in the left menu. Now drag the polygons to the side in the front view. Holding the CTRL key will restrict movement to one access. |
5. Repeat step 4 for the torso front surface and any other front facing surfaces.
6. For the side and back facing surfaces, we will rotate then so they face forward, then move them into position alongside the front surfaces.

| How To: |
Deselect any currently selected surface by clicking in a blank area in the left menu or pressing the "-" button in the statistics panel. Choose the side or back surface you want to work on next and select it in the statistics panel as you did before. Now position the mouse in the top view and press "r" to rotate the surfaces polygons 45 degrees on the Y axis. Depending on your center of rotation, the polygons might move out of your view. If this happens, just zoom out using the "magnify" tool located at the top right of your view window. Depending on which surface you chose, you might need to press the "r" button 2 or 3 times to get the polygons facing the desired direction. If you go too far, just keep pressing "r" and you'll get back to where you started. Once orientated correctly, use the move tool as before to position the surface's polygons with the other surfaces you've organized. |
7. Repeat step 6 for the remaining surfaces.
8. Now load your image into the background of the bottom right view, or your preferred quadrant. Set the image resolution to 1024 so you can see the details more clearly. I sized mine up to 2 feet so it was little closer in scale with my current layout of pieces.
| How To: |
Press "d" to open the "Display Options" panel. Select "BackDrop" and press the "BR" button. |
9. You should now have your surfaces flattened out in the front view. Now switch back to the base Morph map.
Here is your object whole. If you switch back to the "flat" morph map, you will see that Modeler has retained all the changes we have made.
| How To: |
At the bottom right of the screen, you will see the map controls: W T M (none). Press the "M" button and from the pop-up menu select "Base". To change back to the flattened version, go back to the same pop-up menu and choose "Flat". |
10. Now is a good time to save your work.
11. Now size down the polygons in the bottom right view to fit over the image map. Once the basic size is more relational, move the parts over the area of the map that will be mapped onto them. This does not need to be perfect, as detail adjustments will be made directly to the UV Map.
| How To: |
Use the "Size" function "H" under the "Modify" tab to size the polygons down. Then using the select by surface method we used earlier, using the surface list in the statistics panel, use the "Move" function "t" under the "Modify panel" to move the polygons into position |
12. Create a new UV Texture map of the type "Planar" on the "Z" axis. Name this image map "player"
| How To: |
At the bottom right of the screen, you will see the map controls: W T M (none). Press the "T" button and from the pop-up menu select "new". In the "Create UV Texture Map" dialog box, name the new map "player". Set the Map Type to "planar", the Axis to "Z" and Settings to "Automatic". Press "ok". |
13. In the view control for the bottom right view, switch to "UV Texture". Now you can see the UV Map.

Switch to point selection mode and use the move tool to better position the UV coordinates over your image map. Do not manipulate individual polygons in this step, if you do need to make edits, select the entire surface. Generally it is best to only manipulate points at this phase.
| How To: |
In the Top left of the bottom view, use the pop-up menu to switch from the current view to "UV Texture" The image map should still be in the background from before, if not, repeat step 8. Switch to point mode by clicking "points" in the bottom left or pressing "space" until it is highlighted. Select points using the Left Mouse button with Shift or CTRL keys or use the "Lasso" by holding down the right mouse button. Now use the "move" tool "t" under the "Modify" tab. Deselect points by Left Clicking on them or deselect all by Left Clicking in an empty area of the left menu. |
14. In the Surface Panel, select all the surfaces and add the image map to the color channel of the surfaces.
| How To: |
Open the Surface panel "CTRL F3" in the left menu. Select all the surfaces for your object using the Left mouse button and CTRL or shift keys. Press the [T] button to the right of the color channel. In the texture menu set the type to "Images Map". Then set the Projection to "UV", the UVMap to "player" and the Image to the image map you are using. Press "Use Texture" |
15. Switch back to the "base" morph map and see your progress. If any part of the image mapping of the "base" version looks stretched or mis-aligned, go back to step 13 and continue tweaking the UV Map.
| How To: |
At the bottom right of the screen, you will see the map controls: W T M (none). Press the "M" button and from the pop-up menu select "Base". To change back to the flattened version, go back to the same pop-up menu and choose "Flat". |
16. Change to the "base" morph map if you had changed back to "Flat", then select all polygons using the "Lasso" tool. As when we deleted half this model before, deselect the 2 polygons that stretch across both halves of the model so they will not be mirrored. Now "Mirror" the object. Now you have your whole object and the entire thing is image-mapped. Save this object.
| How To: |
Switch to Polygon mode by clicking "polygons" in the bottom left or pressing "space" until it is highlighted. Use the right mouse button to "Lasso" select all the polygons in the object. In the "top" or "bottom" view, you will see the two polygons that crossover both halves of the model. Left Click to deselect these 2 polygons. To mirror the selected polygons, activate the "Mirror" tool "V" under the "Multiply" tab. Move the mouse to the "0,0" point in the "Front" or "Back" view, then press the left mouse button and drag down. You will see the object mirrored in the view port. Release the mouse button to finish. |
17. Start layout and load the object you just saved. Now use "Save Transformed Object". Save this under a different name and close Layout.
| How To: |
Load the object by selecting "Add>Object>Load Object" from the left menu. Then select "Save Transformed Object" from the "File>Save>Save Transformed Object" in the left menu. |
18. Load the new object into Modeler and Merge Points "m", in the Reduce section of the left menu under the "Construct" tab. You now have a UV mapped object ready to use.
| How To: |
Press "m", then press "OK" in the merge points dialog box. |
|