Creating Terrain Surrounds for OpenSimulator in Blender

As first mentioned in this post, I have been lending a helping hand to my colleague Liz Falconer over the last few months as she works in Kitely on her virtual reconstruction of the ancient henge Avebury. One aspect we had discussed was how to deal with the fact that the sim, while big enough to recreate the henge itself, then stopped dead at the edge.

With no external landforms, there was little to support the sense that the henge belonged to a larger landscape. Previously I had addressed this issue by using 2D images as surrounds, to simulate buildings and/or landscapes external to the constructed environment, and this was the method I initially suggested to Liz.

At the same time as this discussion took place I had been spending time extending my skillset into Blender, the free, open source 3D creation suite. It had always been one of those “must dos” on the list, particularly as it is a package often used in tangent with OpenSimulator, but other skill development always took priority. I had however been delving.

Now, one of the landscaping options that has been quite prevalent in Second Life over the last few years has been to extend the sim outside the actual sim boundary by creating off-sim elements. This is possible using a linkset that keeps the root primitive within the boundary, but allows the linked child prims to sit outside it; a viable option also for OpenSimulator

As I thought more about the Virtual Avebury situation, recreating an external landscape around such a large area as the henge site (512m x 512m), using only 2D imagery, was always going to raise concerns around the suspension of disbelief; an aspect so crucial to an immersive experience. So because I always prefer to hone my skills on actual projects, I instead offered to investigate creating a mesh terrain surround in Blender and install it using the capability described above. The following, which may be of use to anyone else considering doing the same, describes in general terms the process I used.

At this stage the terrain surround was exported as a Collada file and imported into Kitely. Obviously there were tweaks to be made as the initial trial surround was just a general attempt at creating something viable rather than being exactly the recreation desired. The following show how Liz and I worked to address this from opposite sides of the world.

This was not a one-step process and it did take a couple of tweaking sessions to achieve the final result. This along with a number of iterations to ensure the terrain surround edges blended properly into the sim terrain meant a lot of repetition in that area between modelling and exporting out of Blender. With (in the end) 13 planes to triangulate and UV unwrap I decided to attempt automating that process using python. With many thanks to this video by CG Cookie Blender and some deeper searching around the Internet to find out about scripting unwrapping using Project from View (Bounds), I succeeded in creating this script to do that work for me. It’s specific for triangulating planes using Beauty and unwrapping from Ortho Top View but should be adaptable to a number of purposes.

Once the meshes were finalized visually I used the decimate modifier to reduce the polygons then went over each plane individually to ensure the seams between them still met perfectly and to make any other mesh efficiencies that I could. I’m very happy with the final result and see huge possibility for mesh terrains, off and on-sim, in my future builds. The before, the after and a mood shot follow. Enjoy!

4 thoughts on “Creating Terrain Surrounds for OpenSimulator in Blender

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s