• Welcome to World Machine Community. Please login or sign up.
September 18, 2019, 03:02:32 pm


Read the Development Diary for an inside look at World Machine's progress!

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Zehryo

Hi everybody, been years since my last visit....and the last time I found myself using WM. ^^'

Straight to the problem: I have a 500x500 meters extent; in this extent is an island that takes most of the space; over this island I'm placing some hills of the smooth kind.
Although of the smooth kind, I'd like these hills to have some variance in their base shape (not just roundish like a pregnant lady's belly).
To make the hills I used layout lines with specific altitudes for each vertex. To achieve a more interesting look I wanted to exploit the shape breakup feature.

Alas, the shape breakup scale value can't go anywhere below 333m in size, which means every feature would be roughly 4-6 times the size of the hill itself.
I see no input hook named after this parameter, on top of the device, thus I guess using a scalar input is not an option.

I want orizontal distortion, not vertical bumps, thus multiplying it by a perlin noise wouldn't give me the right result.

Question: is there a workaround for this? Or maybe an alternative?

Thank you. ^^
Hi, I've been away for a while, but lately I've been tinkering with WM again, and I've thought of a feature that might come in handy for those who, like me, like to work with games' worldspaces.

So, this is my idea.
Many game engines have serious problems with steep slopes, especially when they're over 20 meters tall, nearly vertical leaps; furthermore, some of them also have mid-low poly terrain resolutions, which makes very detailed maps nearly unusable because of the resulting vertex spikes.
What I used to do in the past, when making worldspaces for Oblivion and Skyrim, was rendering the terrains at a low resolutions (2048 or 4096), and then use them as file inputs to re-render the terrain at the actual resolution I needed, which was (16k x 16k).
This would eventually soften all the features, especially when coupling the file input with a blur filter or a similar effect.

Would it be possible to make an output/scalar object capable of scaling up/down the output resolution?
Like, the project's base resolution might be 2048x2048, while the output would result in a 16384x16384; all the objects until the final output would process the maps at 2048, but the output would re-process the final map at 16384.

ACTUALLY, it would work better as some kind of "inter-objects re-sizer", like an image processor that takes an object's output and gives out a resized/re-rendered version of it.
Something like:
[Base resolution: 2048] -> [Advanced Perlin] -> [Erosion] -> [Resizer: 16384] -> [File Output: RAW map]

This way, one would save lots of RAM and time; and this is just a very simple example. One could calculate complex maps at low resolutions and then resize them to, like, filter other objects' higher resolution outputs (when super details are not needed).
It would work like a crossbreed of the [Height Output] and [File Input] objects, but without an actual disk output/input (not needed, since the map would still get loaded onto the RAM anyway).

Silly idea? Someone already implemented this in a plugin/macro?

PS: an alternative would be giving every existing object a built-in [Output Resolution] control, but it'd be a nightmare to program, I guess.
To speed up my renderings and reduce memory requirements I often bake parts of the chain in separate RAW files and then replace the respective devices with a single File Input.

Everything's ok, as long as the area I'm importing has the same resolution as the main extent; but I often set different extents, if I have isolated isles, so that I can reduce the resolution along with the size and save some rendering time and HDD space.
Since the resulting RAW files are smaller in resolution than the main extent, I have to manually set it to keep the right scale, which is pretty annoying, if I cant remember how many kilometers per side they were.

So, let's say, if my main extent is 4096x4096px and the pre-baked isle is 1024x1024px, I'd like to have a button that sets the size of the input depending on the resolution ratio between the RAW file and the extent, which, in this case, is 1/4.

Would it be possible? =o

PS: please, check this topic too -> http://forum.world-machine.com/index.php?topic=2031.0
I've noticed, when building terrains at very high resolutions, that WM can take a huge amount of memory, when many heightfields are involved at once.

I guess this is how WM manages heightfields when working with several devices:
- it starts with the first device, which may require from one to several heightfields to be calculated
- once the first device is calculated, the result can be one or several heightfields which get stored in memory
- then on with the second device, which may have multiple outputs too, which will all be calculated and stored in memory
- and so on with third device, fourth, etc etc....

This storing has a very useful purpose, which is the one of being able to change some parameters and re-build the terrain starting just from the device that has been changed; as well as being able to select any decive along the chain and check it's specific output.
But this also takes a LOT of memory because every single device has one to several heightfields stored in memory which can be many and at high resolutions.

