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_JS
option to build JavaScript 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 JavaScript bindings for MaterialX are based on emscripten.
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 standard and physically-based-shading nodes.
- python - Support modules and example scripts for MaterialX Python.
- javascript - Support modules and tests for MaterialX JavaScript.
- 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.
- The JavaScript source folder contains more information about the setup.