/MaterialX

MaterialX is an open standard for transfer of rich material and look-development content between applications and renderers.

Primary LanguageC++OtherNOASSERTION

MaterialX

License Travis Build Status Appveyor Build Status

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.
  • Select the MATERIALX_BUILD_VIEWER option to build the MaterialX viewer.

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.

Repository

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.

MaterialX Viewer

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

Additional Resources

  • The Developer Guide contains more detailed documentation and code examples in C++ and Python.