Jump to content

Materials wish list


photo

Recommended Posts

We are using a simple example to demonstrate clearly what we want but our typical use case will a detailed object such as what Alexei is suggesting. From the point of view of our artists the tinting feature without an independent spec channel is all but useless. Without tinting we are in the positions where we will have to create dozens of diffuse/texture maps for our cars/people where otherwise we could get away with just one.

Link to comment
  • 1 month later...
  • 3 weeks later...
  • 4 weeks later...
  • 4 weeks later...

Danny, possibly not too much, but for standard material it's a mostly unused feature and optional support is not possible with unigine base material due to shader explosion (see this post). You should better derive your own child material and modify the vertex shaders as described in this old post (initially posted by some danny.coi...)

Link to comment
  • 1 month later...

I would like to put vector texture material on the wish-list as described in this paper including source. Implementation is quite simple, but offers some very nice features. Utility function for conversion of larger-sized B/W mask texture images into very-small vector texture representation coud be nicely integrated into UNIGINE image class.

 

BTW thinking about the key aspects of vector textures (very compact in size, but quite precise outlines) it might also be an interesting option to use such vector textures as UNIGINE masks (e.g. for ObjectGrass). The required processing (bi-linear interpolation) shouldn't be higher than for current image mask implementation. Of course thinks like direct mask painting are not straight forward and density variations within mask area are not possible, but for sure there are some special cases where vector mask textures could be a powerful feature (always thinking about large and complex worlds, where texture memory and data paging speed is of highest importance). Maybe frustum can spend 2 seconds on this idea

Link to comment

ulf i second this, as it would be great for the usage of defining exclusion zones along our train tracks and roads for clutter and grass as you have sugested.

Link to comment

BTW black/white-only vector mask property could be easily modified with some procedural noise modulation to provide some variation e.g. for ObjectGrass areas

Link to comment

this seems to be a much, much more sophisticated solution for runtime-procedural texture generation (which is also an interesting idea for large world texturing).

 

I just thought of some grass density/height variation comparable to the noise-based colour variation of mesh_leaf_base.

Link to comment

procedural masking has been something i have wished for lately,as rendeing out many tiles of masks is time cosuming and very uncontrollable. Well in world machine anyway. this sound like a great idea

Link to comment
  • 3 weeks later...

@Ulf

Frustum added vector textures to the wish list. When he has some free time for that, he'll work it out.

 

@Shane,

More details, please! Can't see quire clearly what are you getting at.

Link to comment

What i am mean is generation of vector masks for grass, clutter, detail maps etc. Some simple slope and height selector, plus noise generation would be good also.

Link to comment
  • 3 weeks later...

@Ulf

Frustum added vector textures to the wish list. When he has some free time for that, he'll work it out.

 

Maybe this link might be helpfull. Link to public domain source code and GLSL shaders included at the end of pdf. This approach most probably provides much better quality than VALVE approach, but requires more texture memory.

Link to comment

Ulf, is there a real profit if compared to hi-res textures? Can you list all (or a number of) use cases you'd wish to use it in the engine? Just to make it completely clear for us.

Link to comment

Ulf, is there a real profit if compared to hi-res textures?

Sure, at least in virtual simulation you have to provide high-quality details for very large worlds were it is simply impossible to always use hi-res textures or complex mesh geometry for detail representation as this would immediately blow up memory or performance limits.

 

Key use-cases for vector textures could be

  • high-quality text rendering (e.g. street/traffic signs)
  • high-quality road markings rendering
  • low-polygon representation for gridded structures (e.g. power poles) while keeping sharp grid details on zoom

Key use-cases for mask textures could be

  • precise masking (e.g. +/- 20 cm) of grass/gravel/clutter in complex/curved road networks (e.g. driving/train simulators) for large areas (multiple km)

post-82-0-85937600-1349512065_thumb.jpgpost-82-0-89070400-1349512090_thumb.jpgpost-82-0-50512200-1349512110_thumb.jpgpost-82-0-42185100-1349512141_thumb.jpgpost-82-0-07772300-1349512189_thumb.jpgpost-82-0-72103500-1349512235_thumb.jpgpost-82-0-92647000-1349512214_thumb.jpg

 

For sure there are much more use-cases, where vector texturs provide much better memory efficency, sharp edges/curves even with high zoom than regular textures or allow replacement of complex mesh geometry. Though vector textures have limitations (e.g. monochrome only) and their usage trends to be more application-specific it would be great if UNIGINE could provide at least a basic implementation for customization and a generic tool for hi-res monochrome raster texture to low-res vector texture conversion (comparable to normal map tool)

 

Hope these examples can clarify possible applications. Maybe other users can provide additional examples, were vector textures could be useful.

Link to comment
  • 3 weeks later...

Ulf, we've again had a chat about vector textures with Frustum and our artists and decided that having AlphaMapper in Resource editor is enough, at least for now. It can be used for grids and sharp edged contours (and was successfully used in Oil Rush for that purpose). Based on the loaded geometry, it stores the distance to the geometry in the texture and basically works as a vector one.

 

As for signs, pure vector is not the best variant visually, since there are no gradients, no dirt. But if you create a sign with two layers, where:

  • a text is baked in AlphaMapper from geometry and alpha-tested,
  • and a sign itself is simply rendered based on a diffuse texture,

that would be the best variant both from the point of view of high details and photorealism.

 

The same approach is used for road markings. They are exported as a separate surface, baked in AlphaMapper and alpha-tested. Such approach seems to be quite convenient for artists.

 

Grass and clutter mask...well, have not encountered any problem regarding this so far. For example, in City project soon to be released, everything is OK. Did you have problems due to the lack of mask precision?

Link to comment
having AlphaMapper in Resource editor is enough, at least for now. It can be used for grids and sharp edged contours (and was successfully used in Oil Rush for that purpose).

Hi Manguste, thanks a lot for the comments, actually I wasn't quite aware of the AlphaMapper functionallity (though I can rember a very oooold dev log entry...now that you are talking about it). Actually this is the basic vector map texture approach, though named differently. From my point of view this should be enough

 

Grass and clutter mask...well, have not encountered any problem regarding this so far. For example, in City project soon to be released, everything is OK. Did you have problems due to the lack of mask precision?

Well, city project database size - though large compared to other demo scenes - is still very small compared to driving simulation databases (somewhere between 50km x 50km - 200km x 200km) with complex street networks in urban/rural areas. Also - at least in the old city project if I can remember correctly - you used roads with foundations, so grass stayed below street surfaces. Especially in rural areas this is not really realistic: here the street level is at the same level as the grass layer on both sides of the street, so grass planting has to be more or less precisely masked quite sharp for the winding streets. Keeping in mind the large database sizes this cannot be really done well with hundreds of hi-res 2k-4k mask textures. In this case vector textures could have a significant advantage, but this might be a too specialized use-case for a general-purpose engine, don't know. So if somone reallyy needs this functionallity, it might be possible for him - if source code available - to implement such a modification of ObjectGrass/WorldClutter on its own.

Link to comment
  • 2 weeks later...

Ulf, yes, City project is big but still not that big. Ok, let's assume this topic is closed for the time being. Of course, if it will be required for some projects we can reconsider this suggestion.

 

When it is required that grass grows precisely on some spot (for example, lawns), our artists actually export geometry and intersect with it.

Link to comment
×
×
  • Create New...