Author Topic: 3D Noise Basis Functions  (Read 3979 times)

I'm just starting to get into Substance Designer, and I was wondering if there is any support for generating textures with 3D basis functions.

I'm just wondering because I notice that generating noisy dirt/grunge/rust textures on a UV mapped model will create discontinuities along UV seams.  You can fix these up manually painting in either 2D or 3D, but that isn't as useful if you want to generate randomized textures at run-time.

If the texture was generated using the 3D vertex position, and not the 2D UV mapping these discontinuities should mostly disappear.

You can already bake out a position map for a model, but is there a way to feed the 3D coordinates into the texture generators?  That would be a really useful feature, and cellular and Perlin noise both generalize to 3D space quite well.  Is there any way to achieve this right now?

I was digging into the generators a bit, but I can't find a way to do this.  Basically I want a node that takes in an RGB texture (the position map) and returns "PerlinNoise(R, G, B)" or "CellularNoise(R, G, B)".

If we were to add 3D noises in Designer, it would probably be more in the shape of bakers than a Substance node that would require you to bake 3D positions anyway.
The main reason why it has not been done yet, is that it will not turn out to be very useful anyway : most filters you will apply to your noise texture in Substance will reintroduce visible discontinuities at seams as they work in texture space, not on the mesh surface.

So I was wondering basically the same thing. In Maya in the past I have used 3d textures or mathmatical descriptions of noise to generate UV less texture detail (at render time). This information could be baked to texture if your base model has proper UVs.

So I think the ask is the same as mine, have you thought about adding 3d noise generation methods that can be baked down to a 2d map.

I really love substance, but we want to move away from having to always fear our UV boarders.

Also you have done something amazing in substance painter where you can paint in 2d and still paint seamless across your boarders.

Is it possible you can steal that functionality but in a more procedural way to work in substance?

Then if the programs were bridged, just send to painter to create a hand painted transiton?

If we were to add 3D noises in Designer, it would probably be more in the shape of bakers than a Substance node that would require you to bake 3D positions anyway.
The main reason why it has not been done yet, is that it will not turn out to be very useful anyway : most filters you will apply to your noise texture in Substance will reintroduce visible discontinuities at seams as they work in texture space, not on the mesh surface.

Okay, that makes sense, but are there plans to have filters work in mesh surface space instead of texture space?

Or is this something that is more in line with Substance Painter's feature set?  I've been meaning to dig a bit more into its feature set as well, and maybe that is geared more to working on the surface of a model?

Is it possible or planned to apply the seamless painting functionality to texture filter operations so they can work seamlessly across UV seams?

Quote
Is it possible or planned to apply the seamless painting functionality to texture filter operations so they can work seamlessly across UV seams?
Setting aside the fact that this would mean a complete rewrite of the engine, it's probably not possible to have filters that can do that fast enough (*), except for the more trivial ones where you need only the pixel at coordinates (u,v) in the input textures to compute the pixel at the same coordinate (u,v) in the output texture (e.g. color map). Painting works because it only involves blending operations which fall in that category.

(*) And speed is not the only problem : some filters with a large "input window" would not be easy to define since we would need some way to approximate geodesic distance on the surface, and also not every part of the mesh can have its surrounding projected on a plane (things like handles, etc.). 
Last Edit: September 03, 2014, 11:30:11 am