Terrain making

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
(Detailed cross-region terrain editing - by Fu Barr)
 
m (Notes: added link to orphaned terrain splatting page)
 
(10 intermediate revisions by 4 users not shown)
Line 1: Line 1:
This page describes a workflow for creating large, detailed, cross-region terrains. This workflow work for me, but you may find the whole process to be a little baroque. Feel free to provide the community with a sleeker option.
+
__NOTOC__
 +
{{Quicklinks}}
 +
<br />
 +
 
 +
This page describes a workflow for creating large, detailed, cross-region terrains. This workflow works for me, but you may find the whole process to be a little baroque. Feel free to provide the community with a sleeker option.
  
 
enjoy!
 
enjoy!
  
 
Fu Barr.
 
Fu Barr.
 +
 +
NB: For a slightly less baroque technique check out Max Ping's [[Cross-region terrain making with L3DT]]
  
  
Line 20: Line 26:
 
Step 1. '''Sketch the contours of your map.'''
 
Step 1. '''Sketch the contours of your map.'''
  
This sketch should be a birds-eye view only, 3D-ness should remain in your minds' eye.
+
This sketch should be a birds-eye view only, 3D-ness should remain in your minds-eye.
  
 
I cannot stress enough that the secret to good terrain is imagination, and in my experience the fastest path from imagination to workable idea is pen and paper. So, raid the laserprinter and dont be afraid to sketch several versions to see which one does the most justice to your vision.  
 
I cannot stress enough that the secret to good terrain is imagination, and in my experience the fastest path from imagination to workable idea is pen and paper. So, raid the laserprinter and dont be afraid to sketch several versions to see which one does the most justice to your vision.  
Line 61: Line 67:
 
Step 6. '''Cut the large region map into individual regions.'''
 
Step 6. '''Cut the large region map into individual regions.'''
  
Once your smoothing and smudging is complete, you need to cut the region into 256x256 squares, one tile per simulator region.
+
Once your smoothing and smudging is complete, you need to cut the assembled region back into 256x256 pixel squares, one tile per simulator region.
  
  
Step 7. '''Rotate and save the region textures.'''
+
Step 7. '''Upload the textures to your server.'''
 
+
Rotate the cut bitmaps by 90 degrees and save them to disk as PNG.
+
 
+
Why do we rotate the region textures? It is my experience that OpenSimulator tends to rotate the textures when you apply them to a region, i;m sure this makes perfect sense in the code, and if you're just doing one region per sim you dont really care, but on a grid with detailed landscaping it wreaks havok with your design. You need to counter-act the OpenSimulator texture rotation with the 90 degree rotation you apply here.
+
 
+
I expect this rotation step to become obsolete some time in the future.
+
 
+
 
+
Step 8. '''Upload the textures to your server.'''
+
  
 
Duh.
 
Duh.
  
  
Step 9. '''Making OpenSimulator use the new textures.'''
+
Step 8. '''Making OpenSimulator use the new textures.'''
  
You need to now tell OpenSimulator to use the new terrain textures on your grid. For example: if you have 4 regions called Sim1, Sim2, Sim3 and Sim4... you need to add a section to your startup_commands.ini that looks like this:
+
You need to now tell OpenSimulator to use the new terrain textures on your grid. For example: if you have 4 regions called Region1, Region2, Region3 and Region4... you need to add a section to your startup_commands.ini that looks like this:
  
change-region Sim1
+
    change-region Region1
terrain load path_to_textures/terrain_for_sim1.png
+
    terrain load path_to_textures/terrain_for_region1.png
 +
   
 +
    change-region Region2
 +
    terrain load path_to_textures/terrain_for_region2.png
 +
   
 +
    change-region Region3
 +
    terrain load path_to_textures/terrain_for_region3.png
 +
   
 +
    change-region Region4
 +
    terrain load path_to_textures/terrain_for_region4.png
  
change-region Sim2
 
terrain load path_to_textures/terrain_for_sim2.png
 
  
change-region Sim3
+
Step 9. '''Restart your OpenSimulator instance and fine-tune your terrain height.'''
terrain load path_to_textures/terrain_for_sim3.png
+
  
change-region Sim4
+
You should see your glorious new terrains appear on your regions when you restart the simulator, but it's likely that the terrains are too tall or too flat.  
terrain load path_to_textures/terrain_for_sim4.png
+
  
 +
You need to add a terrain multiplier factor to each region, to compensate. This looks like so:
  
Step 10. Restart your OpenSimulator instance and fine tune your terrain height.
+
    change-region Region1
 +
    terrain load path_to_textures/terrain_for_region1.png
 +
    terrain multiply 0.45
 +
   
 +
    change-region Region2
 +
    terrain load path_to_textures/terrain_for_region2.png
 +
    terrain multiply 0.45
 +
   
 +
    change-region Region3
 +
    terrain load path_to_textures/terrain_for_region3.png
 +
    terrain multiply 0.45
 +
   
 +
    change-region Region4
 +
    terrain load path_to_textures/terrain_for_region4.png
 +
    terrain multiply 0.45
  
You should see your glorious new terrains appear on your regions when you restart the simulator, but it's likely that the terrains are too tall or too flat. You need to add a terrain multiplier factor to each region, to compensate. This looks like so:
+
The actual multiplication factor will differ from case to case, so you need to experiment with the factor-value till you get the height you want.
  
change-region Sim1
+
That's it. Go forth and multiply!
terrain load path_to_textures/terrain_for_sim1.png
+
terrain multiply 0.45
+
  