So I was thinking: why not being able to set which devices should reatain their heightfields in memory and which ones not?

Let me explain.
Let's say we have a chain composed as:
[Layout Generator]->[Advanced Perlin]->[Clamp]->[Erosion]->[Coast Erosion]->[Select Height]->[Simple Transform]->[Height Output]
Now let's say I'm very happy with the layout as well as with the erosion effect, but I want to play with the coast erosion and then with the simple transform to smooth some areas of the terrain.
All I would need is a heightfield for the erosion output to start with, as I would make no use of the ones that precede that device. And yet I have them all stored in memory.
So, according to my idea, I could set all those devices before the erosion one to not retain their heightfields in memory once they're no longer needed for calculations.
Of course I could not step back to check their outputs, but I've already decided that's not a part I want to change anymore. I think this would save a LOT of memory and would also allow me to render terrains at very high resolutions without taking too much RAM: once the output of a device is no longer needed by the following one, all its heightfields simply get unloaded.

I know I can somehow already do that by baking heightfields into RAW files, but this is not be a very dynamic workflow.
Imagine: baking the intermediate heightfield, disabling the calculated devices and then setting a file input to replace them in the chain. But what if I need to change something before that point? I have to re-enable the devices, re-render that part of the chain, save the file again, re-disable the devices, re-load the RAW file again....quite annoying and time wasting, to me.
Also, with the method I'm suggesting you could choose what heightfields to retain everytime you re-build the terrain, so that you can chose what steps of the chain are useful to be checked separately and could eventually need modifications, every single time you build it.
Plus, this would reduce the session status's size quite a lot, I think, as we could write down just the devices' outputs we'll really need the next time we work with that terrain.


I'm trying to build a very large terrain, something like 30x30km and with a max height of just 7.471m.

As you know, the Advanced Perlin device has a very useful parameter called "elevation center" that defines the average height of the terrain features it generates. The problem is that this parameter is only adjustable through the slider; inserting a custom value in the text field on the right doesnt produce any result and the previous value actually gets restored.
For what I've noticed, the difference between the steps at which the value can be set are proportional to the max world altitude (proportion is more or less 1/32). So I could actually decide to reduce the max altitude so that steps are smaller, but then, to maintain the map proportions I should reduce the map size as well, which, in turn, will also involve reducing the Advanced Perlin's features size.
All, good, so far, you just have to plan it before starting to build your chains and everything's ok.

Except I find very hard to work on a map this small, because it doesnt give me the right feeling about features' size.

So I'd like to know if there's any way to improve the "elevation center" value precision besides reducing the max altitude. I've tried using an Integer Generator to input the value, but it doesnt produce any effect.

Any possible solution? =\
I'm trying to reproduce *this* desertic landscape, but I cant seem to think of a chain that could give me this type of results....


Thank you! ^^

I'm planning to build a ~30x30Km wide extent and I need it at a resolution of 16.384x16.384 pixels.

Luckily, part of the features are going to be isolated. Since calculating an extent that wide could take hours and hours, I was planning to pre-bake some features as separate RAW files and embed them through file input devices.

Just to see how better it would work, I've pre-baked a small 3.072x3.072 pixels volcano and embedded it in an empty 16.384x16.384 extent as explained above.

The result is that it took like 30 minutes to calculate the whole thing although a 4.0GHz i7 and 12GB of RAM @1600MHz.

Since the extent is empty and the volcano is just a pre-baked heightfield, I expected it to be pretty fast. More important, in the 3D view I had the clear impression that the volcano had lost most of its details.

So I was wondering if there's any trick to make WM calculate the least possible, when I give it pre-baked heightfields and all it has to do is pasting them together.

Maybe filling the empty parts of the extent with a constant generator....?

Thank you =)
I've noticed, whenever I change the max world height, all the devices along with water rescale their heights, which is VERY disturbing.

Actually, my worst problem is that I would like to be able to zoom in as much as possible in the 3D view, which is the best and most useful visualization method.

By setting a max world height like 7471, though, camera zoom in is limited at a much higher height than the one I need to see small details.

I could, of course, set a lower max height, but then all the devices' values would rescale, giving me weird results and mostly flattened details.

So my question is: is there any way to let the camera zoom in more in the 3D view or to just set all devices' values as unscalable?

Thank you.

I'm trying to make a huge map for Skyrim and I'd like to have a full gamma of possible terrains to spread all over the worldspace, and now it's desert's turn.

