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.
Quick Start for Developers
- 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_PYTHONoption to build Python bindings.
- Select the
MATERIALX_BUILD_VIEWERoption 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:
- source - Cross-platform C++ libraries for MaterialX with Python bindings.
- python - Support modules for MaterialX Python.
- documents - MaterialX documentation, including its specification and developer guides.
- libraries - The standard data libraries for MaterialX, including the definitions of its pattern and shader nodes.
- resources - Resources for rendering MaterialX content, including example materials, images, and geometry.
The MaterialX Viewer leverages shader generation to build GLSL shaders from MaterialX graphs, rendering the results using the NanoGUI framework.
Figure 1: Standard Surface Shader with procedural and uniform materials
Figure 2: Standard Surface Shader with textured, color-space-managed materials
- The Developer Guide contains more detailed documentation and code examples in C++ and Python.