“Painting in 3D” (as Torley Linden calls terraforming) is an incredible experience in Second Life ™ and OpenSim. Several of our current projects involve terraforming and we’ve refined some of our previous techniques, so we thought it might be worth documenting and sharing a few tips and tricks. Call it our Christmas baking.
To start, we suggest you brush up here:
There are some rather good land sculpting tools in SL. We can personally recommend Skidz Dozer System, but for finer control and working in OpenSim we recommend painting your own image height maps. There are probably as many different styles of going through the steps as there are people creating terrains (we don’t even agree on any one “best” method among us) so we’ll just describe general principles we’ve not seen laid out together elsewhere.
Standards To Keep In Mind Regarding Scale
1 region = 65,536 square meters = 16.194 298 28 acres
1 region Raw file = 256 sq. pixels
1 pixel = 1 meter
(an average person is +/- 2 meters tall)
Raw File Height Maps are in GrayScale
where 0,0,0 = Black (Seabed – typically 20 meters below water)
256,256,256 = White (Highest Possible)
“Ok – but what does that mean?” you might ask. Well – so did we:
In the picture at left, you see what we created with concentric grey squares in 20 meter increments in our image editor as a test, with one side blurred and brought in as a .raw file. Hmmm. For our purposes, we’ve chosen to keep maximum height for a single region to the 100 meter range as recommended.
You can see in the image of the same file to the right, with grays reduced by one-fourth and an overall Gaussian blur applied. Note how the terrain textures show not as stripes, but blended – more on that later.
It should be noted that we saved our grayscale height maps as .bmp files, then Imported them into Bailiwick as Heightfields to check channel data; then saved them again in Bailiwick as .raw files to upload into our region. This IS an extra step for each and every .raw file we process, but it’s worth it to us, rather than faffing with the odd 13-channel RGB legacy. Then we go in-world and use World>Terrain>Upload.
Single Region – OpenSim
So – for the next exercise, we decided to try using a real terrain and play with land near the water level. Using Google Earth with a USGS topographical map plug-in from 3DSolar.com as written about on the Google Earth blog, we selected a coastal region:
Next, we opened a new file in Photoshop (this is our image editor of choice – though any would do). Keeping in mind the final image size of 256×256, created our file in a higher resolution as a multiple of that to work in detail and then the fun part begins! With 4 possible terrain texture levels, blends between each from low rocky hills to dunes and beach and various water features, coves, shoals, river, ponds, marshy inland bits – we used soft brushes and gentle blurs and a bit of artistic license. Then, when happy, we saved the output as a copy – reduced to 256×256, saved as .bmp, imported to Bailiwick, checked it all and created a .raw file. (Okay, so we bounced from PhotoShop to Bailiwick a couple of times – tweaking.)
We uploaded the file to our OpenSim grid and it came in smooth – no nasty jaggies or texture smears, BUT the “organic” terrain texture blends suggested further polishing: beaches extending, rocky outcroppings, etc.
NB: For some reason, it seems terrain texture heights need to be entered twice to actually apply.
So, then we set into refining with tools in-world. [NB: This is the part that can get painful, depending on your server - we refine on our own estates with dedicated, robust servers just so we don’t have to wait a week to see each brush stroke in-world as we work.) The native grid tools are still a bit primitive (pardon all suggested puns). Having to work with all brush selections in squares is maddening but the strength and size slider options are an improvement, although we're still a bit baffled by tool increment strengths from one brush tool type to another... (eg: Roughen seems much stronger than Smooth - without changing the slider).
Remember - there is no Undo in Grid Terrain Tools, only Revert (again, see the Torley Tutorials!)
Free Download - Terrain Raw file, inspired by Cape Cod (669)
Multi-Region – Diva Distro Grid
Then it gets interesting. In theory (and with patience), a single region can be terraformed using only the tools provided on the grid. However, we found that creating good, interesting landscapes across region boundaries really is best done in an image editor first. It also helps to have some understanding of topography.
Next, we created a four-region terrain. Again, using the 256×256 multiplier, we started with a 2048×2048 file and set guides to show individual regions. Drawing the landscape freehand, we started with a river running thru three regions with creeks flowing off from that then added an inland harbour, and a smaller lake. Mountain ranges suggested themselves naturally as did the marsh along the lake. As the mountain ranges spanned region edges, care was taken to soften grades in the image file before uploading it to the grid.
NB: We saved the entire master file to its final size (as a copy ideally), then partitioned it into regions. (Partitioning then resizing causes unwanted ridges between regions.) So, in this case, the final size was 512×512 for a 4-square-region terrain. Then we used the Marquee Tool set to a fixed 256×256 size to select each region, saved it as a 24-bit .bmp, imported it into Bailiwick, set channels, saved as a .raw file, then uploaded the result to our grid.
Technically, we could have called this proof-of-concept done at this point, but we chose to refine it further after testing in 3D. We raised creek heights to walk through them without getting dunked; lowered the river, lake and harbour to be able to walk underwater without the default camera height breaking the water surface; moved the harbour to sit in a single region, so sailing in it doesn’t hit the vehicle bug crossing regions; and added a sandbar to the marsh.
Having two grids – one standard OS, one Diva distro – is useful for comparison purposes. It proved interesting to see different lag times over the two systems (one being higher spec than the other).
Having the freedom (and no upload costs) of our own grids rather than just SL sims is liberating, even with the OpenSim glitches (permissions and initial router setup headaches, etc.), is well worth it. If there’s enough interest, we will talk about different aspects of OS/Diva in future posts.
In the meantime, you are welcome to download our single-region raw file example inspired by Cape Cod and have a play with it for yourself. Let us know what you think!