Jump to content

Terrain Update


photo

Recommended Posts

The new UNIGINE terrain looks very good ! Just one small question: how can global/or per-material specularity be controlled (specular material maps are gone) ? At the moment, there seems to be no other possibility than reducing specular scale for the world light, but this is no real solution as this also effect other Objects (and playing with 2 world lights - one for terrain, one for other objects - wouldn't be an elegant solution)

 

Would it be possible to add a global or - even better - per-material specularity scale factor ?

 

Alpha of diffuse textures (global and per-material) control specular level.

 

Moreover terrain material (material window) support Fresnel term for specular component.

Link to comment

@UNIGINE

 

just a short question: how does the new terrain avoid texture seams between individual surfaces (as each surface has its individual color/mask texture) ? Is there some kind of texture border required, when generating/splitting these textures externally ?

Link to comment
  • 2 months later...

i am getting some problem creating mask texture, is there any tool or method to create Mask texture.

You can use graphics editor or specialized apps, like World Machine. As a base for the mask, use the height map plus add some noise - that's basically it. Each channel will mask 1 detail material.

Link to comment

@UNIGINE

 

just a short question: how does the new terrain avoid texture seams between individual surfaces (as each surface has its individual color/mask texture) ? Is there some kind of texture border required, when generating/splitting these textures externally ?

 

There is a trick in the Unigine editor data/core/editor/editor_objects_terrain.h file, import_diffuse_clicked() function:

When we create per-surface textures from one big texture we copy region of surface size with one additional pixel, and after that we resize surface texture to the real resolution:

 

// pixel border for seams removing
int surface_copy_width = surface_width;
int surface_copy_height = surface_height;
if(x != terrain.getSurfacesX() - 1) surface_copy_width++;
if(y != terrain.getSurfacesY() - 1) surface_copy_height++;

// resize surface diffuse texture
surface.resize(surface_width,surface_height);

Link to comment
×
×
  • Create New...