Tweaking height maps.

Tweaking height maps.

Discuss maps & map creation - from concept to execution to the ever elusive release.

Moderator: Moderators

User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Tweaking height maps.

Post by RogerN »

HeightMapTweak 0.1 download here:
http://spring.jobjol.nl/show_file.php?id=1257

I'm developing this application in order to perform handy operations on height maps. Technically there's nothing you can do with this program that you can't do with Photoshop. The goal, though, is to provide convenience and shortcuts that you can't get from Photoshop. For instance, this application can:

- Read and write 16-bit raw files used by mapconv (in addition to standard .BMP and .PNG formats)
- Perform all operations in 16 bits, so your height map stays silky-smooth

The feature list is pretty small at the moment. I've still got quite a few more intended, and your ideas are appreciated. But for now, the program provides the following features:

Add noise
You can add random noise to some or all of the image. You can control the graininess, amplitude, and frequency of the noise.

Add turbulence
Turbulence is a different type of noise which distorts your image. You can use turbulence, for example, to make a straight area into a curvy one.

Stretch slopes
If you want to make a cliff steeper then this is the tool you want. After setting the min and max elevations, this tool will "stretch" the values in-between in order to make them steeper. Also, the min and max elevations are automatically initialized from the selected area.

Gaussian blur
Just a regular blur, but in 16 bits. It's kindof slow at the moment due to lack of optimization.

Selections
The selection tools (rectangle and free-form select) work just as you would expect in any image-processing program. You can feather selections, and all of the above tools will operate only on the selected area (unless nothing is selected).
User avatar
Das Bruce
Posts: 3544
Joined: 23 Nov 2005, 06:16

Re: Tweaking height maps.

Post by Das Bruce »

