SCIFI-ART.COM | Headlines | The Minds Eye | Shipyard | Forums | Info  
   Discovery Zone: Applying Textures to a Starship

Applying Textures to a Starship
By Pedro

So, you've finally finished constructing your baby, the cleanest mesh in town. You click the render button, and wait for the results. Well, the darn thing sure doesn't look right.... it's missing something....texures! Ok, easy the heck do you texture that darn thing? That's why were here, to learn the basics of creating materials and applying the neccessary mapping coordinates to the mesh. I'm not going to go into actually creating the texture maps, so I've provided them, as well as an untextured mesh of the cheeziest ship around, the Freedom class USS Firebrand.


     Note: This tutorial is written for 3DSMax, though the concepts will be of interest to people using any package.
    First, a few notes about texturing. There are two important aspects to creating and applying materials in 3DS Max (actually, in any 3D software). You create the materials in the material editor, choosing the colors, adding bump maps and the like. When you apply these materials to an object, the program needs what is known as 'UVW mapping coordinates', which tell it exactly how the material is mapped onto the object (U, V, and W correspond to X, Y, and Z in 3D space). When texturing a model, I prefer to start with uncollapsed objects, as many objects (primitives, booleans, etc..) have built in mapping coordinates which come in handy. Barring the ability to use built in mapping coordinates (which is often the case), Max provides you with a UVW modifier that you can use to control the mapping coordinates. Well, I think it's best to learn by doing, so lets get on with it. You'll need the you'll need to download the textures and the model, unzip them both to the same directory.

   Load freedom.max, and click click the Material Editor button so we can construct the first material. You'll find all the material slots except the first are loaded with the default grey material.
   Click the Get Material button to load the material browser (quick note on the material browser, if you name your materials properly, this is a great tool for finding materials in complex scene, no need to dig through the material slots). Double click the Standard icon near the top to load another booring grey material. Close the material browser.

   We'll be creating the saucer textures first. Next to the eyedropper tool, type in UpperSaucer (it's important to name your materials meaningfully, it's very easy to get lost trying to find one in a complex scene or model). My starship textures are generally made up of three map types: diffuse, shine strength, and bump maps. The diffuse maps provide the colors, or 'paint', the greyscale shine strength maps provide varying specularity that makes things look big, and the bump maps, well, they make bumps (panel lines and such).

   Click the Maps button to expand the map rollout. Click the None button next to the Diffuse slot, which brings up the material/map browser. Double click Bitmap. Under the Bitmap Parameters rollout, click the click the blank Bitmap button which brings up the browse for map dialog. Load saucer_color.png from the texures zip. You'll see the map loaded on the preview sphere.
   Click the Go to Parent button to return to the mapps rollout. Next, click the None button next to Shin. Strength, and double click Bitmap. This time, you want to load saucer_shine.gif. (note: some people prefer to use both shine and shine strength maps, even specularity maps, but I find that the shine strength maps work well for most ships). Click Go to Parent to go back up to the Maps rollout, and load saucer_bump.gif in the bump slot. Again, head back up to the Maps rollout, and set the Bump spinner to 20. Finally, scroll back up to the top of the material slot and set Shinyness to 73. Your material should look like this.

