🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Golem3D editor

Published January 03, 2006
Advertisement
Now that things have settled down a little, I've found more time for programming. I've been working on the old Golem3D heightmap editor as mentioned before, and I've finally gotten the editor working with the new blending engine. It actually works pretty well so far. When terrain texturing is selected, the current brush is used to apply the currently selected layer of terrain onto the map, using an interpolation process similar to the manner in which elevation is 'grown' so that successive applications increase the opacity of the brushed area. I still need to implement an erase tool so that I can erase layers that have already been applied, but all in all I think it works well as is and I see no need for more complicated terrain brushing.

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]
Previous Entry Gragaaaagh!!!
0 likes 1 comments

Comments

NickGeorgia
Looks nice!
January 03, 2006 09:31 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement