So, the majority of the internal work of Terrain Module is now done – it works for all the standard operations you expect in SL. We now have the standard array of Raise, Lower, Smooth, Flatten, Noise and Revert brushes, both Paint and Area. The Noise brush still needs a little work as it uses random noise, rather than perlin noise for modifying the terrain, but the rest should behave normally. Parcel support is pending a rewrite of the parcel engine coming soonish, but is on the agenda.
This weekend, I am to knock out at least one, hopefully more of the following features.
- Erosion Brushes to complement the raise/lower/smooth/flatten/noise/revert brushes. Thermal erosion I should be able to do in under an hour. Hydraulic erosion is a bit more complex and might probably take longer. My own personal Aerobic erosion routine will probably make a return visit too once I clean it up a little.
- Effect Brushes. Part of the original libTerrain I wrote for OpenSim was a very rich and diverse set of routines for doing special effects to a terrain. The original erosion routines sat here, as did a mountain of procedural generators, and things to that effect. I’d like to bring these back, but make them more accessible to end users, I may see if I can instead of hiding them on the console, expose them to the inworld scripting language, I’ll try hunt Tedd to find out how we can do that if we can.
- Finish file saving and loading for a variety of file formats. One of the new features I brought into the new Terrain Module was the ability to write File Loaders as plugins to the Terrain Module itself. I also implemented a terragen loader which we didn’t have before. Presently we support loading from RAW32, LLRAW, Terragen, and saving to RAW32, LLRAW and JPEG. The full set I’d like to support is full read/write from the following formats: RAW32, LLRAW, TER, JPEG, BMP, PNG (16-bit ideal), BT, CSV and DEM. We’ll see how I go.
- Implement loading/saving for partial heightmaps (the old ‘load-tile’ method) properly.
That’s my TODO for Terrain at the moment. If anyone has any ideas or suggestions for TerrainModule – now is the time to let me know. Comments on here will do just fine.