MaterialX  1.38.4
MaterialX Overview

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_PYTHON option to build Python bindings.

Supported Platforms

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.

Building MaterialX C++

The MaterialX C++ libraries are automatically included when building MaterialX through CMake.

Additional options for the generation of MaterialX C++ include the following:

  • MATERIALX_BUILD_OIIO: Requests that MaterialXRender be built with OpenImageIO instead of stb_image, extending the set of supported image formats.
  • MATERIALX_OIIO_DIR: Path to the root folder of an OpenImageIO installation. If MATERIALX_BUILD_OIIO has been enabled, then this option may be used to select which installation is used.

Building MaterialX Python

By default, the MATERIALX_BUILD_PYTHON option will use the active version of Python in the developer's path. To select a specific version of Python, use one or more of the following advanced options:

  • MATERIALX_PYTHON_VERSION: Python version to be used in building the MaterialX Python package (e.g. 2.7)
  • MATERIALX_PYTHON_EXECUTABLE: Python executable to be used in building the MaterialX Python package (e.g. C:/Python27/python.exe)

Additional options for the generation of MaterialX Python include the following:

  • MATERIALX_PYTHON_OCIO_DIR: Path to a folder containing the default OCIO configuration to be packaged with MaterialX Python. The recommended OpenColorIO configuration for MaterialX is ACES 1.2.
  • MATERIALX_PYTHON_PYBIND11_DIR: Path to a folder containing the PyBind11 source to be used in building MaterialX Python. Defaults to the included PyBind11 source.

Building The MaterialX Viewer

Select the MATERIALX_BUILD_VIEWER option to build the MaterialX Viewer. Installation will copy the MaterialXView executable to a bin/ directory within the selected install folder.

Building API Documentation

To generate HTML documentation for the MaterialX C++ API, make sure a version of Doxygen is on your path, and select the advanced option MATERIALX_BUILD_DOCS in CMake. This option will add a target named MaterialXDocs to your project, which can be built as an independent step from your development environment.

Installing MaterialX

Building the install target of your project will install the MaterialX C++ and Python libraries to the folder specified by the CMAKE_INSTALL_PREFIX setting, and will install MaterialX Python as a third-party library in your Python environment. Installation of MaterialX Python as a third-party library can be disabled by setting MATERIALX_INSTALL_PYTHON to OFF.

Additional Links