1 Tutorials LightWave 3D UV Texturing with a Focus on Game Models for Serious Sam Qua Jan 26, 2011 4:16 am
Admin
Admin
by Max
Glick
This tutorial explains two methods
for the UV mapping of an object in LightWave 3D®
7.x. This tutorial should be compatible with all
6.x+ versions of LightWave 3D®.
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 [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
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.
Preparing
the model
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.
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.
4. Save this object as "player1.lwo" and
"player2.lwo".
Two
Approaches to UV
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.
Approach
1: Getting Started
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.
3. Now is a good time to do a "save
as" to back up your work so far.
Approach
1: Generating the UV Map
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.
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.
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.
Approach
1: Adding the Inside Leg polygons
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.
Approach
1: Adding the Torso Data
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.
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.
Approach
1: Adding the rest of the UV Data
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.
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.
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.
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.
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.
Approach 1: Adjusting the
UV data for the UV Grid.
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.
16. Now is a good time to save your work.
Approach
1: Adding the Grid image.
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.
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.
Approach
1: Adjusting the UV coordinate positions
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.
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.
]
Glick
This tutorial explains two methods
for the UV mapping of an object in LightWave 3D®
7.x. This tutorial should be compatible with all
6.x+ versions of LightWave 3D®.
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 [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
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.
Preparing
the model
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. |
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. |
"player2.lwo".
How To: |
Choose "File>Save As" from the left menu. |
Two
Approaches to UV
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.
Approach
1: Getting Started
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.
Approach
1: Generating the UV Map
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. |
Approach
1: Adding the Inside Leg polygons
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. |
Approach
1: Adding the Torso Data
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. |
Approach
1: Adding the rest of the UV Data
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. |
"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 |
"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 |
"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. |
"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. |
UV data for the UV Grid.
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. |
Approach
1: Adding the Grid image.
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. |
Approach
1: Adjusting the UV coordinate positions
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. |
and pinching in some areas, so using the move
tool adjust the UV coordinate points to smooth
out the texture.
]