A desert is mostly made of sand dunes, so dunes it is. But it seems it's not as simple as I thought, because this (attached screenshot) is the best I could come up with and it's nothing I can successfully repeat over large stretches of terrain.

The problem is the displacement device, which does not add pixels when deforming the terrain, but only moves the existent ones. The result is that once all the pixels have been moved, an area of the extent remains untouched, leaving straight lines to ruin the landscape.

This chain I made is a review and rebuild of part of one I've found here on forums, but it's not enough to cover a whole terrain....

I've also seen the nice results of a macro made by another member, but it's in .dev format which, I guess, is the older WM versions' extension.

Anybody faced this same problem and found his/her own way to build nice and smooth sand dunes that can be used to cover large terrains? =|

Thank you.

I'm trying to use WM2 to build a heightmap for Skyrim.

This software is great and I'm getting better and better at fine tuning my landscapes everyday, but now I'm facing a limitation in Skyrims' engine.

The problem is Skyrim's terrain mesh is not high poly enough to manage too sudden height drops and rises, so I get rips in the mesh when I use detailed maps from WM. Actually it can reproduce details like erosion channels pretty well, as far as the channels' sides are not too steep.

I can select these problematic areas through the slope selector, but then again, I cant take care of them directly.

Is there any way or any device that could help me smooth up these slopes without having to re-set the whole chain to dim erosions?

Thank you =)
Sometimes I feel like I cant afford to wait for over 30 minutes for a build to end, so I just click cancel.....which takes a looooong time to actually stop the work-in-progress!! >.<

Is it my fault, is there any particular reason why WM takes so long to stop? =o
I actually do have an account, but the first thread I've started has been waiting for approval for 10 days....so here I am! ^^

World Machine gives me the possibility to build a terrain in a full heightmap output or build it in tiles.

Might be my impression, but the tiled output takes a lot more time than the one-piece one, so I thought to ask if it's possible to make a full build and then tile it afterwards.

Or if it's possible to implement this feature. =)
Guest Forum / File Input Device: how to?
January 07, 2012, 03:47:57 am
I've made a very generic heightmap with a fractal generator.

Now I'd like to use this heightmap as a base to apply erosions and some filters, but I cant figure how to import and use it in WM2.

I've tried using the File Input Device, but it seems no other devices are going to accept it as an input itself or they just wont work the chain out.

The question is: how may I use this .raw heightmap to build up a terrain?

EDIT: I found it myself!! The problem was the file extension. Image editors use a generic .raw extension for any raw format, but WM uses .raw for 8bits and .r16 for 16bits images. I just had to change the file extension.
Thanks anyway ^^
Ok, I'm really new to WM2, but I've been fiddling quite a bit with it, these days. I've also watched some tutorials, very helpful. But then I've eventually stumbled over a problem....

It's a bit complicated, but long story short, I'm trying to make a heightmap for a game. My problem is that the game has a strange unit conversion method that really confuses me. Anyway I've eventually figured it out and now I'm trying to apply the method to MW.

The fact is: the game has water lvl at 58 meters. Which is perfect. It actually multiplies this height by 2, but it's ok, it's still nominally 58 meters and it has correspondence when I set it so in MW.

Now: I want to set some isles with elevations not taller than ~80 meters. If I just set the various chain elements to produce isles as specified, the .r16 heightmap will still give me very bright areas at the top of the tallest hills....
This will eventually give me some small Everest mounts right in the middle of each island. Pretty annoying.

It seemed that nothing could actually rescale the raw heightmap colors to something less bright, not halving the nominal heights of the hills nor scaling down the top world height. I've even tried to build a square isle as tall as the top height to give MW something as a reference for the 255 white.

Then I went for layouts to build some sort of "workbench" and it somehow worked, just by setting a top height for the layout itself and then scaling the hills consequently. But the heightmap scale is not yet predictable, any hint or tip?

To make it clearer: why, if I set the water at 58 and the hills at ~120 (58+~60), when I produce the raw heightmap I get bright white areas at the tallest peaks? What should I do to ensure the relief above the water wont go crazy in the heightmap?

EDIT: ok, in the time I've been waiting for this thread to be approved, I've kinda solved my problem, so I'll add a new one to this same thread.
Let's say I want to add more layers generators and other "areas" in the same machine, but keeping them separate. I'm still making that game world heightmap and I'd like to set different landscapes, but it seems I cant set two or more chains to co-exist in the same height output without "mixing" them up in some way.