Next up on the list is to fully integrate the scripting interface, and expose some useful stuff to the script engine to allow canned scripts and user custom scripts. I also need to implement the base noise pass which is used to 'bumpify' the terrain, since editing using the cliff tool creates extremely smooth elevational changes. A little noise boosts the realism of the thing.
I also need to reimplement the blur system. I want to make it use the same set of brushes that the terrain and cliff tools use, and that will mean modifying the internals of how I do it. Previously, I was using selectable Gaussian kernels (3x3, 5x5 and 7x7 sizes) and selectable affected areas, and applying the kernel convolution to each heightmap vertex within the affected area. It worked well, but if I want to use the bitmap brushes I will have to change it. I'm thinking of using a set (perhaps 5x5, since that is what I used the most) Gaussian kernel, and applying it to all vertices within the brush area, weighting the actual kernel matrix by the brush pixel element to modify the degree of blur applied to a given element. This should work out fairly well in theory; in practice, we'll have to see. [grin]
Anyway, I've got a couple screens showing the new editor in action. So here you go:
The black buttons are selectable brushes; an index file of brush bitmaps is loaded at init, so that the user can insert his own custom brushes as desired. Brushes must be 49x49 pixels in size, 8-bit greyscale TARGA format files. My set of brushes now is fairly small, but that is on the todo list.
One other tool I want to implement is a point list for generating polylines within the editor. Left clicking will select a point and place it in the list. This will be useful later on, when the scripting system is done and I can implement various canned effects such as road building based on the algorithms described earlier in this journal. But first, I have to finish implementing the export to TARGA functionality, and clean up the New/Save/Save As functionality, etc... Still a lot of work to do on this thing. [grin]