L3DT users' community
Large 3D terrain generator

Humble Suggestions...

It doesn't hurt to ask...

Humble Suggestions...

Postby ejgodwin » Wed Feb 20, 2013 11:29 pm

Being new here, I don't want to sound greedy. I'm fully aware of the huge effort to make these changes, as I'm a programmer myself. And bear in mind that there's probably something I haven't discovered yet that might solve some of the issues I'm facing.

My goal here is to create a 3D version of a map I've created for a novel I'm publishing later this year. I'd like to explore the possibility of generating realistic scenes and even animations to help promote my book or enrich the reading experience. (Not sure yet how practical this will be, I just thought it might be cool.)

With that in mind, I've created a huge L3DT map with a detailed horizontal scale: 6400 x 4864 x 114. It equates to about 750km in width, and currently takes up over 100MB on disk. I've got the basic elevations in place, using Photoshop and gray scales from the original map. I can't really use anything but the heightfield map, at least not yet, as my world is already "designed", so to speak, and the specifics of the plot rely heavily on existing geographic features. So at this point I spend most of my time in Sapphire to get the details right. Because of it's size, there are a few things that are slowing down my progress, and I have a few suggestions that might improve this. Again, keep in mind that I might be missing a better way to accomplish this.

1) An ability to turn off the refresh of the heightfield when I exit Sapphire (or at least the ability to save the project from within it). I'm a big believer in frequently saving my changes, and it's a bit frustrating to wait for the screen to refresh or to cancel it just to save to disk. It often takes close to 30 seconds for the refresh, especially if I have my existing map as an image drape. (I have a 4-core AMD with 10gb of memory.)
2) An ability to remember the geographic location I was last at in Sapphire. I can use Teleport presets, but it gets pretty tedious to keep using it to get back to where I left off.
3) An ability to apply a Perlin noise (and maybe fractal) to the entire landscape. The map has a LOT of mountains in it, and I spend a huge amount of time getting them to look right. Here is where I most suspect there might be a better way to accomplish this (I still don't fully understand the ZeoGraph tool), but I haven't discovered how yet.
4) Rivers and lakes. It's impractical trying to get the water flood tool to obey my existing landscape, as a lake at 1000m that empties into the ocean via a long, sloping river ends up flooding the coast. My guess it's because I didn't originally design the map in L3DT, so the geographic rules don't fit what the water-flooding calculations are expecting. However, it would still be nice to have the same kind of direct control over water that I enjoy with heights in Sapphire -- "put lake here", "draw river there", and so on, so that it shows up blue just like the zero-altitude for sea level does.

So there's my "Christmas list". I still really like this program. Everything else I've tried has way too steep a learning curve. Thanks!
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Re: Humble Suggestions...

Postby Aaron » Thu Feb 21, 2013 1:19 pm

Hi ejgodwin,

Thanks for your feedback and suggestions. I always find it really useful to hear from new users; it's a chance to re-discover and re-evaluate the old quirks and annoyances that longer-term users have come to accept or work-around. Often I find myself thinking, "yeah, I should have fixed that 5 years ago." And so it is in this case.

If I may answer out of order:

2) An ability to remember the geographic location I was last at in Sapphire.


You're right. I've just added this to the latest developmental build (L3DT Pro 13.02.0.0), which is on the pro downloads page now (see your sales/registration receipt e-mail for the link).

3) An ability to apply a Perlin noise (and maybe fractal) to the entire landscape.


Done (Perlin only, though). The latest build includes a new graph for this. In the latest build, open your project, then select the 'Graphs->More graphs' menu item, and select the 'HF_PerlinOverlay' option. You will then be prompted to enter the Perlin parameters, and when you click OK, it will generate and overlay the perlin noise over the heightfield. If you don't like the result, you can use the 'undo' button (or CTRL+Z) to undo the perlin noise.

1) An ability to turn off the refresh of the heightfield when I exit Sapphire


Thank you for bringing this problem back to my attention. I'll have a thinker about it.

4) Rivers and lakes... "put lake here", "draw river there", and so on, so that it shows up blue just like the zero-altitude for sea level does.


The lake tool should work, regardless of where the height data was generated. The only caveat is that the lake surface must be flat, and therefore can't overflow into a river (sucks, I know.) Rivers are a much harder task, as they're not flat, and flooding them is quite challenging, especially with a realtime interactive tool. I'll think about it some more.

Anyway, thanks again for the suggestions and feedback. Please let me know if you find any problems with the changes in the new build.

Cheerio,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Re: Humble Suggestions...

Postby ejgodwin » Thu Feb 21, 2013 1:54 pm

Awesome, thanks!
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Re: Humble Suggestions...

