Created by Dylan Sisson

© Disney / Pixar.

Tutorials | Substance to RenderMan

Substance to RenderMan

Overview

This tutorial shows how to set up a Substance to RenderMan workflow using the plugin, RenderMan for Substance Painter 2.x. Please note this plugin is under development and has some limitations, but it still quite useful. (Check for the latest updates on the official GitHub page.)

The RenderMan for Substance Painter Plugin uses the RenderManAsset format introduced in RenderMan For Maya version 21, which allows for easy material setup interchange and includes dependencies like textures or OSL shaders.

At the end of this lesson you should be able to create materials in Allegorithmic's Substance Painter and import them into the RenderMan Preset Browser with a push of a button.

Ok. With that said, let's get started.


Required Software

This plugin will NOT work without the following software:

  • Substance Painter 2.3+
  • RenderMan Pro Server 21.0+
  • RenderMan For Maya 21.0+
  • RenderMan for Substance Painter Plugin
  • Python 2.7+ (but not Python 3.x)

Installation

1) Allegorithmic's Substance Painter

You will need to have Substance Painter installed on your machine. If you do, great.

If you don't have Substance Painter installed you can download a 30 Day Trial at Allegorithmic. Note Substance Designer is not compatible with the plugin, so you must have Substance Painter installed.

2) Pixar's RenderMan

You will need to have RenderMan installed on your machine. If you don't have RenderMan installed you can download Non-Commercial RenderMan now and try the full-featured version for free.

3) Autodesk Maya

To use the RenderMan Preset Browser, you'll want to have Maya installed. Only Maya supports the Preset Browser at this time. You can get Maya from Autodesk here: www.autodesk.com Please note that RenderMan support for Maya 2018 is expected to be released late November 2017.

4) RenderMan for Substance Painter Plugin

Finally, you will want to install the RenderMan plugin for Substance Painter. You can find the plugin on Github: RenderMan for Substance Painter 2.x. This plugin was written by Pixar's Philippe LePrince, and while the plugin has some limitations, it is still quite useful. However, the plugin is under development, with more features to come.

Installing the Plugin --- Please note this plugin has only been tested on OSX

  1. Download the most recent version of the plugin from Github: https://github.com/pleprince/RfSP/releases
  2. Unzip the archive.
  3. Copy the "RenderMan" folder contained inside the archive to Substance Painter's "Plugin" folder. On OSX, you'll find that folder here: OSX: /Users/yourlogin/Documents/Substance Painter 2/plugins/
  4. Run Substance ... RenderMan should now appear in the "Plugins" menu.

5) Install Python

