• entries
    436
  • comments
    1179
  • views
    763108

Accidental Heightmap Editor update

Sign in to follow this  
JTippetts

141 views

( Hi Stacey! )

I just uploaded a new version of the Accidental heightmap editor. This release adds a few minor UI tweaks and a little feedback.

* Add a cross-hair to the center of the brush cursor for more precise targeting.
* Add some UI feedback on cursor position and map dimensions, via an overlay.
* Add support for 3 new libnoise extension modules: TurbMask (which applies turbulence to a module source, maskable via a secondary control module), Fault (which partitions the input coordinate space with a specifiable plane, and returns 1 of 2 specifiable values based on what side of the plane the input point lies) and Buffer (which acts as a proxy for a CFloatArray2D object, mapping a 2D float array buffer to a libnoise-style module source).
* Add the capability to save and load individual float buffers to file: dumpBufferToFile(buffer, filename) and loadBufferFromFile(buffer, filename)
* Implement an iterative smoothing filter for quicker erosion blurring than Gaussian blur provides, for quick and dirty terrain erosion: filterFloatArray(buffer, filter, iterations)
* Implement quick inversion of a buffer scaled to the range [0,1]: invertBuffer(buffer)
* Implement sub-array operations for combining 2 CFloatArray2D buffers together, extensions to the CArray2D<> template class itself:
** copyFromSub(buffer, x, y)-- Copy the contents of buffer into the current array at the (x,y) coordinate location
** addArraySub(buffer, x, y)-- Add the contents of buffer into the current array at (x,y)
** subtractArraySub(buffer, x, y)-- Subtract the contents of buffer from the current array at (x,y)
** multiplyArraySub(buffer, x, y)-- Multily the contents of the buffer with the current array at (x,y)
These extensions allow easier manipulation of smaller buffers as pieces of a larger map, and replace some much slower Lua code to perform the same. These operations could be performed using the general-case rasterization operations, and with greater flexibility, however the setup for a rasterization operation is slightly more complex so these extensions add some simplicity.

This release also includes a few older Lua scripts as part of my road building code, described in detail here and in the journal entry preceding that one. I'm re-working all of that old road stuff to integrate it with the new interface and CFloatArray2D class, and to make it a more integral part of the foundation code for the editor, to parameterize any kind of road and generate the road as simply as possible.

Pickup the latest build here.
Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now