Skip to content

sdunkel/MaterialX

 
 

Repository files navigation

MaterialX

License Version 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_JS option to build JavaScript 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.

The JavaScript bindings for MaterialX are based on emscripten.

Repository

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.

MaterialX Viewer

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.

Pre-Built Binaries

The following packages contain pre-built binaries for the latest release, including the MaterialX viewer, Python libraries, and example assets:

Additional Resources

About

MaterialX C++ and Python libraries

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Mathematica 89.7%
  • C++ 9.3%
  • Python 0.3%
  • CMake 0.2%
  • GLSL 0.2%
  • C 0.2%
  • Other 0.1%