User Guide Cancel

sbsbaker Example Command Lines | Substance 3D Automation ToolKit

  1. Substance 3D home
  2. Home
  3. Command Line Tools
    1. Command Line overview
    2. sbsbaker
      1. sbsbaker overview
      2. sbsbaker command line options
      3. sbsbaker Example Command Lines
    3. sbscooker
      1. sbscooker overview
      2. sbscooker command line options
      3. sbscooker pattern variables
    4. sbsmtools
      1. sbsmtools overview
      2. sbsmtools command line options
    5. sbsmutator
      1. sbsmutator overview
      2. sbsmutator command line options
      3. sbsmutator Example Command Lines
    6. sbsrender
      1. sbsrender overview
      2. sbsrender base parameters and pattern variables
      3. sbsrender command line options
      4. sbsrender example command lines
    7. sbsupdater
      1. sbsupdater overview
      2. sbsupdater command line options
  4. Pysbs - Python API
    1. Pysbs - Python API overview
    2. Getting started
    3. General topics
      1. Basic manipulation
      2. Substance creation
      3. Substances modification
      4. Dependencies management
      5. PySbs batchtools module
      6. metadata manipulation
      7. SAT demos
      8. Edit sbsar with SBSARManager
      9. Spot Colors
      10. Thumbnail creation with SAT
    4. Examples
      1. demohelloworld
      2. demos
      3. demos_batchtools
      4. script_update_with_sbsupdater
    5. API Content
      1. API Content overview
      2. Substance definitions
        1. Common interfaces
          1. basegraph
          2. package
          3. sbsarobject
          4. sbsobject
        2. compnode
          1. compnode overview
          2. common
          3. compimplementation
          4. paramgraph
        3. context projectmgr
        4. graph
          1. graph overview
          2. function
          3. inputparameters
          4. output
        5. mdl
          1. mdlannotation
          2. mdlcommon
          3. mdldictionaries
          4. mdlenum
          5. mdlgraph
          6. mdllibclasses
          7. mdlmanager
          8. mdlnode
          9. mdlnodeimpl
          10. mdloperand
          11. mdlsbsbridge
        6. modelgraphindex
          1. modelannotationnames
          2. modelgraph
          3. modelgraphgenerator
          4. modelgraphimplementation
          5. modelnodenames
          6. modeloperand
          7. modulegraphindex
          8. moduleannotation
          9. moduleconnection
          10. modulegraph
          11. modulegraphgenerator
          12. modulegraphimplementation
          13. modulegraphlibrary
          14. modulegraphregister
          15. modulenode
          16. modulenodeimplementation
          17. modulenodeinstance
          18. moduleoperand
          19. moduleoutputbridging
          20. moduleparaminput
        7. params
          1. params overview
          2. dynamicvalue
          3. paramnode
        8. projectmgrdoc
        9. sbsarchive
          1. sbsarchive overview
          2. sbsarenum
          3. sbsargraph
          4. sbsargui
          5. sbsarguiwidgets
          6. sbsarmanager
        10. sbscommon
          1. connections
          2. gui
          3. nodes
          4. values
        11. sbspreset
        12. sbsproject
        13. substance
          1. substance overview
          2. content
          3. resource
      3. Libraries
        1. sbsenum
        2. sbslibrary
          1. sbslibrary overview
          2. sbsdictionaries
          3. sbsfilters
          4. sbsfunctions
          5. sbsfxmapnodes
          6. sbslibclasses
          7. sbswidgets
        3. sbsbakerslibrary
          1. sbsbakerslibrary overview
          2. sbsbakersdef
          3. sbsbakersdefaultprops
          4. sbsbakersdictionaries
          5. sbsbakersenum
          6. sbsbakingconverter
          7. sbsbakingconverterparam
          8. sbsbakingparameters
          9. sbsdialogstate
          10. sbsscenedata
        4. Helpers
          1. sbscleaner
          2. sbsexporter
          3. sbsgenerator
          4. sbsparser
          5. sbswriter
          6. qtclasses
            1. qtclasses overview
            2. qtvariantreader
            3. qtvariantwriter
          7. psdparser
          8. sbsimpactmanager
          9. batchtools
          10. autograph
            1. ag_functions
            2. ag_layout
            3. ag_types
          11. info_mesh_parser
          12. sbsbaker_info_handlers
          13. sbsrender_render_handlers
          14. output_handlers
          15. spotcolorinfo_handler
          16. thumbnail
          17. batchtools overview
        5. Execution context
          1. context
          2. functions
        6. API Change log
  5. Samples
    1. Samples overview
    2. Texturing Template Demo
    3. Batch Tools Demo
    4. Variations
    5. Texture Mat
    6. Pixel Processor Ray tracer
  6. Setup and Getting Started
    1. Setup and Getting Started overview
    2. Compatibility
    3. Frequently asked Questions
    4. Known issues
    5. SAT Cookbook
    6. Use Pysbs in different python interpreter (maya, sd, blender...)
  7. Integrations
    1. Substance Maya toolset
      1. Substance Maya Toolset overview
      2. Installing
      3. Launching
      4. Baking
        1. Baking overview
        2. Export parameters
        3. Baker parameters
        4. Mesh setup
        5. Using a template
      5. Changelog
  8. Changelog overview

sbsbaker Example Command Lines

This page contains examples of command lines for various environments to showcase how to invoke the command line processors. In the examples the command line tools are assumed to be in the path.

Bake 1024x1024 ambient occlusion map for a mesh