Postby ejgodwin » Thu Feb 21, 2013 4:20 pm

I've tried out the Perlin Overlay. The positive side is that it gave me a fairly good understanding of how the ZeoGraph interface works. The negative side is that I'm still struggling to get it to do what I want. My first try at it created huge oceans all around the mountain ranges. Of course, this is exactly what would happen if the Perlin tool could be expanded to map size, especially when the map has large plains adjacent to the mountain ranges (like Colorado). But I needed to add perlin noise, not average it.

So I made a copy of the graph and took a close look at the filters to try to understand the process and tweak it to get what I want. The first thing I looked at was the CombineMaps2 filter, and saw the option "Add" in the operations drop-down. I assumed that meant it's adding to the height, but that's not what happened. Perhaps I'm misunderstanding this operation, and it's adding negative values as well, which of course lowers height. I tried the "Max" operation, but it had very little effect on the height. I tried variations on the dialog that asks for FeatureScale, etc., based on the Perlin2 help page guide. My biggest confusion is what "Range" means. Does it mean the range of heights the Perlin is applied to, or does it mean the variation in height of the Perlin algorithm? If it's the map range, then it might be good to add a minimum value, that way the process can be applied exclusively to higher elevations.

Just to be clear, I've attached two Sapphire screen caps of a crude attempt with the Perlin tool to demonstrate the effect I'm after. Other than this struggle, the features you've added are already helping. Thanks!

Smooth_Mountain.jpg
Smooth_Mountain.jpg (34.41 KiB) Viewed 32859 times
Rough_Mountain.jpg
Rough_Mountain.jpg (43.17 KiB) Viewed 32859 times
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Re: Humble Suggestions...

Postby Aaron » Fri Feb 22, 2013 11:44 am

Hi Ejgodwin,

It sounds like the problem is that the Perlin noise is generating features that are too large. I recommend you reduce the 'FeatureScale' parameter to something much smaller. A value of 0.05 would reduce the period (i.e. size) of the largest octave to 5% of the map width. Smaller still may be better for you. At the same time, you'll also need to reduce the 'AltitudeRange' parameter. The default is 100 metres, which is going to be far too large for the sort of noise you're talking about. Maybe try 5 and see how you go.

I assumed that meant it's adding to the height, but that's not what happened. Perhaps I'm misunderstanding this operation, and it's adding negative values as well, which of course lowers height.


Correct. The 'SetRange' filter is clamping the output of the Perlin filter to a height range of -AltitudeRange/2 to +AltitudeRange/2, so the average displacement is around about zero, but locally the terrain will go up or down.

My biggest confusion is what "Range" means. Does it mean the range of heights the Perlin is applied to, or does it mean the variation in height of the Perlin algorithm?


The latter. I apologise for the confusion; I probably should have documented what the parameters actually do. 'Twas a bit of a rush job.

Best regards,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Re: Humble Suggestions...

Postby ejgodwin » Sat Feb 23, 2013 6:58 pm

Ok, with your help (thanks!), and a little more tweaking, I think I can get near to what I want. However, it would be really great if I could restrict the effect to say, 2000m & higher. Is there a filter I can add to the existing graph that might do this?
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Re: Humble Suggestions...

Postby Aaron » Mon Feb 25, 2013 1:35 pm

Hi Ejgodwin,

