• Welcome to World Machine Community. Please login or sign up.
October 14, 2019, 09:25:05 am


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 - Pluton

I tried to disable "automatically determine tileset dimensions" option in TFI device and set tileset dimensions manually. After saving and reopening WM file I noticed that tileset dimensions data was not saved and it determined automatically.
Feature Requests / Set output files in Automation
January 19, 2015, 05:06:12 am
It would be very usable to set output file paths for output devices in Automation  scripts. Without this feature I have to create as many output devices in WM file as I need. For example now I need 108 output devices.
Another problem is to change paths in this 100 devices if I need. It would be easier to change paths If WM used XML format for tmd files. What do you think about it?
Please, don't reset TFI settings after tileset re-specifying. It's very annoying :)
I tried a script and noticed that I can set a variable only once. If I try set this variable second time nothing is changed.

Here is an example:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<automation version="WMP2">
<load file="normal_export.tmd"/>

<var name="face_selector" value="0.21"/>

<section name="NX LOD5 Export">
<enable device = "nx_output_lod5"/>
<tile number = "1"/>
<build mode="tiled"/>
<disable device = "nx_output_lod5"/>

<var name="face_selector" value="0.41"/>

<section name="PY LOD5 Export">
<enable device = "py_output_lod5"/>
<tile number = "1"/>
<build mode="tiled"/>
<disable device = "py_output_lod5"/>


"face_selector" variable controls Input Choise in Route Picker device. First changing of the variable works fine for any value. Second changing of the variable doesn't work. Is it a bug or I do something wrong?
Feature Requests / Fixed resolution override issues
November 24, 2014, 02:15:08 am
Hi Remnant,
I have some issues with override resolution option.
When I use Relative resolution override everything works fine for any cases. But in some cases I need use fixed resolution (for example, for Input graphs because resolution of sources is fixed). In this case, resolution of devices with this option becomes be always fixed and doesn't depend on render extends. In one project we can have many extends with different sizes in different places.  I suggest using parameter like detail scale instead of using full resolution of device. If we can set a value in meter per pixel It will work for any extends and for any tile builds.
I tried to group my File Output devices into one Macro. Then I pressed Tiled Build button and saw a message that tiled build cannot perform.
Hi there,

I've observed that Tiled File Input device doesn't have option "Resampling Method" as in File Input device. 
It's very important option in some cases. So it's very desirable to add this.

Feature Requests / Alpha Channel Tiling
February 28, 2014, 09:43:58 am
I noticed that alpha-channel of File Input device is not tiled when Outside Behavior parameter is in Tile mode. I would like use it as additional mask channel of tiled textures in my project and now I need use additional File Input device for this purpose. So, Remnant, could you please add this feature? Thanks :)
Hi everyone,
here is a link to an article on procedural content generation in Valley benchmark. This is the second part of the article and it has some information about how we created a terrain by means of World-Machine.

Hello Guys!

I would like to share our experience of using World Machine with you. We have been developing a large scale project based on the real geospatial data. We've already finished the project's first stage and released its preview. The demo was showcased at ITEC 2013 in Rome in the May and it was highly appreciated by the visitors of our booth.
By the way, we have been asked a lot about the program we have used in our project for the landscape refinement. So, we did some advertisement of WM =)   
Your program is the only one which can process a huge amount of the satelites data, but there are some issues to which I want you to pay the attention.

--About the Project--

The project is about the recreation of the really existing place on the Earth surface (based on the satellite data) by means of Unigine engine. The greatest diversity of the free satellite data with the big detailing was introduced in the United States. Thereby, we have chosen the lot of the 262x262km in size in Washington, USA. As a source data for the project we used the following maps: an Elevation map with the 10m precision and a LandCover map with the 30m precision (surface types map, where each type is specified with the concrete color). We made the decision not to use Imagery map since they are patchy and filled with the huge amount of the artifacts, such as shadows, smoke, objects on the surfaces, different light conditions and so on.

Considering the fact, that there was a lack of the given surfaces data accuracy for it realistic representation, we needed to find a way or method how to detail it. Also we needed some supplementary data, such as the trees density mask, terrain materials mask etc. relying on the existing ones. That's why we had recourse to World Machine.

