MaterialX is an open standard for representing rich material and look-development content in computer graphics, enabling its platform-independent description and exchange across applications and renderers. Launched at Industrial Light & Magic in 2012, MaterialX has been a key technology in their feature films and real-time experiences since Star Wars: The Force Awakens and Millennium Falcon: Smugglers Run. The project was released as open source in 2017, with companies including Sony Pictures Imageworks, Pixar, Autodesk, Adobe, and SideFX contributing to its ongoing development. In 2021, MaterialX became the seventh hosted project of the Academy Software Foundation.
- Download the latest version of the CMake build system.
- Point CMake to the root of the MaterialX library and generate C++ projects for your platform and compiler.
- Select the
MATERIALX_BUILD_PYTHON
option to build Python bindings. - Select the
MATERIALX_BUILD_VIEWER
option to build the MaterialX viewer.
The MaterialX codebase requires a compiler with support for C++11, and can be built with any of the following:
- Microsoft Visual Studio 2015 or newer
- GCC 4.8 or newer
- Clang 3.3 or newer
The Python bindings for MaterialX are based on PyBind11, and support Python versions 2.7 and 3.x.
The MaterialX repository consists of the following folders:
- documents - MaterialX documentation, including the specification and developer guide.
- javascript - Support modules and example scripts for MaterialX JavaScript.
- libraries - The standard data libraries for MaterialX, including definitions for the pattern and shading nodes.
- python - Support modules and example scripts for MaterialX Python.
- resources - Resources for rendering MaterialX content, including example materials, images, and geometry.
- source - Cross-platform C++ libraries for MaterialX with Python bindings.
The MaterialX Viewer leverages shader generation to build GLSL shaders from MaterialX graphs, rendering the results using the NanoGUI framework.
Figure 1: Procedural and uniform materials in the MaterialX viewer
Figure 2: Textured, color-space-managed materials in the MaterialX viewer
The following packages contain pre-built binaries for the latest release, including the MaterialX viewer, Python libraries, and example assets:
- Microsoft Windows (Visual Studio 2019, Python 3.8)
- MacOS (Xcode 12, Python 3.7)
- Linux (GCC 10, Python 3.7)
- The Developer Guide contains a developer-oriented overview of MaterialX with API documentation.
- The Python Scripts folder contains standalone examples of MaterialX Python code.
- The JavaScript folder contains details on building JavaScript bindings for MaterialX.
- Presentations at the Physically Based Shading Course and ASWF Open Source Days provide details on the roadmap for MaterialX development.