3DS Max Material Editor
Figure 1
     We're ready to apply the material to the ship. Select the top saucer section in the left viewport, and click the Assign Material button in the material editor. Rotate the Perspective viewport so you can see the top saucer, and click the render button (Figure 1). Well, that doesn't look right, we need to alter the mapping coordinates. Apply a UVW modifier to the saucer. The modifier gives you a gizmo which you can use to place the map, as well as providing a number of different methods of projecting the map onto the object. In this case, we want to use Planar mapping, which basically projects the map straight outwards from the gizmo (planar is the default mapping type). The gizmo is facing the wrong direction, so check the 'Y' radio button under Alignment, and the gizmo will rotate to the Y plane, which is what we want. Next, click the Fit button, which stretches the gizmo to fit the saucer. Click render....ahhh, much better, but a little plain (Figure 2). We'll worry about windows and such later. Now you can select the bottom saucer, apply the material, apply a UVW modifier. A quick way to align the gizmo is to click the Aquire button under Parameters and select the top saucer (chose relative on the popup), which grabs the gizmo from the top section.

     Build the material for the Nacelle in the next material slot using the same proceedure (maps are nacelle_color.png and nacelle_shine.gif, which is used for both bump and shine maps). Select the nacelle parts that will have hull textures (line30, rectangle501, and rectangle502...sorry 'bout that). Apply the nacelle material to them, and apply a UVW modifier to them (yes, you can apply a single UVW to multiple objects). In this case, the gizmo is facing the correct direction, but it's fit to only one of the parts. Click the Bitmap Fit button under Parameters and select any of the nacelle maps. The gizmo is now proportioned to fit the map so we just need to get it to fit the object. You'll also notice that it needs a bit of rotating, so click the Sub-Object button under the modifier panel, rotate the gizmo -90 degrees on the Z axis in the bottom viewport. Use the Scale and Move tools to center and fit the gizmo to the nacelle (kinda makes you wish it had been built a bit differently, huh?). You'll have to do a bit of non-uniform scaling on the Y axis to get it to fit (figure 3).

     For the dorsal section we're going to use a bitmap that doesn't fit the object, and we'll tile the image so we get some extra detail. Name the next material slot Dorsal, set shininess to 37, go to the maps rollout and load panels.jpg in the Diffuse slot. You'll see that the color of the material doesn't match the saucer and nacelle (Figure 4). You could correct this in an image editing program (or do it right in the first place!), but I wanted to show you a way to get around it in Max, which comes in handy for minimizing the number of maps you need to use in a model. Click on the diffuse color slot and set the RGB values to 179, 176, 199 (Figure 5). This is a darker color than the hull, but you'll be blending the bitmap with the color, so it will even out. Back in the Maps rollout, set the diffuse amount to 50. The color should now match the color of the other materials (Figure 6). Apply the material to the dorsal section, and apply a UVW modifier.

   Go back to the Diffuse material slot where you loaded panels.jpg, and click the Show Map in Viewport button . If you have the viewport set to Smooth and Highlites, you'll be able to see the bitmap on the object. Switch to the Left viewport and zoom in on the dorsal section. We'll use planar mapping again, but the gizmo is facing the wrong way, so switch the gizmo alignment to X and click the Fit button. Looking much better, but the panels are much too large for the scale of the ship, we need to increase the tiling of the bitmap. You can do this in the material itself, but I find that it's often best to do it in the UVW modifier, which enables you to use the same material on radically different objects. Under the UVW Parameters rollout, set the U tile to 2 (U corresponds to Y in the viewport). Set the V tiling to 3.5 (you generally have to experiment a bit to keep the map proportions right) (Figure 7). You should have something that looks like figure 8, looking pretty good.
Figure 8
Figure 1

     Now we can add the bump and shine strength maps to the material. Go back to the material editor and drag and drop the Diffuse botton to the Shine Strength and Bump slots (select Copy on the popups). Now go into the Maps and set the bitmaps to panels_shine.gif and panels_bump.gif respectively (by copying the diffuse slot, you save yourself some time setting up the others), and set bump amount to 10 (there's a higher contrast in the bump map than the other bumps for the ship).

     We're going to wimp out a bit and use the same material on the dorsal connector and that thingie that sticks off of the botom of the nacelle. Select those parts (Box01, Box02, Elipse02, and Line02, really should have named those objects!), and apply the material. These objects are going to need different mapping coordinates, we'll start with the thing on the botoom of the nacelle, so select Elipse02 and apply a UVW modifier. In the Left viewport, align it to X and click Fit. Set the U tiling to .75 and it should fit OK.

     Next, select Box01 (the dorsal connector) and apply the UVW modifier. We'll use box mapping on this one. Box mapping is basically projected as planar maps from the 6 faces of a box shaped gizmo (good for boxy objects, strangely enough). Check the Box radio button under Parameters. Set U tiling to 3 and V tiling to .5, and you'll avoid much stretching on the object from any angle. Apply the same type of mapping to the nacelle spine (Line02), but set U tiling to 6 and V tiling to .5. We won't bother with mapping coordinates for Box02, as it has built in box mapping coordinates, and you can barely see it anyway. Render a perspective view and it should look like figure 9.

    Wimping out again, apply the panels material to the Bridge modules and lower sensor platform (Circle01, Circle02, Circle03, Rectangle01). In an ideal world you'd probably paint some better maps for the bridge sections, but I've got cooler ships to make. :) I didn't mess with the tiling on these objects, just apply a planar UVW modifier to each in the top viewport (figure 10). Now apply the panels material to the top bridge section (Sphere01). This piece already has built in spherical mapping coordinates (spherical mapping is sort of difficult to explain, but it's usually only works well for spheres, it's sort of like wrapping a rectangular decal around a ball, figure 11). This is all the panel texturing we'll do, the ship is nearly 'painted' (figure 12).
Figure 8
Figure 1

     The last new textures we'll need to make are the texure for the bussard collecor and the blue nacelle vents. Start by naming the next material slot Bussard. In this case we'll be using proceedural textures instead of bitmaps. Go down to the diffuse slot of the material, click the None button and select Smoke as the map type. The smoke texture lets you specify two colors which are mixed together with random smoky patterns, perfect for the bussard collector. Under Smoke Parameters, set the first color slot to RGB: 255, 0, 0, bright red, and set the second to 255, 217, 5, bright yellow. Set size to 50 and Exponent to 1 (you sort of have to just fiddle with these settings, depending on your needs, but these will work for our bussard). (figure 13)

      Click Go to Parent, and set self-illumination to 100 in the top level of the material. We're going to blend this smoke material with another made of red and black, so click the Type: Standard button, and set the material type to Blend (choose to keep the current material as sub-material on the popup). You'll see a screen that lets you set up two materials, as well as a spinner for the blend amount and a mask slot (figure 14). Drag the bussard material to the second slot (choose Copy). Go into the Diffuse material of the second Blend slot, set Color 1 to black, and use the same red as before in Color 2. Set size to 100 and Exponent to .5, which will ensure that we get some interesting patters. Back up to the top of the blend material, set the Mix Amount spinner to 30, which blends the two materials together (a tip for working with materials, especially blends, you can toggle the Show End Result button , which lets you see only the sub-material you're working on). You'll end up with a nice smoky bussard texture (figure 15). Apply the material to the bussard collector (Rectangle507).

     For the warp coil vents, we'll use a really small, simple bitmap and a blend material. Name the next material Nacelle Vents, and set the diffuse color to RGB: 170, 186, 254, a sky blue (set self illumination to 100 as well). Change the material type to Blend, go to the second material slot and set the diffuse RGB to 6, 0, 134, dark blue (self illumination should be 100 here too). Click Go to Parent, click the Mask button, and select Bitmap as the type. In the blank bitmap button, load nacelle.gif. Have a look at this bitmap (click View Bitmap under Bitmap parameters). There's no need for the lines to be long, the bitmap will tile to make them fit the nacelle. Black areas will be filled with the first material, white areas let the second material show through. It looks like things are backwards, we want thin dark blue lines, so go down to the Output rollout and check Invert (this just inverts the bitmap, figure 16). Ahhh, that's what we were looking for (figure 17). Apply this material to the nacelle vent parts (Coils03, Coils04, Rectangle503, Rectangle504).

     With all of these objects selected, add a UVW modifier in the left viewport. Leave it set to Planar mapping, but change the alignment to X. If you do a quick render, you'll see that the lines are going the wrong direction (figure 18), so click Sub-Object under the UVW Parameters and rotate the gizmo 90 degrees on the Z axis. Click the Bitmap Fit button to re-proportion the gizmo, and scale it up a bit so the lines aren't too close together (figure 19). Notice that we didn't need to mess with the tiling, any time the gizmo is smaller than the object, the bitmap will automatically tile. The lines look pretty chunky when you're not zoomed in close, but this is easy to correct. Go back to the Mask section of the blend material, and set blur to 1.5 (this blurs the bitmap a bit as it gets farther from the camera). Go to the top level of each of the blended materials and check the Supersample box, which improves antialiasing quite a bit (use this only when neccessary, as it slows rendering time). The lines still look a bit chunky from some angles, but this will normally be covered by glow effects in final rendering.

  So, Ok, we're done, right? Wait, what about markings and windows? Here's where the blend materials come in really handy. We'll use masks to add the windows and markings right onto the materials we've already created.

Next Page

   Top of page    SciFi-Art.Com : Discovery Zone: Applying Textures to a Starship