Understanding UV Mapping
Transcription
Understanding UV Mapping
Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Understanding UV Mapping: The Basics Introduction This is a beginner tutorial that will explain you what is UV map and how to choose the best mapping for your 3D mesh. It is thought for object creation, but the same hints and considerations can be applied to clothes too. I will focus on “why” you have to do something, instead of “do this to achieve this”, since in this subject is extremely important to understand what you are doing, so that you will be able to apply the basic techniques to every mesh that you create, no matter how complex it is. The tutorial doesn’t cover cloning an item in Simpe, creating the 3D mesh or making the texture with a graphic program. We will only focus on mapping. Disclaimer: English is not my mother tongue, so please be patient with me ☺. Credits: A great thanks goes to Delphi, Numenor and all the guys of Mod The Sims 2 for the information and support given to everyone who begins creating custom content for The Sims 2. Index What you will need .....................................................................2 Getting ready..............................................................................2 What is UV Mapping? ................................................................2 First step ....................................................................................3 Box mapping ..............................................................................4 Planar mapping ..........................................................................8 Cylindrical mapping ....................................................................9 Spherical mapping ...................................................................11 Ready for the Classic version...................................................12 Mapping a (little) more complex object.....................................16 Conclusions..............................................................................22 Page - 1 - Understanding UV Mapping: The Basics By Spaik, 1 February 2006 What you will need: Any program for UV mapping would be good, but for explanation purposes I will use UVMapper Classic and the demo version of UVMapper Professional (since they are free and everyone can get them); you can download both versions at http://www.uvmapper.com/ A program for 3D objects creation (if you’ve arrived here, I guess you already have it and are able to use it). I will use Wings 3D, which is free and you can get it at http://www.wings3d.com, but any other 3D program will do. Getting ready Have you got the programs needed? All right, we shall begin. First of all double click on UVMapper Pro and follow the installation procedure. This is a full copy of the program, but with the saving features disabled: we will use it to understand what we are doing and then we will make the real mapping in UVMapper Classic. If you find it useful, you can register and use the full version. UVMapper Classic is a simple executable, it doesn’t need installation; so put the file where it’s easy to find for you, maybe the desktop. Remember that there’s only a simple undo function in the Classic version, so you will have to be careful when mapping your meshes, or you’ll have to start the mapping again, if you mess up something. What is UV Mapping “UV mapping is a process of making a 2D map representing a 3D model. This map is associated with an image known as a texture. In contrast to "X", "Y" and "Z", which are the coordinates for the original 3D object in the modelling space, "U" and "V" are the coordinates of this transformed map of the surface. Then the image is back-transformed ("wrapped") onto the surface of the 3D object.” (From Wikipedia, the free encyclopedia) In poor words, imagine that your 3D mesh is a colourless present for a friend and the texture is the colourful wrapping paper. The UV mapping is the process of wrapping the paper around the present. The UV coordinates hold the information on how to wrap the texture around the mesh, that is which part of the texture goes on every part of the 3D object. An important thing to keep in mind is that the texture image is the main thing that makes a big package in The Sims 2, thus using (and often wasting) a lot of resources. For example, a PNG image that is of 512x512 size is about 280 KB, while the same image of 256x256 size is only 90 KB. Page - 2 - Understanding UV Mapping: The Basics By Spaik, 1 February 2006 What is UV Mapping Cont. So when you map your object you need to keep in mind that the map has to make the best usage of the space; here are some hints: 1. leave the least possible unused space in the texture image; 2. enlarge the parts of the image that need more details and lessen the others; 3. if your object has hidden faces, don’t waste space in the texture for those: you can either make them very little or make them overlap some other parts of the object; 4. if a 256x256 image gives enough details to your object, don’t use a 512x512 one. We will see later on how to make this in practical examples. Step 1. Before starting the practical part, you should make in your preferred 3D program four simple shapes: a cube, a cylinder, a sphere and a parallelepiped resembling the ones in Figure 01 below. The size and proportions don’t matter. Save every shape in a different file, in “.obj” format, so that you can try yourself the different mapping options. Page - 3 - Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Step 1. Cont. I will also use the two patterned textures in Figure 02, created to highlight how the texture is wrapped around the 3D object. If you don’t want to make your own, you can use a ready one included in UVMapper Pro (I’ll tell you later how to do it). Page - 4 - Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Box Mapping Let’s go! Open UVMapper Pro, and take a moment to pass with the mouse on the toolbar and to read the labels of the various tools, so that you will know what they are when you’ll need them. Click on File Open Model… and in the window that pops up, browse for the obj file where you saved the cube, select it and click on Open. Now your window should be divided in two parts: the Texture panel, on the left, has a square blank sheet, while the Perspective panel, on the right, shows the 3D object. If the object is too big, scroll back a little or use the Zoom Tool: click on the Zoom Tool in the toolbar or hit “z” on the keyboard to select it and then drag with the mouse to and fro. Select the Rotate Tool (you can also hit “r” on the keyboard) and fiddle a little with the mouse to get a better view of the cube. Now your window should look like the one in Figure 03 (apart from the background colour). HINT: If you want your cube to have a better look (with sharp edges looking sharp), click on Tools Normals Smooth, leave everything as is and click OK. Since we can’t save, we aren’t wasting time on fine-tuning this, but remember that every 3D program has smoothing functions to give sharp and rounded edges the proper look. Now click on Map menu and select Box (or click on the Box Mapping tool) and in the pop up window select only the Split front-back option. When you click OK, UVMapper creates the projection of the cube in the texture on the right panel (see Figure 04). Page - 5 - Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Box Mapping Cont. I highlighted in figure 04 the parts of the texture that aren’t used in this mapping; we’ll take care of that later on. Now let’s put some colours on our cube, to see how it looks. If you have your own texture that you want to use, click on Texture Load and in the window that opens, select your image file: supported formats include JPG, BMP and PNG, so you shouldn’t have problems in finding a suitable one. If you don’t have a suitable image, click on Texture use the built-in color texture map. Checker Color; this way you will In Figure 05, you can see how the texture is wrapped around the cube. If you rotate your cube, you’ll see that facet number 6 is opposite to number 5, facet number 3 is opposite to number 1 and facet number 4 is opposite to number 2. In this picture you can also notice that the texture appears stretched on the cube; this happens because the facets of the cube are rectangles in the map, instead of squares. We’ll need to adjust them manually (and we’ll do that once in UVMapper Classic). HINT: If you select the Gaps in Map option, which is present in all types of mapping, UVMapper will insert a blank border between the various sections of the map. This is really useful for two reasons: Page - 6 - Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Box Mapping Cont. 1. Since different 3D programs handle UV coordinates slightly differently, you can fill up with your texture a few pixels outside the edges; in this way you’ll be sure that there won’t be any unpleasant white line across your object. 2. When you have to drag or resize some parts of your map in UVMapper Classic, it will be easier to select them, without touching the unwanted sections. Let’s make a different mapping of the cube, using this option. Click on Map menu and select Box; in the pop up window select only the Gaps in Map option (the window should look like that in Figure 06). If you don’t tick Split front/back, opposite facets of the 3D model are mapped in the same section of the texture. In this case the facets look squared in the texture and so the textures doesn’t get stretched on the cube. As you can see, when you select a new type of mapping, the old one is discarded; in a more complex model, if you select a part of it (that might be a different group or a different material), the new mapping will be applied only to that part, thus allowing you to choose the most suitable mapping for every part of your object. Page - 7 - Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Box Mapping Cont. Now that we got the basics, we shall move a little quicker through the other types of mapping. I strongly encourage you to fiddle a bit with the various options, so that you can get in touch with them. Planar mapping Click on Map menu and select Planar; in the pop up window select Don’t split, leave the rest as is and click OK. As you can see in Figure 07, this is NOT the right mapping type for a cube (unless you can think of some creative use for it). The planar mapping maps correctly the facets facing the direction set in Alignment box (in our case the Z-axis), but it uses the upper edge of the texture to map the entire upper facet, the left edge of the texture for the left facet, and so on. We should try this on a different model. So click on File Open model… select the parallelepiped you previously made and click Open. Adjust the view of the 3D model as explained before. Page - 8 - Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Planar mapping Cont. The texture keeps showing, but it doesn’t appear yet on the model because we haven’t mapped it yet. If you want to clear the background texture, or load a different image, use the commands in the Texture menu. Now click on Map menu and select Planar; in the Split box of the window that opens, select By Orientation and leave everything else as is. It seems that Planar mapping works best on models that have two predominant dimensions, while the third one is almost inexistent: the best example I can think of are glasses, or maybe some modern slim table-tops and similar surfaces. As we have seen before, splitting the mapping lets you paint in different colours the two sides of the object, while choosing the Don’t Split option makes both surfaces look the same. Page - 9 - Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Cylindrical mapping To try this one, you need a suitable model. So open the cylinder that you have made in your 3D program. As usual, click on Map menu and select Cylindrical; in the pop-up window deselect everything, as showed in Figure 09, and click OK. Since the caps of the cylinder are mapped along the Y axis and thus consist of a single line, this mapping is perfect if you don’t need to paint the caps (for example because they are hidden or submerged in another part of your object); it might be suitable also if you’re planning to paint the caps in a solid colour. Let’s try different mapping options for the cylinder: in the Cylindrical Mapping Window, select Separate caps and Don’t include gaps in map. Page - 10 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Cylindrical mapping Cont. With these options, the mapping looks better and you can easily paint every part of the texture; the only thing that you need to adjust, if your texture doesn’t tile seamlessly on the model, is the point where the seam will be. Reopen the mapping window and in the Seam Rotation box put “90” or “180”, while leaving all the other options unchanged. Click OK. You will notice that the texture looks exactly the same (remember this when we’ll go to UVMapper Classic), while the 3D model changes aspect, as if it was rotated; and indeed it happened something similar, since we wrapped the texture around it starting from a different point. Whenever you’ll need to use a texture that it’s not seamless, remember to adjust that number to put the seam in the most hidden point of the cylinder. Page - 11 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Spherical mapping This is the last type of UV mapping we consider, since the Polar Mapping function isn’t available in UVMapper Classic. Click on File click on Map Open Model…, select the file where you saved your sphere and click OK. Then Spherical and in the mapping window select only the option Gaps in map. Page - 12 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Spherical mapping Cont. As you can see in Figure 11, the result is poor, because there is a strange vortex effect at the poles. To avoid this you’ll need to select Spread facets at poles: with this option ticked (which is the best in most cases) the sphere is correctly mapped. The rotation box can be used, as in the cylinder, to put the seam in a different point of the sphere. Now that we’re familiar with the various mapping possibilities, we’re ready to make our first mapping with UVMapper Classic. Close UVMapper Professional and go on. Page - 13 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Ready for the Classic version Double click on UVMapper Classic. You’ll see a small window like Figure 13. In this version you cannot see the 3D model, so you’ll have to use your imagination ☺: the only available part of the previous window is the white square of the texture panel. Since the texture map is usually squared, enlarge the window so that the working area is as similar to a square as possible. I suggest you to use all the monitor height. Click on File Load Model and open the file with the cube with whom we worked earlier. Now click on Edit New UV Map Box. In the pop up window insert “512” as Map size, and select only Split front/back. Now you should recognize the sections of the map we saw before, when we mapped the cube. If you don’t remember, go back to page 5 and take a look at the picture ☺. As I told you earlier, this mapping doesn’t make a good use of space and there are many portions of the texture that are useless. So we need to manually adjust this, by moving and/or regrouping the sections of the map. Select the lowest rectangle, by dragging the mouse from A to B, as showed in Figure 14a: notice that when you drag enough to select at least one vertex of your object, all the related facet gets selected. Page - 14 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Ready for the Classic version Cont. Now if you point the mouse inside the selection area, it changes shape and lets you move the selected facet where you want. Put it in the free area in the upper-left corner. Since the mouse doesn’t let you put the rectangle exactly where you want, you can use the arrow keys of the keyboard instead: u nudge selection up; shift + u moves selection up; v nudge selection down; shift + v moves selection down; t nudge selection right; shift + t moves selection right; s nudge selection left; shift + s moves selection left. HINT: If you click on Help Hotkeys, you’ll see a pop up window that summarizes all the available Hotkeys. They will help you to take the best advantages from the program. Now select the rightmost facet and move it as shown in Figure 15b. You can rearrange every part of your model at will; if some facets of your object need to have the same texture, you can simply place one upon the other, thus saving space in the texture. If you make something wrong, press ESC key to undo the latest thing you have done: the undo function doesn’t work for all the actions (i.e.: if you have remapped some parts of your model, you cannot undo). Page - 15 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Ready for the Classic version Cont. Now that the facets of the cube are placed conveniently, we need to resize them to make a better use of the texture area. To achieve this click on Edit Select All (be careful that in the Edit menu there is a Select by and a Select command; you need the second one), then click on the right-lower corner of the selection and drag toward the right lower corner of the window, as indicated in Figure 16a. Since we’re mapping a cube, the facets need to be squared; otherwise the texture will look stretched on the object. HINT: When you resize the various sections of your object, try always to keep the proportions between the height and width of the 3D model in the 2D texture, since UVMapper, in most cases, isn’t doing it for you. When we’re done with the mapping, we can save our work: To save the mapped object, click on File Save Model…, in the Options windows click on OK e then select an existing file or enter the name of a new one where saving the model. To save the texture map, click on File Save Texture map…, in the Options window select 512 pixels for both width and height and click OK, then choose a name for the texture and click Save. Page - 16 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Ready for the Classic version Cont. Now you can go to your preferred graphic program, open the texture map (which is a simple BMP file) and create the texture for the cube: before doing anything else, you’ll need to convert it to RGB color – 24 bit, since the map is a black/white image. Just to check what you have done, open again UVMapper Pro, load the cube (File Open Model…) and then load your new texture (Texture Load). In this way you can check how the texture wraps around the cube and make any needed correction on the fly. Remember that it’s always better lo leave some gaps between the different sections of the mapping and paint a little outside the borders of each section, so that there won’t be any white lines in the object, when in game. And the final result is in Figure 17 (I’m sure you can do much better than this! ☺) HINT: The game can only render (and thus display) the triangulated faces of the objects. It’s more convenient to do the triangulation after the mapping: in this way there are less lines running across the texture map and it’s easier to understand which part of the model you’re working with. Page - 17 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Mappting a (little) more complex object Now that we know the basics, we can try to map a slightly more complex object, something that could even go in game. For this purpose I’ve made a bedside-table: don’t worry, I’m not going to submit it, at least until I’ve done a deep make-up on it ☺. You can make one similar to Figure 18 in your 3D program (it’s made from only 3 cubes and 4 cylinders put together), or try mapping your own original object. The explanations I’m going to give from here on, are general hints and can apply to every kind of object. Rule 1: If you want to make a good and easy mapping, make a good object: for example think of how you’re going to map every part of the model and keep those parts as separate groups, until you have mapped them. As you can see on Figure 18, I’ve made a simple bedside table, in which the different parts are still divided in different groups. You can call them what you want, but give explicative names, so that you can recognize them, because once you go to UVMapper Classic, you can’t see how the 3D model looks like. Page - 18 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Mappting a (little) more complex object Cont. Let’s go quickly through the first steps of mapping the bedside table. 1. Open UVMapper Classic and resize the window to make it look like a square. 2. Load the object you’re going to map: click on File Load Model. 3. Make a first map of the whole object: click on Edit New UV Map Box; tick the options Split front/back and Gaps in map, then click OK. The result is shown in Figure 19 below. Rule 2: Think carefully of what the final aspect of your object should be, before even beginning the mapping. Here are some hints: Do you have some glass or metal parts? Then map them separately and keep them in a separate part of the texture map. They will probably need a different Material Definition; so you’d better keep them as a different group in the final 3D model too. Are there any parts that need less details in texture? For example a solid colour? If so, resize them to use the least possible part of the texture. You won’t notice any big difference. Are you going to allow other people to recolor your object? Then make the mapping as easy to recolor as possible. Maybe they’ll want to insert an elaborate decoration on your plain shutter. Make the main surfaces big enough for this. Page - 19 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Mappting a (little) more complex object Cont. If we left the model mapped like Figure 19, we’d have a lot of difficulties in painting it, because the different parts overlap in many points. Now we need to free the window so that we can work better on the single parts of the model that we have to remap. 4. Select all the model: click on Edit Select All. 5. Resize it to make it a lot smaller: hit “/” key on the keypad twice (in this way you can maintain the proportions of the object, while doing the resizing manually doesn’t grant it). 6. Put it on the upper left corner, where is out of the way: hit “home” key. If you want to recall the hot keys, click on Help Hot keys: they’re really useful, since there aren’t menu commands for all the available features. Go on and remap the first leg of the bedside table; since it is a cylinder, we need the cylindrical mapping: 7. Select the first leg and put it in the center of the window: click on Edit Select by Group…, then drag the selection with the mouse in the center. 8. Remap the leg: click on Edit New UV Map Cylindrical; in the pop up window, select Gaps in map and Spread Facets at poles then click OK. 9. Enlarge it by hitting “*” on the keypad once (now the window should look like Figure 20) and move it on a free corner of the window. Page - 20 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Mappting a (little) more complex object Cont. Repeat steps from 7 to 9 for the other legs of the bedside table: remap each one of them, resize and put them one over the other, trying to make them all the same size. HINT: In UVMapper Classic, to map separately the caps of a cylinder you have to choose the “Cylindrical Cap” mapping option. In this case we don’t need them, since the top and bottom of the legs are never seen. Now we can remap the handles, one at a time, in the same way. Since they are small and they don’t need detailed texture, we can use the Box mapping, without the Split front/back option. At last, we shall rearrange the main part of the bedside table (see Figure 21). We don’t need to remap it; but considering that we will probably make a more complex pattern on the front face, we can leave it alone and regroup the other facets. Rule 3: The texture map is similar to a jigsaw puzzle, where one part fits in the other. Remember to leave enough space between different sections to be able to easily select each part in your graphic program. You can see the final result of the mapping work in Figure 22 (I’ve added some colours and labels to help recognize the different parts). Now you only need to save the mapped model and save the texture map. Page - 21 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Mappting a (little) more complex object Cont. Rule 4: The size of the final texture is somewhat independent from the size of the mapping, as long as it is a square. You can use the following sizes: 64x64 (rather too little and useful only for very small objects), 128x128, 256x256, 512x512, 1024x1024 (try and avoid this one with all your’s strength, since it results in a huge package file). If your object doesn’t need very detailed textures, use a smaller texture size. HINT: If you need to make a recolor of your object with more details, you can enlarge the image just for that recolor and apply it to the same 3D mesh. On the contrary, if you’re going to make a plain recolor, you can use a smaller image to make a lighter package. Just remember that the sizes need to be powers of 2 (128x128, 256x256, 512x512, 1024x1024). Back to your 3D program, you can regroup the parts of your model conveniently, save it and import it in Simpe. Then in your graphic program, you can paint the texture and give colours to your object. You can see an example of the final texture in Figure 23 and the resulting 3D model in Figure 24. Page - 22 Understanding UV Mapping: The Basics By Spaik, 1 February 2006 Conclusions There are many different ways to map the same object, and you’ll need to develop your own style, trying different solutions. Besides, UVMapper (in both versions) deals only with square texture maps; there are some ways to get round this, but they are a bit more advanced and don’t fit well here. And moreover, square UV maps can do in most cases. This is just a beginner tutorial, but if you’ve found it useful, and you want more, just let me know and I’ll do my best to make a sequel ☺. Page - 23