Author Topic: SAT integration as a SD plugin possible?  (Read 1545 times)

Hey, I was wondering if it's possible to code SAT application (for baking, material assignment, rendering textures) as a plugin for substance designer, meaning if I can use the benefits of both SAT and SD api. Or is it more common/better to have a standalone SAT solution?

SAT includes a bunch of command line tools and a python wrapper for them (Pysbs).

You can absolutely create a custom SD plugin that uses both, the SD API and launches SAT sub-processes with the relevant data.
To an extent, SD is already doing this (it uses both sbsrender and sbscooker), so nothing is preventing you from extending that functionality further.

I can try to provide more feedback if you provide a use case.

Thanks for answer! I will be developing a SAT pipeline for our studio and I am trying to figure out what would be the best approach. The main purpose of it would be creating textures for our 3d assets, involving baking mesh maps, assigning materials based on color ID and finally rendering the textures.
From what I read, SAT baker is not able to cache 3d geometry between tasks which could make baking pretty time consuming, so I am thinking about the option of doing the baking in Designer and continuing with SAT from there..

I would also like to decide what is the better solution for material assignment - having a huge graph with all possible materials from our library and feeding just the color ID map to blend between them, OR picking just the IDs for the current geometry and build the specific graph for each geo procedurally from there.

I would very much appreciate your feedback on this.

And one more thing, not sure if it's a real issue or just the outdated documentation, but SD API is said to be compatible with python 3.6, while SAT works with python 2.7/3.5

I've been dealing with this myself for the past couple of years now so I'll try to provide some insight.

Quote
I will be developing a SAT pipeline for our studio and I am trying to figure out what would be the best approach.
VFX/animation or gaming? Your approach varies based on this (single vs multiple UDIMs).

Quote
From what I read, SAT baker is not able to cache 3d geometry between tasks which could make baking pretty time consuming, so I am thinking about the option of doing the baking in Designer and continuing with SAT from there..
You're absolutely correct. I've done intensive testing with this and it will only be a noticeable problem for you if you're dealing with high poly geo (> 5 million) with lots of UDIMs (> 20).

My highest quality test case was 5m poly's (1773 objects) with 7 bakers and 78 UDIMs (546 tasks). The overhead between each task was ~6 seconds, which ended up adding an extra hour to the baking process on a single machine (compared to Designer/Painter).

That being said, the advantage you'll have with SAT is that you can break down your sub-processes per UDIM/task and propagate them to your render farm. Since they'll run in parallel, it will outperform a geo cached bake on a single machine.

If you're dealing with a gaming quality, single UDIM asset, you likely won't lose more than a few seconds between each task by going the SAT route.

Quote
I would also like to decide what is the better solution for material assignment - having a huge graph with all possible materials from our library and feeding just the color ID map to blend between them, OR picking just the IDs for the current geometry and build the specific graph for each geo procedurally from there.
Can't offer much advice here on the best approach.
I've opted for a material library where all our Substance materials get published. Material propagation is handled per UDIM, via in-house tool that interacts with the library.
If I had to guess; a single sbs acting as a "library" of sorts, would likely increase overhead time significantly, as each graph would have to be loaded.

Quote
And one more thing, not sure if it's a real issue or just the outdated documentation, but SD API is said to be compatible with python 3.6, while SAT works with python 2.7/3.5
I'm currently running project callbacks in Designer which makes calls to SAT command line tools.
You may run into compatibility problems with pysbs, but the command line tools should work just fine.


Last Edit: November 18, 2019, 03:57:51 pm

VFX/animation or gaming? Your approach varies based on this (single vs multiple UDIMs).

VFX, so as you said, multiple UDIMs, high polycount. Thanks for the input, I will most likely post some more specific questions once I get to the actual development