Creating Terrain Textures

This article talks about creating terrain (ground) textures for your land within the Second Life® virtual world. You may have noticed that some regions are covered in snow, sand, or stranger materials. With your own private Region and a little image editing finesse, you can change your terrain textures, too!
=== Before You Begin: Environment Considerations ===
==== What type of environment are you making? ====
Simplify the process of creating a terrain by planning properly in advance. Creating and loading textures will be much easier and faster, and you'll have greater continuity and visual appeal.
==== What are the slope extremes? ====
Steep slopes can have undesirable effects on terrain textures, depending on their complexity, contrast, and saturation. A texture might look great on subtle, rolling hills, but look terrible on more extreme slopes. Be aware that textures will "stretch" or "smear" on steep slopes, and more experimentation may be necessary to make them look good.
==== Are there adjacent Regions? ====
Crossing Region boundaries can be a tricky situation, so it's always best to develop adjacent Regions in tandem. If you own adjacent Regions the job of matching texture sets is straight forward, but if someone else owns an adjacent Region it's beneficial to contact them to get copies of the textures they're using.
=== Creating Terrain Textures ===
==== Texture format requirements ====
Land in the Second Life world has four elevation ranges, and requires a texture map for each of them. They must be 512x512, 24-bit Targa (.tga) files with no alpha channel.
==== Tiling textures ====
For obvious reasons it is important to make sure your textures tile correctly. There are a number of tutorials and instructional pages on the Internet that show how to tile textures. There are also a number of books available on this subject, as well as many other image editing techniques that are useful when creating textures for use inworld in Second Life.
==== Brightness and Contrast ====
Adjusting the Levels histogram (in Photoshop: Image > Adjustments > Levels) helps you achieve proper balance in brightness, contrast, and gamma. Frequently, maps with less contrast will look the best in every lighting scenario.
Photoshop's Levels panel, displaying the histogram of a grass texture. The controls at the bottom allow you to adjust both the black level output and white level output.
==== Color value and saturation ====
Depending on your environmental goals, color may be an important element for you. If the elevation ranges will be broad, consider making the value of each map somewhat similar; they'll blend much better with each other. If the elevation ranges will be small, you might allow them to have very different values -- which can yield very interesting results.
==== Using the Estate Tool ====
To access the Region/Estate window, select World > Region/Estate from the menus at the top of the Second Life viewer. Click the Ground Textures tab.
Upload any or all of the textures, and simply drag-and-drop them from the texture directory in your inventory onto the appropriate thumbnail in the Texture panel.
The thumbnails are labeled 1 (Low), for the lowest elevations, to 4 (High), the highest elevations. These numbers reflect each texture's position in the elevation hierarchy.
==== Texture Elevation Ranges ====
Texture elevation range values can be adjusted for each corner of the simulator and are labeled accordingly. The low and high values in each corner affect detail and base textures alike.
Measured in meters, the Low value represents the maximum elevation for texture 1 (Low). The High value represents the minimum elevation for texture 4 (High). Textures 2 and 3 are spread equally between these values. In other words, you will see texture 1 (Low) from the Low value down (to zero), and texture 4 (High) from the High value up (to infinity). Textures 2 and 3 are painted equally between the two.
Example:
If the Low value is 20.0, texture 1 (Low) will begin at 20 meters and cover everything lower. If the High value is 60, texture 4 (High) will begin at 60 meters and cover everything higher.
Using the above values, the elevation change between them is 40 meters. Textures 2 and 3 split that range, so:
* Texture 1 (Low) = 0-20
* Texture 2 = 20-40
* Texture 3 = 40-60
* Texture 4 (High) = 60-...
==== Simulator-to-simulator range settings ====
If you plan on texturing neighboring simulators, it's important to make sure that the elevation range settings in adjacent corners are exactly the same. Also, it's best to use the same textures to make the simulator borders seamless. Having differing elevation range settings and textures will reveal discontinuity along the borders, making the seam obvious.
It's beneficial to ask the owners of adjacent simulators to get full-permissible copies of the textures they're using. If this can't be done, mimic them as well as you can (or find similar-looking textures in the Library of your Inventory) to minimize border discontinuity. Also, make note of the elevation settings for neighboring simulators, and apply these to your new simulator.
This illustration shows where terrain textures and elevation ranges should be identical when attempting to span simulator borders. By creatively manipulating elevation ranges, you can swap terrain textures with little or no visual impact inworld.
By creatively manipulating elevation ranges, you can swap terrain textures with little or no visual impact inworld.
Even though each simulator has the exact same texture scheme, the mismatch of elevation ranges creates undesirable effects along simulator borders.
Matching texture schemes and elevation ranges.
=== Generating terrain using RAW image files ===
Second Life uses gray-scale height field information to generate terrain. Each simulator uses a 256x256 pixel height map (or elevation map), consisting of a range of 256 different values of gray. Black (with a value of 0) represents the lowest elevations, and white (255) represents the highest elevations. Each pixel's value tells the simulator exactly what its elevation is in relationship to the surrounding pixels. Extreme differences between neighboring pixels causes undesirable results; whereas subtle differences create smooth, clean changes in slope and elevation.  For more information on generating terrain in Second Life, see Tips for Creating Heightfields and Details on Terrain RAW Files.