The plugin requires Python to run correctly. Please note that Python 2.7+ is required, but Python 3.x will NOT work.

    1. Download Python 2.7+ (but not Python 3.x)
    2. Run the installer

    With the above software installed, you're ready to configure your Substance to RenderMan workflow. Just follow the steps below to set up RenderMan for Substance Painter.


    Configuration

    Once you have everything properly configured, you'll be able to build materials in Substance Painter and automatically export them directly to the RenderMan Preset Browser in Maya.

    1) Configure the RenderMan Asset Library

    The plugin, RenderMan for Substance Painter, will write materials to your RenderMan Asset Library so they automatically update in your RenderMan Preset Browser. You must configure this location manually for this to work. The location should be readable and writable. (The Preset Browser will not allow you to create new assets if it points to a non-writable location.) In a new location, another bonus is that the library won't be overwritten when you reinstall the software ... and overwrite all your fancy Substance Materials.

      1. Put the RenderMan Asset Library somewhere useful
        • The default library can be found here: $RMANTREE/lib/RenderManAssetLibrary/
        • Move the library somewhere useful, like your Maya projects directory. For example: /Users/USERNAME/Documents/maya/RenderManAssetLibrary/
      2. Point Maya to the Asset Library
      3. Create the directory where the Substance Materials will go
        • In our example we will call the directory "SubstancePainter"
        • Create that directory in the top level of your asset library, like this: /Users/USERNAME/Documents/maya/RenderManAssetLibrary/SubstancePainter
        • Open Maya (restart is required) and the new category will appear in the RenderMan Preset Browser
        • Alternatively, the new category can be added using the Preset Browser GUI (click on the big "plus sign" at the bottom of the window). Either way will work!
      4. Point Substance to the Asset Library
        • From Substance open...
        • Substance -> Plugins -> RenderMan -> Configure (as shown in the image)


        • In the Export To field, set the location of your Asset Library's Substance Directory (as shown in the image)


        • While you have the panel open, move to the next steps ...

      2) Point Substance to RenderMan

      You'll want to configure Substance to find your installation of RenderMan so the Materials can be compiled properly. You can do this in the same panel that we used to set the location of the Asset Library

        1. Point Substance to RPS
          • From Substance open ...
          • Substance -> Plugins -> RenderMan -> Configure -> RenderMan Pro Server
          • Set the location of your installation of RPS
          • For reference the default location on OSX is /Applications/Pixar/RenderManProServer-XX
        2. Point Substance to RFM
          • From Substance open ...
          • Substance -> Plugins -> RenderMan -> Configure -> RenderMan for Maya
          • Set the location of your installation of RFM
          • For reference the default location on OSX is /Applications/Pixar/RenderManForMaya-XX.X-mayaXXXX
          • For reference the default location on OSX is /Applications/Pixar/RenderManForMaya-XX.X-mayaXXXX

          Congratulations, if everything went as planned you now are ready to export your Substance Materials to RenderMan. If you'd like to watch a demo that walks you through the steps above, here it is ...

          Exporting from RfSP

          To export a Substance Material, in your project simply click one of the Pixar Buttons in the shelf. Pressing "D" creates a pxrDisney material in you RenderMan Preset Browser and Pressing "S" creates a pxrSurface material.

          The exported material(s) will appear in your RenderMan Preset Browser and will be named after the Substance Shader in your project'sTextureSet List, for example "sp_SHADERNAME".

          Alt

          Option 1) Alt Export to Pixar Disney (pxrDisney)

          Using this option, the Substance material will be exported as a pxrDisney material in the RenderMan Preset Browser.

          • Limitations
            • The Substance Painter project MUST use the PBR - Metallic Roughness HQ template.
            • When importing materials from Substance with Normal information (bump) the export will work correctly. However, for surfaces using Height information, you must manually disconnect the Normal map, and attached a pxrBump, and then reference the Heightmap to get it the bump to appear.
            • Opacity is not supported by PxrDisney.

          Option 2) Alt Export to Pixar Surface (pxrSurface)

          The first implementation of PxrSurface support does a reasonably good job, but keep in mind this material is more experimental, and may not capture the Substance Material as accurately as the pxrDisney export. benefits of pxrSurface include support transparency, subsurface scattering, and many other features which can make it a superior choice over pxrDisney. Please note the following caveats.

          • Limitations
            • The Substance Painter project MUST use the PBR - Metallic Roughness HQ template.
            • When importing materials from Substance with Normal information (bump) the export will work correctly. However, for surfaces using Height information, you must manually disconnect the Normal map, and attached a pxrBump, and then reference the Heightmap to get it the bump to appear.
            • When imported, the "Primary Specular" mode of each shader must be switched from Physical from Artistic to obtain correct response. See Pixar Surface for more details. If this isn't done the specular response will be blown out.
            • There may be cases where pxrSurface doesn't capture the material as accurately as pxrDisney.

          Known Issues

          • No progress indication during export: be patient! It takes time to export the maps and turn them into textures. The plugin will print a message in the log when done.
          • No UDIM support yet.
          • Only tested on OSX.

          Release Notes

          For the most up to date release notes, check out the RfSP GitHub.

           
           
           

          NEWS | Check out the RenderMan "SciTech" Art Challenge Winners!