[Released] Terrain Smith (alpha 0.1) - Terrain stamping system.

I really hope I can upload a new version to the asset store before the end of the month.

Here’s a quick overview of some new things.

1) Robust chunk system.

  • Can load and unload chunks quite quickly. (Depends on tile resolutions.)
  • Stamps automatically work across all chunks they cover.
  • Chunks are saved in a custom format that is almost 5x smaller than Unity terrain. (A 56.6 mb Unity terrain saves as a 12.3 mb file.)
    I accomplished the small file size by first converting all height + alpha + detail layers to textures, and encoding these as PNGs, and then compressing the combined byte array. This method might be slightly lossy. Unity detail map data is in the range of 0-14 for some reason. I convert that to 0.0f-1.0f and place them in the RGBA of a texture, then encode to PNG + compress. I did a quick test of the average difference between a saved maps detail and a loaded maps and got: 0.0006134547. There was no visible difference so it’s a worthwhile trade off (imo) for ~5x smaller files.

    The green and red nibs are buttons for loading + unloading terrains.
    I also began on a GUI, which will have common tools + maybe a minimap for more easily moving around + orienting yourself. The minimap looks noisy because I use encoding on the height maps values to store them across all 4 texture channels.

2) Mountain sculpting video.
With a few splines to define height limits, and a noise generating material you can quickly sculpt mountains, craters, lakes or whatever else wherever you want.
Note that this is runtime speed. I want you to see results as quickly as possible.

3) Path placement video.
Notice the blend function slider, which is how much to blend the path with the surrounding terrain.
Not shown is that paths can use a noise filter and define how strong the noise is per control point.
This tool is also great for creating rivers, or canyons.

4) Point area system.
This is a general purpose system for mass placing objects within a defined area.
It could be for placing farms with neatly ordered rows trees/plants, or for clustered forests that can have smaller trees at the edges.
It will have filters for responding to terrain (height, slope, normal, splats, details…), GameObjects, game layers… other point area systems?

2 Likes