- Substance 3D home
- Home
- Command Line Tools
- Command Line overview
- sbsbaker
- sbscooker
- sbsmtools
- sbsmutator
- sbsrender
- sbsupdater
- Command Line overview
- Pysbs - Python API
- Pysbs - Python API overview
- Getting started
- General topics
- Examples
- API Content
- API Content overview
- Substance definitions
- Common interfaces
- compnode
- context projectmgr
- graph
- mdl
- modelgraphindex
- modelannotationnames
- modelgraph
- modelgraphgenerator
- modelgraphimplementation
- modelnodenames
- modeloperand
- modulegraphindex
- moduleannotation
- moduleconnection
- modulegraph
- modulegraphgenerator
- modulegraphimplementation
- modulegraphlibrary
- modulegraphregister
- modulenode
- modulenodeimplementation
- modulenodeinstance
- moduleoperand
- moduleoutputbridging
- moduleparaminput
- params
- projectmgrdoc
- sbsarchive
- sbscommon
- sbspreset
- sbsproject
- substance
- Libraries
- sbsenum
- sbslibrary
- sbsbakerslibrary
- Helpers
- Execution context
- API Change log
- Samples
- Setup and Getting Started
- Integrations
- Substance Maya toolset
- Release notes
Version 11.2.0
More performance with sbsbaker run and UVTiles / UDIM support
Run all your bakes for all your UVTiles in a single process! Save your baking preset file from Designer or add values directly to your json respecting these key / value syntaxes:
Of course, the models are kept in memory between each UVTiles.
UDIM convention: "uvTiles": "1001 1002 1011 1012" UVTiles convention: "uvTiles": "0x0 1x0 0x1 1x1"
PySBS, edit Graph Parameters identifier safely with the method changeInputParameterIdentifier()
When you modify the identifier of an input parameter with the setIdentifier or changeInputParameterIdentifier functions, all nodes, visibleIf or functions that reference this identifier will be updated to avoid missing references.
doc = substance.SBSDocument(context.Context(), "my_package.sbs") doc.parseDoc() # change graph input identifier graph = doc.getSBSGraph("My_Graph") graph.changeInputParameterIdentifier(doc, "old_id_input", "new_id_input") # Or directly from the SBSParamInput object: param = graph.getInputParameter("old_id_input") param.setIdentifier(doc, "new_id_input")
Warning: SBSParamInput.setIdentifier doesn’t check if new identifier already exists, if so, some conflicts can happen.
Define your graph type with PySBS
New functions and enum are available to define graph type.
graph = doc.getSBSGraph("My_Graph") graph.setGraphType(sbsenum.GraphTypeEnum.TEXTURE_GENERATOR)
Choose to raise errors immediately encountered by PySBS with global setting pysbs.setRaiseAllErrors(True)
Raise errors with PySBS instead of catching them.
Loading and editing of an SBS file are allowed even if some dependencies are missing. While PySBS's ability to catch errors to continue the process can be very handy, sometimes we need to stop the process as soon as an error is encountered.
To turn on this option you can use:
import pysbs pysbs.setRaiseAllErrors(True)
Or set the environment variable:
SAT_RAISE_ALL_ERRORS=1