|Texture mapping for 3DBy Amos Willbond
The following techniques used apply specifically to
the Satori FilmFX program, but the texture maps that we will be creating can be used in
most 3D modeling/rendering programs (as can the supplied .dxf model of the Spaceship),
just remember to save the correct image file format that your 3D package requires.
Let's face it, one of the things that everyone will do at one point or another when confronted with a powerful 3D modeling/ animation package, is to create a wonderful space scene or sequence.
|It's inspiration by
association, examples like Star Trek - The Next Generation spring immediately to mind.
Aesthetically pleasing, intricate spaceships against nebulae and exploding-star
backgrounds. A situation where you can still use lens-flares without them
appearing to be imposing or passť.
To create the deeply atmospheric background of the main image there are quite a few cheats and 'tricks of the trade' that we can use. Generally, when creating this kind of image it is important to achieve a balance between a neat, pretty piece of art and the chaotic reality of the real world (or, in this case, space).
Here's how to do it...
Start with a video resolution canvas (720 X 576 pixels for PAL D1 aspect.) and fill the first layer with a black filled rectangle. Until we do this, the canvas is completely transparent for compositing between images using 32-bit image files.
To create a deep field of stars, we'll first create a basic star pattern and then use a copy of that layer to build up a galaxy of varying brightness and focus.
On a new layer take a white Airbrush of about 10 pixels in size and scribble over the entire canvas.
|This brush stroke can now be adjusted using the tools on the Paint Actions, Brush Setup dialog and its attributes changed. In this example, change the profile of the brush to have a very soft edge and enter '1000' as the Response tab, Brush Application Distance percentage value, before applying the settings. Now re-apply the brush using the Replace Brush Style option from the Paint Actions, Pen/Mouse Right Button Click menu and you will get an instant star background.|
|This layer can now be copied, scaled and rotated to give that 'depth' that will help with the realism of the finished image (reducing the opacity of the background layer will help the stars fade into the distance).Gas CloudsIn a new layer, fill the canvas with another filled black rectangle. This is simply going to be used as a base for the following steps, we'll key out the black later. Using a larger Airbrush (about 60 pixels or so), add a few white brush strokes in the areas where you want your gas clouds.|
|Again, using a 10 pixel Airbrush,
scribble over the entire canvas and then change the attributes of the brush, so that it
has a soft profile, a Brush Application Distance of 4 and the Push
style selected. Re-apply this using Replace Style (with a new brush size of
50 pixels), smudging the airbrush strokes into wispy clouds
To make the darker areas of this layer transparent, add a Luma Mask. This is a great way to create perfectly gradiated masks in Satori, especially as you are able to render the results at almost any resolution (and with sequential files).
|Experiment with the Upper and
Lower values until youre happy with your mask.
Now, add another rectangle over the whole layer, this time with the box-corner option checked with some nice greens and blues selected for the four corners.
Now this layer is ready to be composited with the others, reduce its opacity and move it down so that it nestles snugly between two of our 'Star' layers.
|Add a Color Correction
to enhance the contrast of the layer, this can make a real difference!!
By playing around with the Brush Profile you can easily achieve nebula type effects (Fig 7), add a few wispy star trails around this and then shear the layer for a swirling galaxy. This layer can now be positioned and scaled using commands from the Layer Actions palette.
To apply this to your 3D scene you will first have to save the image as a bitmap using 'Save Bitmap As' from the file menu, it is only now that you have to specify the output file that your 3D application requires (Satori supports most file formats).
|As a general rule, if you are
unsure which file type to use, the more common file extensions (.bmp,..tif, .jpg) are a
good bet for most applications. There are, of course, exceptions to this rule such as
Lightwave 3D and other Amiga developed programs, which tend to use .iff as their native
image format, and SoftImage which uses the .pic format.
Also saving the canvas as a .cvs file for use in Satori has many benefits. This will save all the image information so that any part of the image can be changed at any time or rendered out at any resolution. Simply by changing the output file size when re-saving means that the image that we have just created could be re-rendered for everything from the internet to feature film, with no loss of quality.
Thats the key to Satori, it doesnt matter where you start or how many things you get wrong along the way, everything is completely editable so you can always get the results that you want.
|Texture maps for
the Galactic Cruiser
The model used in this scene is a medium polygon count mesh, originally modeled using NURBS in Lightwave 3D. The mesh is split up into five major groups for texture mapping; the hull, engine, screen, intake vents (in space?) and little bits that are not one thing or another (nuts, bolts, door handles, warp-drive transducers, that kind of thing....). The bulk of the ship is obviously the hull so generating this map first will give us an idea of what else is needed in the scene.
Before generating any texture map it is worth planning out exactly what you want to achieve and, if possible, study examples for ideas, color and texture. Split your thinking into the same categories that are changeable variables in the Texture Editor in your 3D package. i.e. What color is the texture? Does it have a pattern? Is it bumpy? You then have a pretty good idea of the texture and settings that you need before you start. It may seem an obvious way to look at the problem, but it's easy to get carried away with the technology of the software and end up with an image created by gadgets with no practical application in your scene. In this example we will create a texture map to represent dirty metal panels.
|On Layer 1 of your new canvas,
create a smudged white-on-black image similar to the one that you made for the gas clouds
layer of the previous canvas. This gives you a crude brushed-metal type finish, which you
can use as the base for this material.
Fill the second layer with random sized Outline Rectangles (eventually these will represent the panel structure of the hull, after a few effects have been added). To ensure that these 'panels' meet up exactly with one another, turn the grid snap on and set the cell numbers to about 50 in both the X and Y-axis.
Now Copy this layer twice and Scale and Rotate each copy to give your texture more depth and detail, without a lot of effort. Adding various effects to these copied layers
|(using filled rectangles with
effects specified from the FX menus) such as Blur, Sharpen, Emboss
and Tint, helps to give a greater indication of realism and variation.
Dirt and GrimeFor this type of texture map, having an image that is too 'clean' is an instant give-away that the image is computer generated. Putting a certain number amount of impurities in the map can disguise what is essentially a very pure image. To do this, we want to add random grime to the image to simulate dirt that has built up over many years, in the unforgiving environment of space.
|On a new canvas, this time 100 X
100 pixels in size, place a black background on the first layer and a white rectangle over
layer two. Using the random mask, with settings of 0 and 30 respectively for the upper and
lower limits, create a mask for the top layer. You will now see a resolution independent
version of the composition that doesn't conform to the physical size of the canvas, by now
saving the bitmap (using Save Bitmap As) you will constrain the dimensions
to 100 X 100 pixels, much simplifying the amount of data in the image.
Back to the original canvas, load the bitmap that you have just created into a new layer, making sure that Ignore Aspect is checked in the Load To Layer dialog box. You will see immediately that the noise created by the random mask, has a lot reduced quality after saving, giving you a blocky pixelated effect. To clean this up, use another filled rectangle with Blur selected to fill the canvas to smooth out all the blocky edges, add a Luma Mask to get rid of the black areas and Color Correct the layer to turn the white dirt to a more realistic brown color.
|To make this layer 'sit' slightly better in the overall image, reduce it's opacity slightly and change the Z-Order of the layer so that it is directly under the top layer of the canvas.Finishing touches.On a new top layer add a few details to finish off the image, such as access panels, decals and battle markings using rectangles, circles and text objects from the Geometry Actions palette. Add an Emboss Rectangle object to this layer to make the decals stand out, this will show up even more when you use the image as a bump map.|
|Finally, save the finished canvas
out as a .cvs file (so that you are able to make changes to any element of the image at a
later date, should you wish) and a bitmap so that you can use it as a texture in your 3D
package. It's worth pointing out, that once the canvas has been saved, deleting layers may
be useful to achieve purer bump maps for your model, while keeping a good match between
the color and bump map images.
Applying the Maps to your 3D Scene.Import the Ship.dxf object into a new scene in your 3D package and position the camera to give you a nice wide angle view of the geometry. What happens next is mainly down to what specific package you are using, but in most cases loading a background image is under Rendering Settings. If you have the option, set the projection type to Screen instead of Global, then render a frame of the scene to check that the background looks okay.
|To add the Hull texture to the
hull first ensure that the geometry that you have imported is correctly oriented.
Different 3D applications can read imported files differently and loading a model with
it's polygonal normals inverted (meaning that the model is essentially inside-out) is an
easy thing to do. If you are not sure how to fix this (or don't know if it has happened to
your model) look up Flip Normals in your software's manual or online help.
When you are sure that the model's geometry is correct, select the hull object and go to your Texture Editor to apply the image created in Satori to the model. Most commonly, you will be able to apply the image to the color and bump channels of the material, in the reflection channel you may want to put the background image for extra realism (definitely use this for the cockpit screen material to give the illusion of shiny glass). Render the scene again a few times, making adjustments to the lighting and tweak the surface settings to get your textures 100% perfect, and your scene is completed.
|Tips for Working with Satori's Layers and
As mentioned before it is possible to edit, undo or re-do almost any element of your image at any time via either the Edit controls or the Object List. For example, if we had made a mistake with the first brush stroke on the first layer of the background image that we created, we could now go back and change it. The canvas was specified at 720 X 576 pixels, but we can go back and render a poster sized image from that same file without the result appearing as though it constructed from Lego. Having this kind of editability in a paint package is especially useful when creating texture maps, you can simply refer back to your source (.cvs) file if any part of the texture needs changing. This also means that creating texture maps at different resolutions doesnt require a huge project file, soaking up hard-drive space, to prevent pixelation when creating the full size or close-up texture, Satori canvas files are rarely bigger than 1Mbyte in size, yet can render a bitmap containing over 1Gbyte of information.
Using the layer system is another useful way to work when creating textures. Not only does it mean that you are able to composite between the separate images inside the texture, but you can also export separate layers (or groups of layers) to specific channels in the material that you are editing. In this way you can always be sure that all your textures will be perfectly aligned and proportioned, plus you only need one (tiny) source file for all the textures in a material.
Some users of 3d software manage (and manipulate) multiple texture maps in a Satori canvas in a particular way that is related to the way the files are handled and reported by the 3d Materials Editor. Satori offers the ability to render each layer of a multi-layer canvas to a separate output bitmap file (it also permits the rendering of undisplayed layers if desired). This means that a single Satori project (.cvs) file can contain ALL the texture mappings source files required for Image, Reflection, Bump, Opacity (and other) mapping methods that will be applied to a model. It is important that the layers in the canvas should be named appropriately.