Heigh map manual editing


photo

Recommended Posts

Honestly landscape terrain heigtmap edit tool needs some UI refactoring, I have huge diffuculties to do anything with it. It also behaves in unpredictive way, sometimes height parameter is at interval 0-1, sometimes is 500 (UI can set only 0-1, but manually, or by picking heigh alt+lmb  you can put there anything), sometimes you can pick height from neightbouring lmap, sometimes not. 

After 30 minutes of trial and error I ve found, that when switching from addive to alpha blend mode you need to manualy change height parametr to some reasonable number and have this on mind whole the time. I am still not sure what is difference between opacity and height when editing in additive mode. That UI is mixing everything together and it is very confusing. I would recommend different approach. Have set of separate brushes each with only relevant parameters. Basicly addition brush, substracting brush and leveling brush (for leveling terrain to given height) in addition to current smooth and eraser brush. So I can switch between brushes with already set parametres and dont have to adjust fields like height all the time.

Also it seems, that eraser brush doesnt do anyting. My expectaion was, that I use eraser brush to remove height data to level level inset lmap (alpha blend mode) with main lmap. But it doesnt do anything and I am quite sure, it was working some time ago.

Edited by demostenes
Link to post

Hi Jirka,

Thanks for the feedback. Much appreciated!

When we designed this tool we operated with the very common abstractions that every artist should be familiar with (how alpha blend works and how the additive blending is done). We agree that some of the use-cases that you mention can be fixed by some UX/UI adjustments and new improved brushes.

We will continue to gather additional feedback during this year and see how we can improve this tool in the future updates.

Regarding the eraser brush, it works only when you are using Heightmap with opacity. Maybe we need to make this more clear in the documentation / tooltip. If you have the opacity enabled - we need to check the reproduction.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to post
Posted (edited)
4 hours ago, silent said:

Regarding the eraser brush, it works only when you are using Heightmap with opacity. Maybe we need to make this more clear in the documentation / tooltip. If you have the opacity enabled - we need to check the reproduction.

Thanks, It wasnt turned on. What exact role of opacity is there?

I think terminology is not issue at least in my case. My point was regarding real usage (productivity). Currently when switching from leveling to add/substraction mode, I need to adjust height all the time. Better to have separate brushes with independent parametres, so I can just quickly change between brushes. It took me suprisingly lot of time to get this tool under control (unlike tool for older terrain types) and this is imho type of tool, which must be absolutelly intuitive, anybody should be able to use it without any knowledge in 30 seconds...

Edited by demostenes
Link to post

Opacity can be useful for smoother blending between two insets. You can check an example texture in Art samples -> Landscape -> High-resolution_terrain_insets world:
image.png

By controlling black to white gradient in opacity mask you can define smooth transition between 2 lmaps (current lmap area is defined by white color).

Thanks!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to post
Posted (edited)

Ok, thanks for explanation! So generally I can use this to workaround lack of different blending methods like MAX.

Edited by demostenes
Link to post
  • 4 weeks later...
Posted (edited)

We are preparing new terrain concept for our game. After some study, we would like to do following setup (same setup was used also by serveral AAA titles, so it probably makes sense). 

1st layer for procedurally generated terrain and mask in WM.

last layer for manual overrides of layer(s) and masks bellow.

In ideal world, we would also like to use other two layers, one for high res insets and other for procedural overides for things like roads and rivers (music of future, but doable in Houdini....), anyway for now lets keep just two. This setup has advantage of separating user (and procedural) edits from master map. Also It keeps doors open in case procedural part of terrain is changed in reasonable ammount (this can be achieved, fine tuning is usually matter of meters and textures are no issue).

 

Unigine terrain supports layers, so this is in theory possible. I ve tried to make such setup and it is possible, but achieve that "override" is not perfect.

If this layer is in aditive mode, add or substract height indeed works, deleting override by leveling height to 0 too, but leveling height to given level not (it just adds the height to terrain,which is indeed logical). So in case I want to have all capabilities (add, substract, set, delete), I need to make this setup: 