Yes, you can mask the Perlin effect by supplying a mask map to the 'CombineMaps2' filter in the graph. You could generate the mask map in a number of ways, including within the graph itself (as demonstrated in this graph), but it may be easier to use the mask generator interface ('Resources->Masks->New mask[i]' and '[i]Operations->Mask maps->Generate masks...'. Apologies, the documentation isn't finished for that) You can then feed the mask into the 'CombineMaps2' filter using a 'Project.GetProjectMap' filter after the mask has been generated.

If you're prepared to wait a day or to, I can build you a nice mask generator and graph for this.

Best regards,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Re: Humble Suggestions...

Postby ejgodwin » Mon Feb 25, 2013 8:12 pm

Thanks, that would be cool. I took a look at the graph you mentioned, and it's a bit complicated, so I don't really know how to incorporate it into what I have.
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Re: Humble Suggestions...

Postby Aaron » Tue Feb 26, 2013 11:27 am

Hi Ejgodwin,

On the Pro downloads page you will now find L3DT Pro 13.02 build 1 (please consult sales/reg receipt e-mail for link), which includes a new mask and graph for you.

The new graph is called 'HF_PerlinOverlay_Masked'. This graph will automatically generate a mask map that will be used to limit where the perlin overlay is applied. The mask map is generated from a 'mask generator' file (AltitudeThreshold.mask.xml), which you can edit from the 'Resources->Masks->Edit mask' menu item. The default settings for the AltitudeThreshold mask go from a mask value of 0% at an altitude of 100m or below, up to a mask value of 100% for an altitude of 600m or above (that's 100m minimum + 500m ramp, in the editor). Please feel free to tinker with these values.

Please let me know if the results are any better.

Best regards,
Aaron.

PS: Please note that I haven't changed the default settings for the Perlin overlay in the graph, so you'll still need to change the feature scale and altitude range to suit your needs.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Re: Humble Suggestions...

Postby ejgodwin » Tue Feb 26, 2013 1:19 pm

Thanks, I'll give it a try later this evening.
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Re: Humble Suggestions...

Postby ejgodwin » Tue Feb 26, 2013 11:41 pm

Aaron, first results are very promising. I think I'll make a copy of the graph & play around with combining a multiridged Fractal with the Perlin output before masking it against the HF.
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Re: Humble Suggestions...

Postby ejgodwin » Thu Feb 28, 2013 11:42 pm

Well, I couldn't add a Fractal filter without screwing up the graph, so I tried tweaking the Perlin parameters. The altitude mask works great, but what I'm finding is that the perlin is too uniform to get that "craggy" look for mountains:

Smooth_Mountain.jpg
Smooth_Mountain.jpg (71.23 KiB) Viewed 32785 times
Rough_Mountain.jpg
Rough_Mountain.jpg (97.46 KiB) Viewed 32785 times

If I understand the parameters well enough, seems like a random range variation (min/max) to the octaves and featurescale might produce the desired result. But I have no idea if that's even possible or worth the effort.

These are the parameters used in the above screen shot:
HF:
6400x4864
Horizontal scale 114

XML mask:
100 min, 6000 minbevel

Perlin:
FeatureScale 7.5 (I know, it's a huge value, but I've tried everything from .01 up to this. Same general effect.)
Octaves 15
Persistence 0.90
AltitudeRange 3000

____________
Edit: Another possibility is that when I manually edit, the Perlin algorithm is based on the already varied terrain, when the filter creates a whole new, blank Perlin noise map based on a flat terrain. Perhaps there's a way to use the existing heightmap as a guide for the Perlin calculation, but only by slope variation and not height.
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Re: Humble Suggestions...

Postby Aaron » Wed Mar 06, 2013 3:19 pm

Hi ejgodwin,

The noise on your map appears to have too high a spatial frequency. This can occur if the feature scale is too small, or if you have too many octaves with a high persistence value. The persistence value certainly appears high (0.9). Normally this should be 0.5 or smaller. Larger values will give much stronger high-frequency noise.

For reference, the perlin settings used in the perlin brush tool are 3 octaves with a persistence of 0.5. The feature scale varies with brush size, so I can't quote a number there.

Edit: Another possibility is that when I manually edit, the Perlin algorithm is based on the already varied terrain, when the filter creates a whole new, blank Perlin noise map based on a flat terrain.


No, it's the same algorithm. The Perlin overlay in either case doesn't care about the existing terrain.

Perhaps there's a way to use the existing heightmap as a guide for the Perlin calculation, but only by slope variation and not height.


Sure, you'll just need to change the mask that's generated to be a function of the slope rather than the altitude. That's a setting in the mask editor (see 'Resources->Mask->Edit mask').

Cheerio,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Re: Humble Suggestions...

Postby ejgodwin » Thu Mar 07, 2013 2:40 am

Helpful info, thanks. Looks like the slope mask might do the trick ... the only question I have, what does the "ramp" parameter signify? I looked on the help page and it didn't really say.

Also, and maybe this isn't the right place to ask, but I've been using the texture editor in 3D mode, and the display doesn't update until I close the tool selection window. Is this normal?
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Re: Humble Suggestions...

Postby ejgodwin » Fri Mar 08, 2013 12:14 am

I've been noticing error logs when in 3D Mode:

Code: Select all
CsTextureMap::InitMipmaps error:
 - cannot get mip level

CsTextureMap::LoadFromMosaic error:
 - cannot initialise mipmaps

CsTextureMap::GetMipLevel error:
 - cannot get mip level '2' (ID = 0, step = 2, max = 8, nLevels = 0)

CsTextureMap::RefreshArea error:
 - cannot get mipmap

etc...
Don't know if this is related to the texture editing problem.
Also, L3DT often doesn't shut down properly ... getting the "L3DT 13.XX has stopped working" message. (Windows 7 x64, desktop Aero mode)

Ed
User avatar
ejgodwin
Contributing member
 
Posts: 27
Joined: Mon Feb 11, 2013 5:31 pm

Next

Return to Feature requests

Who is online

Users browsing this forum: No registered users and 5 guests

cron