Instacrash every time. :(
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

Do you have .NET 2.0 installed? The program is written in C#, so it requires the .NET framework. Failing that, what is the error message?
User avatar
Das Bruce
Posts: 3544
Joined: 23 Nov 2005, 06:16

Re: Tweaking height maps.

Post by Das Bruce »

It appears to be, as in it is in the uninstall list.
Attachments
error.JPG
error.JPG (27.08 KiB) Viewed 4823 times
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

Updated: Added a Path tool, which may be useful for creating ramps. It draws a gradient between two points. You can define a straight line or a free-form path. The width of the path is configurable along with its falloff period.

Das Bruce: It looks like you're missing a DLL. Are you able to run the CaDownloader?
User avatar
Das Bruce
Posts: 3544
Joined: 23 Nov 2005, 06:16

Re: Tweaking height maps.

Post by Das Bruce »

Yes, it is running now.
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

Das Bruce: Now that I think about it, the application might also require .NET version 1.1 (I'm using an older DLL that hasn't been recompiled with 2.0 yet). Do you have that installed also?
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

OK, I've updated the application to v0.3. The references to the .NET 1.1 assemblies have been removed. This should (hopefully) fix Das Bruce's instacrash.
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

Updated: Added a couple new selection commands, and an erosion command. This is similar to the command-line erosion tool that I released a LONG time back, but produces (IMO) nicer results.
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Re: Tweaking height maps.

Post by Argh »

Hmm. Might want an erosion command for the next World Builder demo, it's a pain to do that by hand. Can 8-bit heightmaps be converted with this application? And can the effects be applied only to a given area, or better yet, applied with a brush?
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

Might want an erosion command for the next World Builder demo, it's a pain to do that by hand. Can 8-bit heightmaps be converted with this application? And can the effects be applied only to a given area, or better yet, applied with a brush?
Yes, it can read and write 8-bit height maps. You cannot apply the effect with a brush, but you can select a specific area to apply erosion.
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

A couple of examples of the erosion tool output:

Image

Image

Both of these were created entirely with the HeightMapTweak application. Use a path or a feathered selection to create an initial "mountain" shape with a gradient slope, then apply turbulence (for variation). Finally, use the erosion tool to get the weathered effect.

Finally, here is a landscape that was created with Noise + Erosion:

Image
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Re: Tweaking height maps.

Post by Argh »

That second example's what I need, specifically. Cool, I'll give it a go tonight, I'm about done with the current example map, so it's time to make that one...
BaNa
Posts: 1562
Joined: 09 Sep 2007, 21:05

Re: Tweaking height maps.

Post by BaNa »

Hey this is very sweet. Nice work!
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Re: Tweaking height maps.

Post by Argh »

Trying it out. No crashes yet. A few random errors, but they're mainly resulting from me doing something stupid. Quibbles / Questions:

1. Erosion seems to take bloody forever. Figured out that you must use RAW if you want it to get done within anything like a reasonable timeframe, which seems odd- shouldn't an 8-bit grayscale operate significantly faster for this process, if rougher in result? Should I be expecting it to take 10 minutes to run an erosion pass on a 513 heightmap? Seems excessive, tbh. And how does the angle control work? I'm used to making mountains with airbrushed work... how does erode "know" about the entire mountain, and erode properly?

2. I'd like to see a 3D display of the results, by just displacing a mesh (yeah, I know, we're talking millions of triangles here, but meh, I'm going to have to do this later on anyhow, and this would give me a preview).

3. I'd like a mirror command for selection areas- mirror horizontal, vertical.

4. You cannot left-click and pan the preview image, to see the result. Is a pain with large images, since if you edit in a corner, you'll never really be able to see what it's doing.

Overall, though, this is a fun tool. Hopefully I can get the results out of it that I need...
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

Erosion seems to take bloody forever.
Yes, it does. You can speed it up significantly by selecting a smaller area (remember to feather the selection, though, or you'll end up with seams).

Also, it continues to perform erosion until the "stop" criteria has been met... and the stop criteria is a bit over-zealous at the moment.

The next version will allow the user to specify a maximum number of iterations to perform. Also, a "Stop Now!" button is probably in order.
shouldn't an 8-bit grayscale operate significantly faster for this process, if rougher in result?
The file format shouldn't matter. Everything gets converted to 16-bit when it's loaded. If you save the changes then it'll be converted back into 8-bit.
Should I be expecting it to take 10 minutes to run an erosion pass on a 513 heightmap?
That sounds like a stop-criteria issue. Did you have a lot of steep cliffs to begin with? The tool continues eroding the cliffs until there are no more "steep" cliffs. As I said before, the next version will have more control over when to stop the erosion.
I'd like to see a 3D display of the results, by just displacing a mesh (yeah, I know, we're talking millions of triangles here, but meh, I'm going to have to do this later on anyhow, and this would give me a preview)
Yes, that's also on my wish-list. It may be a while before I'm motivated enough to tackle such a large project, though. I use POV-Ray to preview my height maps in the meantime (above screenshots were created with POV-Ray).
I'd like a mirror command for selection areas- mirror horizontal, vertical
That's simple enough to add. What are you doing, exactly? Do you have a symmetrical map or something?
You cannot left-click and pan the preview image, to see the result. Is a pain with large images, since if you edit in a corner, you'll never really be able to see what it's doing.
Yeah, the preview needs work. It'll be improved when I tackle the long list of usability issues that I was too lazy to fix for the first release.
User avatar
Argh
Posts: 10920
Joined: 21 Feb 2005, 03:38

Re: Tweaking height maps.

Post by Argh »

Yes, it does. You can speed it up significantly by selecting a smaller area (remember to feather the selection, though, or you'll end up with seams).

Also, it continues to perform erosion until the "stop" criteria has been met... and the stop criteria is a bit over-zealous at the moment.

The next version will allow the user to specify a maximum number of iterations to perform. Also, a "Stop Now!" button is probably in order.
Very cool. That's almost certainly what's going on. I'll remember the feathered selection thing, too.
That's simple enough to add. What are you doing, exactly? Do you have a symmetrical map or something?
Well, I almost always include some explicit symmetry, yeah. I prefer maps that are designed that way.
Yeah, the preview needs work. It'll be improved when I tackle the long list of usability issues that I was too lazy to fix for the first release.
I would appreciate that. And, while I'm bugging you about stuff, can you make it possible to zoom in and pan on the main UI, too? I hate having to move my face right next to the screen to see what I'm doing, heh ;)



Oh... and to keep you motivated... here's what I made, all grumping aside... just an early WIP, mind ye...

Image
User avatar
hunterw
Posts: 1838
Joined: 14 May 2006, 12:22

Re: Tweaking height maps.

Post by hunterw »

make the volcano sides kbot walkable ftw
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

Argh wrote:
And, while I'm bugging you about stuff, can you make it possible to zoom in and pan on the main UI, too?
You mean you didn't just press buttons until you figured out how to do it? :)

You can zoom in and out with + / -. Pan the map by right-clicking and dragging.
User avatar
RogerN
Posts: 238
Joined: 24 Jul 2006, 23:29

Re: Tweaking height maps.

Post by RogerN »

A note about the slope maps: if you hadn't noticed from my other thread yet, the slope map created by this application doesn't match up with what Spring uses for unit pathing. Adjusting the angles in your map settings doesn't help because the method I use to calculate the terrain slopes yields different results than Spring's.

In other words, don't use the slope map for anything important. I've already fixed it in my development version so that it matches up 100 percent with Spring. Once I've finished a few other fixes then I'll release an update.
Post Reply

Return to “Map Creation”