Substance .sbsar support is missing key features (image input and non square resolution)


We have developed a tool that allow our client to input their design, configure various aspects of their embossing techniques and preview it on various models.
The tool was built with Unreal engine. The main asset of the tool is a custom built substance tailored to their needs.

We are now studying the possibility to shift this development to Omniverse.
Unfortunately, our first test indicate that some key features are missing from the current substance .sbsar integration :

  • No Image input support. this is required by our substance to serve it’s function, as it is at its core, an image driven generation.
  • No support for non square outputs Substance allows individual output size for width and height. (the substance output size we use and require is 4096X8192).

What are my option at this stage ?
Is this the appropriate forum to formulate requests regarding the current sbsar integration limitations ?
Would the current state of the kit allow me to build a better integration from scratch ?

Thanks in advance.


Hi @thibaudmail. I’ll check with the dev team on this.

1 Like

Would you be able to share an sbs file that provide the image output capability for me to test with?

Here is a simple .sbs and sbsar substance file where the input parameter is wired directly to the base color output.
Adobe sdk has specific implementations examples (in substance_framework/tutorials/04_inputimage) (8.4 KB)
substance_input.sbsar (1.2 KB)

Thanks a lot for looking into it.

Thanks @thibaudmail. I’ve logged this work as OM-58021.

@thibaudmail looked at the sample - it’s exposing an RGB input - not a path to a texture file. I 100% agree that we should find a solution for this but we’ll have to do a deep dive. Would have been nice if one could expose the resource URL as an input parameter in the sbs(ar).

Yes, I have created an rgb input parameter.
it’s worth noting that grayscale inputs are also possible.
It’s not possible to expose a resource path as an input.

the expected behavior when loading the .sbsar is the one that can be seen when loading it in substance player.

I noticed that also random seed parameter isn’t available in omniverse for sbsar. Correct?

Hi guys, Any updates on this? I can import sbsar files into local disk and drag and drop them into a USD. But when I import it into a nucleus server and drag and drop it, it fails to get the inputs like baseColor_texture, normal_texture, output size etc.

Here is the error:

2023-08-27 21:52:03 [Error] [] Failed to read texture file omniverse://localhost/Projects/nucleus_test/Materials/sample1.sbsar[graphs/sample1/images?usage=normal#packageHash=27b663e8cdc5a140#params={“$outputsize”:[9,9]}.png] or file is empty
2023-08-27 21:52:03 [Error] [] Failed to read texture file omniverse://localhost/Projects/nucleus_test/Materials/sample1.sbsar[graphs/sample1/images?usage=roughness#packageHash=27b663e8cdc5a140#params={“$outputsize”:[9,9]}.png] or file is empty
2023-08-27 21:52:03 [Error] [] Failed to read texture file omniverse://localhost/Projects/nucleus_test/Materials/sample1.sbsar[graphs/sample1/images?usage=baseColor#packageHash=27b663e8cdc5a140#params={“$outputsize”:[9,9]}.png] or file is empty