Question for devs: MEMORY usage with large embedded texture sets inside a single .sbsar in Painter
Hi there,
I’m creating a custom tool in Substance 3D Designer to be used as a generator / fill layer in Substance 3D Painter, and I’d like to understand how this will behave in terms of memory usage under the hood. This question is primarily addressed to Substance 3D developers or anyone who knows how resource loading works internally.
Use case:
Inside a single Designer graph I plan to embed around 50 texture maps in 4K (about 25 MB each, so roughly 1 GB of embedded resources in the .sbsar).
In Painter, the user will typically use this .sbsar only once per project, as a fill layer on top of the stack that generates base color + roughness + metallic.
For one specific use, the user actually selects only two textures out of those 50 (through parameters / switches in the graph). So logically they need around 50 MB of data, while the remaining ~950 MB is just a “technical library” of textures stored inside the .sbsar.
The core question:
How does Substance 3D Painter handle such large embedded texture sets inside a .sbsar in terms of VRAM / RAM?
1. Does it load all 50 textures into memory just because they are embedded in the .sbsar and connected somewhere in the graph?
2. Or does the engine only load/keep in memory the textures that are actually used by the currently active branch of the graph / user parameters?
In other words, is there a practical difference in VRAM usage and performance between:
a single large .sbsar with ~50 textures (≈1 GB embedded),
anda set of, say, 10 separate .sbsar tools, each embedding only 2 textures (≈50 MB total each)?
If this is already well optimized internally and Painter does not keep the entire 1 GB texture set in VRAM at once, I would prefer to ship one big tool that contains the full texture library.
If this approach does hurt optimization and significantly increases memory / system load, then I’ll have to split the tool into multiple smaller .sbsar files with fewer textures in each.
I’d really appreciate if someone from the Substance 3D team or engine developers could clarify how embedded .sbsar resources are managed in terms of memory, and maybe point to any recommended practices / best practices for such large texture libraries.
Thanks a lot!
