Jump to content

Several detail texture/layer questions


photo

Recommended Posts

Greetings,

Question 1:

We are trying to decide between 4k and 2k detail textures.  Our preference is to use 4k because of the additional area afforded, the greater tiling size, and the greater potential randomness to help reduce tiling effects.  

However, we are working with high quality landcover data sources and plan to use somewhere between 20-30 detail masks for a large geographic area (600 km x 800 km).  Even though our detail masks are very high resolution with lots of good variation, there are still areas where tiling may be an issue (see below screenshot - yellow is our "dense grass" detail mask).

image.thumb.png.ba01a66b13008a9fb26625de0106a6ab.png

As can be seen, there are still some even areas where tiling could potentially occur.  Because random tiling of textures is not an option in Unigine, I feel the best option is to use a higher resolution texture and tile it at a larger size to increase randomness, especially from above, where eliminating tiling is very important (the player will be in an aircraft).  Is this the right approach?  

Question 2:

I do not see the benefit of subdetails.  I have experimented with them, but they seem to overlay directly atop the parent detail.  The documentation says "uses the mask of the parent detail (or generates its own mask based on the parent's mask)".  What is this "generation"?  I do not see any difference between the two.  Is there a way to vary the subdetail mask within the parent mask?  A before/after example would be helpful to visualize this.  Right now, it seems only useful for another surface detail where opacity is reduced to create a texture blending effect with the layer beneath.

Question 3

How do detail layers work in large worlds?  Because of our large, 600x800km terrain area, I want to optimize as much as possible.  We are creating 8k detail masks for every 2km sq tiles.  This is obviously very large, but we would like to be confident that this will still run smoothly in a huge project.  At our stage it is somewhat difficult to imagine our test tiles "scaled up", so our only real option is to ask the experts.  

Right now, my single 2km tile project is taking up 627 mb of memory with no clutter and no major effects.  Given the constantly improving capability of graphics cards...I find this to be okay, actually, but what happens when flying over the landscape with hundreds of tiles visible?  Obviously, most would be outside the visibility distance, so only the albedo will be visible - and even then, some LODs can be configured for this as well.  I assume Unigine streams in the next detail layer tiles on demand, just like the albedo?   

Sorry for the lengthy post...many of these questions are coming up all at once as we work with details.  

Thank you!

Link to comment
12 hours ago, david.norlin said:

As can be seen, there are still some even areas where tiling could potentially occur.  Because random tiling of textures is not an option in Unigine, I feel the best option is to use a higher resolution texture and tile it at a larger size to increase randomness, especially from above, where eliminating tiling is very important (the player will be in an aircraft).  Is this the right approach?  

I am just curious and want to understand the issue. I cant see any tiling issues there. What are you referring to?

Is there a 'mirror option' for the texture in the shader? (i cant find any in the editor for a material). That helps a bit as well.

 

Link to comment
5 minutes ago, werner.poetzelberger said:

I am just curious and want to understand the issue. I cant see any tiling issues there. What are you referring to?

Hi Werner,

The yellow is simply a blank color to show the mask extents.  It is not representative of the final texture.  Mostly I just wanted to show that there are large swaths of grass where tiling may occur when we complete our grass textures.  Hopefully this makes sense. 

Link to comment

Ah okay, I get it.
So what I used in a previous project was a 16K texture with 4 channels = 4 Layers for a 10kmx10km area. 
I was quite happy with the results ans the 16K produced enough details for a eyeheight camera, and definitely enough for a flight camera.

The tiling texture for the gravel and sand were pretty simple textures.

I experienced different results while experimenting with file sizes.

The best was a 2K tileable texture for the material layers,as the mip maps showed the best results for our camera hights.

I remember playing a lot around.

exercise_02.3..thumb.jpg.a600783bed575b8c40a785d29e00ec80.jpgexercise_02.2..thumb.jpg.70565e913c04aaccf70abdaa2d887bf7.jpgexercise_02.5..thumb.jpg.a0e37f2ce8f452e9e08dfa1b86dacdb4.jpg

image.thumb.png.986d195083fd7535ccb161895e23246f.png

Link to comment

Wow, this is very nice.  Only 4 detail layers?   And were these overlap or overlay?   This gives me some confidence, given that our 2k tile will use 8k layer masks.  

How did you get such nice blending between the detail layers though?  It seems that you achieved a very organic and dynamic look. 


EDIT: and your mask image - it is not solid colors.  Did you specify color ranges in the detail layer tags?  Is that what gives it such a nice, blended look?  I am only using single RGB colors to set up the detail layers. 

EDIT2: Also, what do you mean by "tiling texture"? 

Edited by david.norlin
Link to comment

Yes, only four detail layers. At that time there were not more than 4 possible. And 1 I had to reserve for the sand. (was a challenge) hehe.
But yes, the result is some kind of basic, but anyway I was quite happy.
I think I used overlap for the gravel and overlay for the sand, but definitely some mix.

I used the World machine for the erosion calculation. The final mask is a photoshop worked up texture with all the tricks (filters and blurs ....),  as the source came basically from a satellite image a company made for us as well from the height information.
But in the end not too technically, rather I tried out and tested the result visually and compared against the real images.

In the end, always the composition counts and how to trick the eye but as well to give the whole thing a character and a specific style.

I think, that is one of the gravels, each one comes with an alpha channel as well.

image.thumb.png.ae3e4d584ccfec481fbbd69d567a1e44.png

Edited by werner.poetzelberger
Link to comment
6 minutes ago, werner.poetzelberger said:

The final mask is a photoshop worked up texture with all the tricks (filters and blurs ....)

