MaterialX is an open standard for transfer of rich material and look-development content between applications and renderers. Originated at Lucasfilm in 2012, MaterialX has been used by Industrial Light & Magic (ILM) in feature films such as Star Wars: The Force Awakens and real-time experiences such as Trials on Tatooine, and it remains the central material format for new ILM productions.
- 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.
- 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
Figure 3: Droid character materials in the MaterialX viewer. © & TM Lucasfilm Ltd. Used with permission.
The following packages contain pre-built binaries for the latest release, including the MaterialX viewer, Python libraries, and example assets:
- Microsoft Windows (Visual Studio 2017, Python 3.7)
- MacOS (Xcode 11, 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.
- Presentations at the Physically Based Shading Course and MaterialX Birds of a Feather provide details on the roadmap for MaterialX development.