change-region Sim2
 
terrain load path_to_textures/terrain_for_sim2.png
 
terrain multiply 0.45
 
  
change-region Sim3
+
== Notes ==
terrain load path_to_textures/terrain_for_sim3.png
+
terrain multiply 0.45
+
  
change-region Sim4
+
See Also [[Terrain Splatting]]
terrain load path_to_textures/terrain_for_sim4.png
+
terrain multiply 0.45
+
 
+
The actual multiplication factor will differ from case to case, so you need to experiment with the factor-value till you get the height you want.
+
 
+
That's it. Go forth and multiply!
+

Latest revision as of 09:16, 10 September 2020


This page describes a workflow for creating large, detailed, cross-region terrains. This workflow works for me, but you may find the whole process to be a little baroque. Feel free to provide the community with a sleeker option.

enjoy!

Fu Barr.

NB: For a slightly less baroque technique check out Max Ping's Cross-region terrain making with L3DT


[edit] Overview

There are many ways to create heightmaps for terrains. You can use a specialised application with 3D terrain previews, or you can hand-craft each heightmap by drawing the gray-scales with a bitmap editor like the GIMP, Adobe Photoshop or DeLuxe-Paint II.

The workflow described here is based on using a combination of both: a specialised terrain application is used to create each individual heightmap, and a bitmap editor is then used to combine, cleanup and export the maps to OpenSimulator.

The reason for this seemingly convoluted way of doing things is that I like detailed region terrains and the 3D-preview of a terrain editor provides me with more 'control' over what I'm doing compared to using only a bitmap editor.


[edit] Creating a detailed terrain map.

Step 1. Sketch the contours of your map.

This sketch should be a birds-eye view only, 3D-ness should remain in your minds-eye.

I cannot stress enough that the secret to good terrain is imagination, and in my experience the fastest path from imagination to workable idea is pen and paper. So, raid the laserprinter and dont be afraid to sketch several versions to see which one does the most justice to your vision.


Step 2. Divide the sketch into squares.

Once you have a map you like, draw straight lines across the map as per the number of regions you want this map to span. For example: a 2x2 grid would have two lines cutting the map into 4 equal squares: one going top to bottom and one going left to right.

Sometimes the lines cut your map into odd shapes like very thin slices of slope at the edge of regions, or little bits of river and lake in the corners of regions. If you redesign around these oddities now you'll have an easier time of it when you come to assembling the terrains.


Step 3. Use the 3D terrain editor to add detail.

Run your terrain editor and draw each square of your map adding in the 3D detail. Save each square as a simple gray-scale bitmap like a PNG or a TIFF.

Take care not to overdo the height thing. A good rule of thumb is not to exceed 60 metres height differential between the lowest and the highest points on the map.

Also avoid creating very steep inclines with a height difference of more than about 15 metres, as this will badly stretch the terrain textures.


Step 4. Assembling the overall terrain map.

Run your bitmap editor and create a new file of size: (256 x grid_x_regions) by (256 x grid_y_regions). For example in a 4x2 grid that would be: 1024x512 pixels. Then drop-in the individual region bitmaps you saved in step 3, taking care to match the region seams perfectly.

Put each region bitmap into its own layer, this makes it much easier to move the layers around.

Save this layered file before you continue. Trust me.


Step 5. Smoothing the region seams.

Flatten the layers of your perfectly arranged region map and then use your colour-copy tool to even-out the grey-scale values on the region seams. Save into a new file, keeping the first layered file as a starting point for new versions.

Why this smoothing business? Well, unless you've taken great care in step 3, there will be (small) differences in the gray values on the region seams. This is bad news as they'll show up as sudden height differences on your regions.

Also at this stage, you might want to use the smudge tool to blend gray-scales on mountain sides and other such details. This softens their slope and makes for prettier terrain in most cases.


Step 6. Cut the large region map into individual regions.

Once your smoothing and smudging is complete, you need to cut the assembled region back into 256x256 pixel squares, one tile per simulator region.


Step 7. Upload the textures to your server.

Duh.


Step 8. Making OpenSimulator use the new textures.

You need to now tell OpenSimulator to use the new terrain textures on your grid. For example: if you have 4 regions called Region1, Region2, Region3 and Region4... you need to add a section to your startup_commands.ini that looks like this:

   change-region Region1
   terrain load path_to_textures/terrain_for_region1.png
   
   change-region Region2
   terrain load path_to_textures/terrain_for_region2.png
   
   change-region Region3
   terrain load path_to_textures/terrain_for_region3.png
   
   change-region Region4
   terrain load path_to_textures/terrain_for_region4.png


Step 9. Restart your OpenSimulator instance and fine-tune your terrain height.

You should see your glorious new terrains appear on your regions when you restart the simulator, but it's likely that the terrains are too tall or too flat.

You need to add a terrain multiplier factor to each region, to compensate. This looks like so:

   change-region Region1
   terrain load path_to_textures/terrain_for_region1.png
   terrain multiply 0.45
   
   change-region Region2
   terrain load path_to_textures/terrain_for_region2.png
   terrain multiply 0.45
   
   change-region Region3
   terrain load path_to_textures/terrain_for_region3.png
   terrain multiply 0.45
   
   change-region Region4
   terrain load path_to_textures/terrain_for_region4.png
   terrain multiply 0.45

The actual multiplication factor will differ from case to case, so you need to experiment with the factor-value till you get the height you want.

That's it. Go forth and multiply!


[edit] Notes

See Also Terrain Splatting

Personal tools
General
About This Wiki