Technical details on the project:
Landscape geometric size - 262144x262144m. Maximum height - 4400m. All the landscape is split onto 16x16 terrains.
Height map resolution - 4m/pixel (it's planned to be decreased to 2m/pixel).
Diffuse texture, Normal Map and Splat Masks (consisting of 5 materials) resolution - 2m/pixel, therefore  the resolution of each texture is 131072 pixels. With the help of the Tile Builder Device we split textures onto 64x64 tiles per 2048 pixels each. 
There is a great number of the objects (trees, rocks, branches etc.) placed on the surface by means of Unigine engine. Each object needs its own bitmap mask responsible for the distribution of objects on the surface. Now there are 7 masks with the resolution of 8m/pixel.
Calculation has taken approximately 3 days on the computer with the following characteristics: AMD FX(tm) - 8350 Eight-Core Processor 4 Ghz, RAM 32 Gb.


The creation of the project has been split onto 2 stages (each stage required its own TMD file):

1. The first stage was about working on the source height map. On this stage we filtered height map from the unnecessary artifacts, detailed the landscape by means of the erosion, additionally detailed the mountain relief, created the sea floor and the snowcaps.

As an input for World Machine (Tiled File Input Device) we set the source height map in VTP BT format (downloaded with the GlobalMapper and split onto the tiles).   
As an output we had the Height Map, Erosion Flow Map, Snow Depth Mask. We merged this maps into RGB16 format texture for further work on the second stage.

2. On the second stage we created the Diffuse map, Normal map, Splat masks and the masks for objects.

   As an input here we set the RGB16 texture, obtained on the first stage, and the LandCover map.

   The main idea of this stage was to split the landscape into the differential areas (sand, rocks, stones, ground, meadows, bushes, snow and etc.) depending on the data from the LandCover map and the Height map. After, each area was filled with textures and detailed by its own principles. There were previously prepared Diffuse and Bump Maps used for the detailing.


--Issues and their possible solutions--

-- Why do I use two files in the project:
1. It's not always necessary to compute the data in the final resolution.
2. Erosion Device working mechanism is terrifically dependable on the resolution you work with. While for the low resolution there will be realistic variegated result, -  for the high resolution the result will be too homogeneous. Besides, when computing with the high resolution we have to use the tiles of the smaller size, and, thereafter, erosion threads cease to be seamless on the whole landscape. (To the point, in my opinion, one of the good methods of creating sufficiently realistic stream canals by means of World Machine is the sequential usage of the Erosion Device for the different resolutions).
3. It's necessary to have already pre-computed data for the some required stages of the work.         

What is required to use only one file:
1. Provide for the work with the different resolutions for each device. As an example, you can see how is it implemented in the Allegorithmic Substance Designer. It will give the opportunity to optimize the calculations if its possible (blur operations particularly need to be optimized), and also provide more complex erosion control.
2. Provide for the cache saving into files on the intermediate stages of the work. As I've read in this forum, this option is being planned.

--Big load time when working with the bitmap data.
Now the second file includes two Tiles File Input Devices. First one full resolution - 32768x32768, second one - 6864x6864. Thus, the time required for the extent opening is about 6 minutes. Hence, if we need to increase the input data resolution or use the additional input data with the high resolution, this time period will be increased to the unacceptable values. We've already covered this problem here -  http://forum.world-machine.com/index.php?topic=2091.0. As I can see, it deals with the cache pyramid creation when working in the Layout View and Explorer View modes.

How to solve the problem:
1. As have been suggested in the forum topic, - add a saving option to already calculated cache data. However, it will take a while especially when using a big amount of data. This process is of the biggest upset when you don't use Layout View and Explorer View modes.
2. Add an option to the Tiled Input Device disabling the cache pyramid creation which will entirely solve the problem with the loading. However, it will limit the usage of the  Layout View mode. But I could enabling it only on the required devices.

--Lack of the opportunity to change or disable the input data interpolation.
As far as I can see for now, if the input texture is bigger or smaller than the output one, bilinear filtration is used by default. But when working with the height maps, bilinear interpolation cause a low-quality result - it would be much better to use trilinear interpolation. Let alone working with the LandCover maps - they don't need any type of filtration, because each surface type has its concrete color. For now, on the pixels seams the secondary colors are coming out, which makes masks generation much more complicated. To minimize such an effect, I'm forced to make quite a complicated filtration in WM.
Thereby, it would be of a lot of help if such an option will be added into the File Input and Tiled File Input devices.

--Integer parameters problem in the Expander and Blur Devices.
If you enable Scale independent option, value of 1 will be assigned to all the integer parameters, which is too big. But there is no possibility of minimizing this values. You can disable Scale independent option at all, but it will cause absolutely different results for the calculations with the different resolutions.

How to solve the problem:
1. Add the usage of the float values instead of integer for this devises.
2. The perfect solution will be to have an option of setting values in meters.

--There is no such device that allows to use the bias/stretching/distortion of the pixels depending on the direction.
Lets take a look at the example of using such a feature. Mountains, for example, are completely different in their size and structure. With the lapse of time, mountains are collapsed and crumbled, and the debris stream from each mountain has its concrete color. Availability of such a device will easily allow to spread this color down along the mountain surface. Besides, it would help to create a dirt debris on the snow surface.
As an analogs of such device there are a Refraction and Offset components of the FilterForge program.

--There is no possibility of working with the relative values in such devices as Clamp and Constant.
For some operations I need to set definite values - 0.5 or 1. But now this values are specified in meters. It means that if you need to change the maximum height of the landscape for some reasons (for example, change the area where the calculations take place), you need to carefully go through all the devices and change this values to the right ones. So, it would be great to have an opportunity to switch between the meters and relative values.

--A large space on the hard drive is needed for the calculations.
1. Temporary files incredibly increase their storage during the calculations. In my experience, temporary files took almost 1TB, when the resulting files were about 200-300GB in size. Besides, the data is saved to the resulting files after being calculated into the temporary files. If the free space on the hard drive has run out, the calculations stop and all the data is lost.

How to solve the problem:
1.Perhaps, the solution for this concern will be to save the files every time after the calculations and clear the temporary area. Also, it would be helpful to add the warning if there is not enough free space on the hard drive.
2. Lack of the option to set the resolution for output data. It would allow to store and calculate the data with the lower resolution.
3. The output data formats for the 8-bit grayscale is not optimal. There is no such a format as PNG low precision. TGA files are always saved as RGBA, though the format allows to store just one data channel.

1. There is an extremely lack of the tool, allowing to select all the devices, groups, nodes and drag them in one action. For now, if I need to paste blocks inside the scheme, I need to do a backbreaking work!
2. In the schemes, we have a huge amount of links, that are intersecting and distract the attention.
As a solution, I would have added such an option, that will allow to make a    connection between input and output blocks without showing all the links, but only implying them. It would simplify the scheme creation and decrease the amount of the links.

--Future Plans--

Now we start working on such objects as lakes, rivers, roads and cities. Obviously, the most appropriate way for it is to use vector data from such sources as Openstreet Map. But even now I can say that World Machine doesn't have tools to work with the big vector data. Tools, available for now, allows to work with vector only manually or based on the limited options. As a solution, we surely will be able to convert this data into the bitmap format. But this bitmap files must be of the high resolution and work with them will hardly be handy because of the big loading time.

I would like to thank you, Stephen, for the continuous work and for frequent updates! But if you want the program to be used in the big serious projects and even became a standart in this area, you should pay your attention to the details. I hope my report will be useful for you.

In World-Machine there is ability to export images with alpha channel but you cannot import images with alpha channel. I think that sometimes It's more convenient to have alpha-channel in a image than use separate file for it.
When we've worked on our Valley Benchmark (http://forum.world-machine.com/index.php?topic=909.msg9556#msg9556), World Machine proved itself perfectly in the creation of a fully procedural terrain of relatively small size (8*8 kilometers).

Now we're working on a new project, where we set the goal of creating much bigger terrain, based on the real setellite data (height maps, color maps and vector data).
In our case, terrain is 262*262 kilometers in size, divided into 16*16 square tiles with the resulting precision of 8 meters per pixel in heightmaps.
When working with this huge amount of source data in World Machine, we ran into the following problems:

When we use Tiled File Input device with small Extents - everything was ok.
But when we're increasing Extents to the size of a whole terrain (262*262km), or switching to the Explorer View, World Machine hangs for a long time.
It seems like it's trying to load all the source files to the memory for no substantial reason. Shouldn't this data be streamed asynchronously?
Probably, it's not a big deal, but for the tiled output we have to set Extents to the size of a whole terrain and wait until it finishes to load.
And this is getting even worse as the size of the source data increases and when we place multiple Tiled File Input devices in one World graph.

It turned out that the Layout Generator node works very poorly with SVG files:
- it works VERY slow with big SVGs (around 100 000 points in dozens of path objects), and no Tiled Layout Generator node available
- paths are polygonized inadequately (it makes holes in completely closed paths, where they shouldn't appear)
- it doesn't work right with compound paths (that are intended for creation of "donut holes" in shapes), but there's a workaround for that: two Layout Generator nodes and one Combiner node can be created
- it can't open SVGs saved with Global Mapper. Because of that we had to create a python script that converts SVG files saved with Global Mapper to SVG before they could be fed to World Machine
- it can't undo any actions performed in Layout Generator editor
- there's no way to set common Brush Properties for all shapes in one Layout Generator node. Acquire from Selected/Give to Selected can't copy/paste these properties from one shape to all selected ones (it can be done only one at a time)
Although, any vector graphics editor (Inkscape, Xara Photo & Graphic Designer, etc) can handle these tasks very quickly and without any problems.

Problem with coast erosion. The minimal value of 0.05 is too big for beaches given the scale of real-word geo data.
Real beaches have the height range of around 3 meters, but the minimum value of 0.05 gives us the height range of dozens of meters.

For the Blur device with the scale-independent checkbox set, the minimum value of 1 is too big for real-word geo data.
It'll be ideal if we could set the blur radius in meters.

Minor problems we've encountered:
- Copying device removes connected route points
- There's no option to set color values in the numerical format in Colorizer device

Solving this problems will help us a lot in creation of our new proj and we will be very grateful.

If these issues could be solved, that'd be a tremendous step forward for using WM in serious simulation projects. It would allow for creting terrains of extremely big scale that are based on real geographical data. WM is a really great tool that we as technical artists enjoy using, it just needs some features targeted to big-scale projects.