I have to create second empty layer in alpha blend mode with black opacity. 

If I want to edit some place, I need to:

1) pick height of current terrain, paint it to the overriding layer

2) via opacity and smooth blend this part with layers bellow

3) make edits

In case of delete user changes I need to level terrain to 0 and delete opacity. This can work for big areas like cities, but for thousands of small changes in whole world? So better setup is just aditive mode.

What we would like to do:

1) Set constant height in additive mode (should be possible with calculating differences for each vertex)

2) Other changes to brush logic

3) 3D brush preview (what will happen after using brush, this is nice to have)

Is this possible with current API? Do you have anything of it in roadmap? Also when having several terrain layers, it makes sense to be able to bake it into one for production use, do you already know, when this will be added?

 

Thanks!

Edited by demostenes
Link to post
  • 2 weeks later...

So is there any way to implement custom brush logic with current API? Leveling brush in aditive mode is must. Thanks.

Link to post

Hi demostenes,

We have some similar needs, and I would like to know if you have considered this setting (and maybe why you 'd have discarded it):

  1. base landscape and layers from GIS/WM (elevation+imagery) (essentially what sandworm generates, and we try not to ever touch it manually)
  2. multiple flat-elevation-fix layers (blend mode) (covering just the areas of interest to be flatten)
  3. multiple fine-elevation-fix layers (additive mode) to add a more real aspect very locally (small bumps, crevisses, ...)
  4. multiple albedo-only layers or mask-refining layers

This way you never have to mix altitude setting or altitude addition, and I found it easier on the mind, each layer is limited to a "small" array and the name of he layer itself can reflect its intent. (Or maybe I completely misunderstood you, sorry)

I understood that Landscape is optimized for a (very?) large number of layers (as is demonstrated by the capability of having tracks engraved in the ground).

Thanks!

Link to post
Posted (edited)
On 4/14/2021 at 2:23 PM, Amerio.Stephane said:

Hi demostenes,

We have some similar needs, and I would like to know if you have considered this setting (and maybe why you 'd have discarded it):

  1. base landscape and layers from GIS/WM (elevation+imagery) (essentially what sandworm generates, and we try not to ever touch it manually)
  2. multiple flat-elevation-fix layers (blend mode) (covering just the areas of interest to be flatten)
  3. multiple fine-elevation-fix layers (additive mode) to add a more real aspect very locally (small bumps, crevisses, ...)
  4. multiple albedo-only layers or mask-refining layers

This way you never have to mix altitude setting or altitude addition, and I found it easier on the mind, each layer is limited to a "small" array and the name of he layer itself can reflect its intent. (Or maybe I completely misunderstood you, sorry)

I understood that Landscape is optimized for a (very?) large number of layers (as is demonstrated by the capability of having tracks engraved in the ground).

Thanks!

I discarded alfa blended layer, because it is quite complicated to do modifications there (at least manually). You have to set height to similar level as surrounding terrain and via opacity and smooth blend it with layer bellow (I assume using empty layer with black opacity, importing there copy of height map does not make much sense - you would loose ability to do changes in master layer). If you dont do it, it will behave like this (just painting fixed height):

image.thumb.png.770f6d4eef53cbb2573d2cc4cf249c30.png


This is no problem for one area, but for thousands of small changes it would be overkill. Our requirment was to make it artistically as friendly as possible. But generally our idea is very similar. One master layer with procedural heightmap and masks, and other layers for overrides (both procedural and manual). Also each artist can have its own layer. You can even use much higher resolution of these overriding layers (quite handy for manual tuning) and Unigine is quite effecient, if such layer is empty, it takes almost no HDD space.

But with this setup comes into play ability to bake all layers into one for production build (not implemented yet), so you dont have to distribute gigabytes and gigabytes of aditional data to users and have slightly better performance, especially loading times.

I ve posted video as inspiration to other topic, Ubisoft used identical setup for Gost recon.

Edited by demostenes
Link to post