Author Topic: Texture lookup  (Read 3193 times)

Given a 2 dimensional texture, containing UV coordinates baked into red and green channels, is it possible to use this to lookup values in another texture?

For example, let's say the color at (0.5, 0.5) in the coordinate texture contains the values (0.1, 1.0), is it possible to get those two values to lookup color in another texture at coordinate (0.1, 1.0)?

Use a "pixel processor" with two "samplers".
Note that the texture encoding the coordinates will probably need to be 16bits, otherwise it won't be precise enough to address individual pixels in a texture larger than 256x256. This can be a problem if you plan to render this substance with the CPU engine (e.g. in Unity or UE4), because it does not support 16bit color images, in which case you should consider encoding U and V in two separate 16bit grayscale images.

This is Substance 5 only feature?

Yes, the Pixel Processor was introduced with Designer 5. You can do something like it with FxMaps in previous Designer versions, but it will be more complicated and slower to render.

Allright. I only have 4. I might update to 5 later. Maybe there's another way to do it though?

Basically, what I want to do is to map a tiling texture to a complex object, while keeping its intended orientation (with no seams).

For example, imagine a texture with lines drawn from top to bottom. If I just apply this texture to a complex object, there will be horrible seams and lines going all over the place depending on how the UVs are set up for that object.

What would be a solution to cause this texture to be applied, so that the lines go in just 1 direction and with no seams on this complex object?

Two questions:

1. Does substance designer not support 16 bit input images? Because I cannot find a way to change the output format of an input node (grayed out):

2. How to set 16 bit grayscale format in Unity? Can't seem to find it.

Last Edit: May 06, 2015, 09:58:26 pm

Hey swekenchu,

you need to set the Output format to absolute. Yours is set to 'relative to input'.

Best regards
Environment Artist - Twitter

Allright thanks!

Just need to find a way to import 16 bit into Unity. So far that has proven difficult.