Skip to content

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

License

Notifications You must be signed in to change notification settings

loryxia/MaterialX

 
 

Repository files navigation

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:

  • documents - MaterialX documentation, including the specification and developer guide.
  • libraries - The standard data libraries for MaterialX, including definitions for the pattern and shading nodes.
  • python - Support modules and example scripts for MaterialX Python.
  • 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 binaries are automatically generated from the latest GitHub revision:

Additional Resources

  • 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 Autodesk Vision Series provide details on the roadmap for MaterialX development.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 70.1%
  • C 25.9%
  • GLSL 1.4%
  • Python 1.3%
  • CMake 1.2%
  • Objective-C 0.1%