Author Topic: tileable vs infinite  (Read 11596 times)

Thanks Wes. Good to hear that it's on your radar.

I'll add to the conversation as I only just had to deal with a related issue last week.

I made a nice substance material based on a 2048 concrete texture then brought it into an architectural scene I'm doing in Unreal Engine 4. The diffuse/normal/spec/gloss features in the substance looked great but they also amplified tiling artifacts which I'd originally suppressed in the diffuse texture in Photoshop.

Normally with this sort of thing I mitigate the tiling by using a noise map in the Unreal material editor to blend between two copies of the texture (one of them being rotated and scaled differently from the other).

I tried to recreate this inside the substance, but when I rotate and scale the second copy of the diffuse texture it doesn't tile properly in the sbsar in UE4.  It was only at that point that I realised that while substance may be a procedural material generator, it's still bottlenecked by the way it makes its procedural textures available to its host applications (everything has to happen inside a finite square). 

Don't get me wrong though, substance designer is sensational.  Just be aware that there are still some things you'll have to do in your engine.  For instance, I solved my problem above by using a combination of the map generation in substance (norm/spec/gloss) and mixing between two copies of them in the material editor in UE4 (as described above).

I just wanted to bump this to say another situation has arisen when a single 16k substance would be really useful.

Since I last posted here I have realised that the PSD export might be an issue with higher res images. PSDs max out at 2gig of data. That's easy to hit with a 4k layered substance. So it might be a good idea to either support PSB or TIF exports too (TIF maxes out at 4gig and I think PSB is basically unlimited).


Hi again,


I just wanted to come back to this thread.

I re-read it and saw that we actually deviated from the original question.
The question was not about higher resolutions (8/16/32k), but rather if one day, 'infinite' textures without visible repetitions will be possible - at least for substances without bitmaps in the network. Currently, SD can only produce textures that are tileable (in the 0-1 space), but e.g. grass that NEVER repeats seems currently not to be possible, which I think is a flaw. Isn't this WHY we want procedural textures?

What I hope for is a resolution-independent shader (not to have to use the term texture), where you can just define what a linear unit is in the shader you created, to be able to scale correctly.

Once you have that shader, each pixel in screenspace would just need to sample the shader and you could zoom in or out without that limitation of texture resolutions. Zoom in or zoom out as far as you want and the shader is always looks perfect.

I still marvel why this route was not considered, but only tileable textures.
Don't get me wrong, I mean this in a very constructive way.

Any input welcome.

Thanks!







Quote
The question was not about higher resolutions (8/16/32k), but rather if one day, 'infinite' textures without visible repetitions will be possible - at least for substances without bitmaps in the network.
That's not likely to happen in the near future. This requires a completely different technology.

Quote
Isn't this WHY we want procedural textures?
It may be why *you* want procedural textures. There are other reasons to use them otherwise Substance would not exist, would it ?
In the long run, the workflow of producing textures procedurally is more efficient when you have a large quantity of textures to produce, and when you want to easily maintain consistency on a large library of textures, particularly now that shaders have a larger number of inputs. Also, procedural textures allow for last minute changes if you expose high-level parameters. There's also the fact that they're much smaller.

Quote
I still marvel why this route was not considered, but only tileable textures.
It was considered, and we chose not to take it. An engine capable of point-wise evaluation would have been much slower and would have constrained Substance to a much smaller audience. 
Last Edit: April 16, 2015, 12:02:28 pm

Please consider adding this functionality (procedural infinite tiling) in the near future. If it worked in UE4, I am certain people would love it.
Don't take my word for it, ask around amongst professional 3D artists.

I suppose the answer to your question might be, if you want an infinite noise generator, you'll have to wait an infinite amount of time to render it :s

You can create substances and the use various blending techniques to achieve the appearance of non tiling textures over large areas. Indeed tiling seems to be one of the main problems to work around for an environment artist.

There's no doubt certain people would love it. But it is not just adding a functionnality, it is developping an entirely different product. So if it would come, it would not come in the near future.