Skip to content

Latest commit

 

History

History
139 lines (114 loc) · 8.38 KB

README.md

File metadata and controls

139 lines (114 loc) · 8.38 KB

🚂 PBR-Express

Most recent patch notes can be seen here.

PBR-Express is a handy tool for Houdini that makes it quick and easy to create PBR materials. Just toss in your texture files and the tool will instantly set up a material for your preferred renderer. It's all about saving time on the boring stuff, so VFX artists can focus more on getting creative with their materials. Enjoy a smooth process that turns textures into usable materials in Houdini!

🎬 Showcase

PBR-Express

🔑 Key-Features

Quickly create PBR materials with just a few clicks!
Input your texture set, select your preferred renderer and the path to your material library and voilà! See "Manual" for more details on how to use the tool.

Easy copy-paste installation
No need to download anything, just copy and paste the raw code from PBR-Express.py as a shelf tool. See "Installation".

Texture-naming flexibility
Supports any texture sets that have the texture type written somewhere in the name. See "How to use" for more infos.

Support for different renderers
The script is currently able to create materials for Karma (MTLX Surface Shader) and Mantra (Principled Shader). Nevertheless, its quite easy to add support for other render engines. See "Contributing" for more infos.

Bulk creation of materials
See "Tips".

Support for UDIMs
See "How to use".

Unknown texture handling
The script currently supports albedo(diffuse), ao, height(displacement), normal, roughness, metallic, alpha(opacity), emission, refraction(translucency), and SSS maps. If the script does not recognize a certain type of texture, it will create the image node anyway, but not connect it to anything.

Preset-oriented workflow
Every texture providing website has its own naming convention. Some call it albedo while others call it diffuse. This tool tries to streamline the process of differentiating between all of those naming conventions and having one central data variable (`supportedTexture_data`) that is easily expandable and holds every possible variation of a certain texture name. See "How it works".

Expandable from the ground up
The script was created with easy expansion in mind. New texture types are straightforward to add and with a bit of Python knowledge even support for new render engines can be added without waiting for this repo to be updated. See "Contributing" for more infos.

Active node network detection
See "Tips"

📋 Requirements

  • Houdini license of any kind (Apprentice, Core, Indie, FX, ...)
  • Houdini 20+ (may work with older versions, but it's untested.)
  • Python 3 comes preinstalled with Houdini (may vary for Linux/Mac; check the official documentation)

🛠️ Installation

  1. Go to the PBR-Express.py file
  2. Copy the raw text (button on the top right)
  3. Inside Houdini, go to any shelf tab and right click > New Tool...
  4. Optional: Name your tool however you like
  5. Optional: Pick a fitting icon, I use BUTTONS_chooser_folder or BUTTONS_chooser_image_color
  6. Under the tab script, just paste the previously copied raw code
  7. On the bottom right, click Apply & Accept

📖 Manual

How it works

The tool uses the data from these two main variables to match each input file to a known texture type and create the proper material setup for the renderer of choice.

supported_renderers: This is a simple list of all of the supported renderers.

supportedTextures_data: This variable holds all of the supported texture types METALLIC with every variation of name it can have. ['metallic', 'metalness'] Can be both upper and lowercase, the script will check both anyway.

How to use

  1. Press the shelf tool and you will be prompted with a menu. You can now choose if you want to select your texture files normally or if you want to select one or multiple folders. This can be helpful if you have textures for multiple materials all in one directory. The script will try to match the files by name while also going through subfolders, so use caution when using on a big texture library.
  2. Choose your preferred textures. The files need to have the texture type (albedo, normal, etc.) somewhere in the file name and be sepparated by _ or a -. If your files don't get recognized, have a look at supportedTextures_data and see if the naming is in the database. Additionally, you can load in UDIM textures by checking the Show sequences as one entry toggle on the bottom of the Houdini file explorer and choosing the files. You can have it set to Frame Range OR UDIM, but the tool will automatically convert the numbering to "<UDIM>". This only works when using the "File" import mode. The "Folder" importer will try to recognize UDIM sequences and import them accordingly, no need for extra user input.
  3. Choose the preferred renderer.
  4. Choose the material library in which the material will be created. If this dialog does not come up, that means that the script recognized your open network tab as a valid VOP network and will drop the materials there.

Tips

  • You can save yourself a click if you have already a valid material network open as your active node network. The script will assume that that is where you want your materials to be created and won't ask for a path. Also, if you have a material network selected, it will use that as destination for the new materials.
  • The script writes logs to the console for every major action it takes. In the case of troubleshooting, it might be worth having a look.
  • For even more troubleshooting, one could have a look at /$HOUDINI_TEMP_DIR/$HIPNAME/PBR-Express, where the script saves out a basic log file every time it runs. The file logs how every file is being interpreted and can help finding faulty named textures or issues with the script. The exact path of the log file will always be printed out to the console after the script is done creating the materials.

🔮 Future Plans

  • Adding support for other render engines like Vray, Arnold, Redshift, ...
  • Adding support for more texture types like emission, translucency, refraction, sss, ...
  • Adding support for more types of texture names (e.g. file names that are separated by -)
  • The option to create multiple sets of materials once the script is active
  • Some intuitive solutions for dealing with color spaces
  • Make adding new naming variations easier
  • Adding a feature for mixing multiple selected PBR textures
  • Adding UDIM support

❤️ Support

If you find this Houdini script helpful and want to support its ongoing development along with other tools, there are a few ways you can express your appreciation:

Buy Me a Coffee

Thank you for contributing. You can donate directly here.

Connect on Social Media

Stay updated on the latest developments and enjoy some memes by following me on social media. Your engagement and feedback mean a lot.

Share Your Experience

I'd love to hear how you're using the tool in your projects. Drop me a message about your experiences, challenges, or success stories. Your insights can help shape future improvements. Feel free to reach out via email or through the GitHub Issues page.

Your support, whether through a small donation or a simple message, greatly motivates me to enhance and maintain this tool for the community. Thank you for being part of this journey!