This showcases an ambient occlusion bake. The main takeaways are:

  • Spaces in paths are dealt with slightly different on different platforms. In our examples we use the python subprocess and os.path libraries to make sure these things are dealt with correctly.
  • Resolution to the baker is given as N where the resolution is 2^N so if you input 10 the resolution will be 2^10 = 1024
  • Any vector data, the resolution in this case, is given as a pair of number separated with a comma. Note that there can be no spaces in these string so an option like "--output-size 10, 10" would generate an error

This call generates a file called mesh_ambient-occlusion.png in the directory the call is made from.

Powershell (Windows)
sbsbaker.exe ambient-occlusion 'C:path with spacesmesh.fbx' --output-size 10,10
Windows command prompt
sbsbaker.exe ambient-occlusion "c:path with spacesmesh.fbx" --output-size 10,10
Linux/MacOSX
sbsbaker ambient-occlusion path with spaces/mesh.fbx --output-size 10,10

Bake 512x512 material color map from a high resolution map to the texture space of a low resolution mesh

This showcases an example of how to bake details from a high resolution mesh to a low resolution mesh. The main takeaways are:

  • Some bake operations have both a low resolution mesh and high resolution mesh as an input. This allows having a more detailed mesh when generating maps such as ambient occlusion, normals etc. that doesn't have to be unwrapped. The results will be stored in the texture space of the low resolution.
  • Many bake operation have specific options, color-source is only valid for color-from-mesh passes.

This call generates a file called mesh_low_color-from-mesh.png in the directory the call is made from.

sbsbaker color-from-mesh mesh_low.fbx --highdef-mesh mesh_high.fbx --color-source 1 --output-size 9,9

Bake 512x512 material color map from a low resolution mesh

This showcases an example of how to bake a color map without involving a high resolution mesh. The main takeaways are:

  • Some bake operations only exists in the from-mesh form. They can still be used without a high resolution mesh by giving the --use-lowdef-as-highdef option.

This call generates a file called mesh-from-mesh.png in the directory the call is made from.

sbsbaker color-from-mesh mesh.fbx --use-lowdef-as-highdef true --color-source 1 --output-size 9,9
   

Bake 512x512 curvature map and control the name and the image file type 

This showcases how to control the name and file type of the generated file. The main takeaways are:

  • The bakers can output images in multiple formats
  • sbsbaker gives you control over the name
  • You can integrate input mesh and bake operation names in the generated name if you want using \{bakerName} and \{inputName}. Note that the \{ and \} characters may need special treatment by the shell to avoid problems.

This call generates a file called curvature_mesh_test.tiff in the directory bake_results

Powershell (Windows)
sbsbaker.exe curvature mesh.fbx --output-size 9,9 --output-path bake_results --output-name '{bakerName}_{inputName}_test' --output-format tiff
Windows Command Prompt
sbsbaker.exe curvature mesh.fbx --output-size 9,9 --output-path bake_results --output-name {bakerName}_{inputName}_test --output-format tiff
Linux/MacOSX
sbsbaker curvature mesh.fbx --output-size 9,9 --output-path bake_results --output-name {bakerName}_{inputName}_test --output-format tiff

Sbsbaker run, use a Designer baker preset file as input

With Designer it's possible to save a baker preset file under json format ("Preset">"Save preset" button).
It's also possible to create or edit your own json file (with python as an instance) by respecting the SD preset syntax.

The most advantage of sbsbaker run is that it keeps meshes file in memory for each baking. If several baking tasks are not parallelized between different machines, sbsbaker run is by far the fastest way to process several bake on a single machine with SAT.

This file can be pass to the sbsbaker run.

sbsbaker run --json sd_baker_preset.json

Sbsbaker will process each bakers with its parameters present in the json file.

Simple json file:

{
    "Ambient Occlusion": {
        "baker": "ambient-occlusion",
        "parameters": {
            "details": 0.6000000238418579,
            "normal": "",
            "normal-format": 1,
            "normal-invert": false,
            "normal-world-space": false,
            "output-format": "png",
            "output-size": {
                "height": 11,
                "width": 11
            },
            "quality": 1,
            "spread": 0.009999999776482582,
            "udim": "1001",
            "use-neighbors": false,
            "uv-set": 0
        },
        "sbsindex": 0
    },
    "Position": {
        "baker": "position",
        "parameters": {
            "axis": 0,
            "mode": 0,
            "normalization": 1,
            "normalization-scale": 1,
            "output-format": "png",
            "output-size": {
                "height": 11,
                "width": 11
            },
            "udim": "1001",
            "uv-set": 0
        },
        "sbsindex": 1
    },
    "apply-diffusion": true,
    "average-normals": true,
    "cage-mesh": "",
    "dilation-width": 4,
    "distance-with": 0,
    "ignore-backface": true,
    "inputs": "input_mesh.fbx",
    "invert-skew": false,
    "match": 0,
    "max-frontal": 0.009999999776482582,
    "max-rear": 0.009999999776482582,
    "output-format": "png",
    "output-name": "{mesh}_{bakername}",
    "output-path": "output_path/directory",
    "output-size": {
        "height": 11,
        "width": 11
    },
    "relative-to-bbox": true,
    "sbsoutput-place-into-specific-folder": false,
    "sbsoutput-resource-method": 1,
    "skew-correction": false,
    "skew-map": "",
    "subsampling": 0,
    "use-lowdef-as-highdef": true,
    "uv-set": 0,
    "uvTiles": ""
}
  

 Adobe

Get help faster and easier

New user?