Texturing

From FreeSpace Wiki
Revision as of 16:23, 10 June 2005 by TopAce (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

General

Properly texturing a model is perhaps one of the easiest aspects of modeling to actually do, but possibly the hardest to do well. There are two types of texturing methods, tiling and mapping, each with its own distinct advantages and disadvantages. I am not qualified to explain mapping (also called texture wrapping or unwrapping), as this is by far the more difficult of the two to do well. This form of map is most commonly used on fighters, although some capships (many FS1 cruisers, as well as distinct ships like the Lucifer) make use of full mapping. The advantage comes in a form-fitted map, that has each piece distinctly textured to reflect the designer's intentions as to what function each section should serve. However, especially with the older 256x256 maps, large scale mapping can be blurry and inconsistant if extreme care is not given to the construction of a map. Mapping a ship also requires you to be able to create techy maps in a photoshop-like program, and there really isn't an effective substitute.

Texture tiling: This method is simple, and (besides being the primary capital ship texturing method used by Volition) produces a consistantly crisp and consistant hull if applied correctly. When constructing a model, the choice between mapping and tiling generally comes early; anything with large flat or gradually curved expanses can easily exceed the optimal resolution for wrapped textures and makes tiling extremely noticable. As a general rule of thumb, don't create large expances of unbroken hull and you won't have this problem. If you can't get around it, though, try to split the section into two or more horizontal or vertical sections that can be mapped with similar textures or otherwise find a way to break overly repeated textures up. Using a varient of the same texture (such as ~C~Tile1 and ~C~Tile5 from the stock FS2 textures) can work really well here. Once your model is ready to texture, you must provide UV coordinates for each polygon so that the game renderer knows how to display your textures. I start out usually by applying a box UV map to the whole object, and then work from there. This comes with the advantage of lining everything up for tiled textures, but can create some odd seaming effects around 45 degree facings. I then go back and planar map (TS5) or unwrap (3ds Max) any parts that require special attention, such as engines, viewports, corners, etc. so that they fit the scheme I want. I would advise against spherical, cylindrical, or shrinkwrap UV map options, as they tend to create unstable normals (in TS) and almost always create an unexpected "pole" effect around the ends which is difficult to rectify. For a step-by-step walkthrough, I would strongly suggest taking your modeling program of choice and just playing with it. See what you can come up with. And that's all of the texture section until someone who is better at it than I am comes along and fixes this page up.

Choosing dimensions

When making textures for models always use dimensions that are equal to ‘2 to the power of a number’, this means these numbers:

16, 32, 64, 128, 256, 512, 1024, 2048, 4096.. etc etc.

16 is the smallest texture FS2 will deal with, using anything less is a waste.

256 is a special value because without changing a registry setting D3DuseLargeTextures (or using the launcher ‘Use Large textures’) this is the largest texture that can be used by the engine without it having to cut into sections. This is also the maximum texture size for voodoo 2 & 3 cards.

1024 This is the maximum texture size for many older cards that aren’t voodoo, a TNT2 for example would have this maximum.

4096 This is the maximum for my Geforce 4 card, however make sure you consider your texture sizes carefully a 4096x4096 (16 bit) texture takes up about 34 Meg, that’s more memory for one texture than the TNT2 has in its entire video memory.

So what happens if you don’t use these magic numbers? The engine will use the next one up. So if your texture is 257x257 then the texture will be 512x512 and the image will either be stretched across this larger area or the extra space will be wasted.

Remember that texturing is one of the most time consuming things your card has to deal with, with bad texture sizes its easy to waste processor time without making the result look any better.

The same goes for most other textures (and ani’s) in FS2 and all other games, the exception to this is interface art. e.g. the mall hall background, this texture wont look good if it is stretched in the y res to 480 or 768 because the smoothing code is different.

Lithium UnWrap

Lithium Unwrap is in my opinion, the best texturing program. It allows you to texture a model in one of two ways.

Lets start with the [Tutorial Ship] Modeled by Max Sterling. (click name to go to a download area)

  • 1. Open the file. File ----> Model ----> open
  • 2. Here you see a jumbled mess of faces, first we want to assign these faces to a material. We do this so we can begin UV mapping our Uylesses.
  • 3. Select all faces by clicking the arrow icon in the tool bar at top. Then drag a box around all faces you can see, if you can see only some faces or nothing at all, try zooming in or out by using the magnifying glass icon in the toolbar. Click and hold while moving your mouse up and down to zoom in or out.
  • 4. After selecting the faces, a red box should show up around them. Now click materials ----> modify -----> Mat 0 ----> Assign ----> ok and close the menu. Now normally Lithium will create a material and assign all faces to it if you dont already have one, but its good to know this.
  • 5. Now select material0 in the left hand column, expand materials by clicking the + if you have to.
  • 6. Drag select all the faces again and now click Tools ----> Uv Mapping -----> Box mapping ----> ok
  • 7. Now its slightly more organised but still a bit confusing if youe never used this before.

someone else can continue this.