Hmm, this is interesting information.  I have come to think that it is not good to use blurs, but clearly the results are excellent.  How much did you blur?  And how did you set the RGB range, and how do you know what to set it to?  I have tried to do this and found that the blurring range created gaps between layers.  Perhaps I should revisit this.  

Edited by david.norlin
Link to comment

I tried blurring the mask a bit, but as soon as I did, I realized the colors change, meaning the tags I set in Unigine will no longer be relevant without an RGB range.  For some additional perspective, here is a sample of my mask.  I am including it as a single image tile with my albedo.

image.thumb.png.8e41a44b456b4625b132a4bfe2cd5a8c.png

Also, I am starting to realize that tiling is less of an issue due to the quality of my masks and the size of textures I can use.  The more I look at my existing mask, the more it seems that blending between textures is going to be the biggest challenge.  With two textures side by side, the blending is very stark and easy to see.  It is very difficult to get nice blending using only the threshold, contrast, and width sliders. 

image.thumb.png.0506a531a041812b659d7d1dd309ba27.png

 

How does one overcome this? 

Link to comment

Ok, my apologies for "learning out loud" and having to post answers to my own questions...perhaps someone will at least find hints from my process of learning.


I spent a lot of time studying the Oil Refinery demo and realized a different type of mask was being used.  Previously, I thought it would be easier to make one, big, single mask with all detail layers included (a couple dozen different detail layers), but as seen above, this is not the best method.  It does not blend well enough between layers.  

So, I made use of the same type of single-channel 2048x2048 mask with one of my grass detail layers and achieved extremely good blending.  I think I will actually be able to combine almost all grass layers into a single mask using this method, which will of course save so much space on the disk while building the project and should really help improve overall memory consumption during runtime.  

As can be seen, the blending is much, much better, even using a placeholder 4k grass texture.  
image.thumb.png.1a9864e51f3b430e208f5ea6123b976c.png

I was able to increase the tiling size and I cannot even see the edge of the texture, and with the opacity set to allow the base albedo to come through, the blending effect is really quite amazing.
image.thumb.png.1c78c5cebaebf0e3a6d19e055493b176.png

So @werner.poetzelberger, thanks for pointing me in the right direction.  This has really helped!  

  • Like 1
Link to comment

Happy to give some hints!

Actually I have never tried out the new terrain system (just because we dont have a landscape project atm).

But I assume, that they have improved. 

Just as a sidenote... I always found Greens the most difficult parts in a project.I guess becuse we humans know how it has to look like and whats incorrect.

Using Noise is another thing, which does never look realistic. Working from actual photographic material does give a much more realistic startpoint.

Hoping to see some more from you.

Thanks for sharing (i think the Unigine forum needs more sharing ;)

Best. Werner

 

  • Like 1
Link to comment
2 hours ago, werner.poetzelberger said:

Happy to give some hints!

Actually I have never tried out the new terrain system (just because we dont have a landscape project atm).

But I assume, that they have improved. 

Just as a sidenote... I always found Greens the most difficult parts in a project.I guess becuse we humans know how it has to look like and whats incorrect.

Using Noise is another thing, which does never look realistic. Working from actual photographic material does give a much more realistic startpoint.

Hoping to see some more from you.

Thanks for sharing (i think the Unigine forum needs more sharing ;)

Best. Werner

 

Have you got any tips on creating landcover masks? I understand that it's essentially the same as splatmapping but I'm not sure how to extract landcover masks from my DEM/SAT sources.

Link to comment
45 minutes ago, james.kelly said:

I'm not sure how to extract landcover masks from my DEM/SAT sources.

Hi James,

I know you asked Werner, but I am happy to share some pointers - up to a point (sadly I cannot give away all of our R&D, as I am sure you understand).  My team invested several months in terrain R&D, specifically with regards with how to make "mostly" real-world accurate detailed albedos and masks without using raw, high-res GIS products (DEM/DSM/imagery, ect).  We found that it is very doable and can be done at a low cost, but there is significant know-how required in manipulating the low-resolution imagery - and raw data therein - into something accurate and visually interesting. 

We tried several methods, but found that manipulating surface reflectance data returned the best results.  There are many tools freely available and online tutorials on how to do this, but as I mentioned, you really need to know how to handle the classes that are created...the raw data on its own is not usable for anything aside from blocky, low-resolution masking.  This is the real difficulty in going this route and it is what took us the longest - even still, we are refining and changing some aspects of the process to automate and improve some details.  However, once you figure these things out, the results can be very, very good.  Obviously, for man-made features such as farms, roads, and other non-organic attributes, vector data is preferable. Below is an 8k 2x2km sample tile from our project using these methods, representing a series of meadows and forested areas, built to a .25 px/m resolution.  We chose to build our albedos to represent the ground surface texture, and plan to use other methods for forest LODs. 

MRVBLXZ.png

Hope this helps show you at least one of the methods available. 

Dave

EDIT: I mentioned this process in relation to the albedo, implying that if you know how to create the albedo, you will also understand how to build the masks.  Sorry if that was unclear.

Edited by david.norlin
Link to comment

I agree with david as a single source makes it very complicated to extract and assemble afterwards in a convinient way.

Especially when you have very diverse information like structures vs. landcover.

If you have access to the several data formats, it makes the process much more convinient.

I found height data very useful. This makes such a big difference in visual appearance. eg. if you produce an additional normal map. (while reducing mesh data).

nmex.jpg.7555889e555b5470b0db63ebcfb8f8f4.jpg

Edited by werner.poetzelberger
Link to comment
×
×
  • Create New...