autodesk-forks / MaterialX

MaterialX C++ and Python libraries
http://www.materialx.org/
Apache License 2.0
107 stars 23 forks source link
lookdev materialx pbr-materials real-time-rendering

License Version Build Status CII Best Practices

Introduction

MaterialX is an open standard for representing rich material and look-development content in computer graphics, enabling its platform-independent description and exchange across applications and renderers. Launched at Industrial Light & Magic in 2012, MaterialX has been a key technology in their feature films and real-time experiences since Star Wars: The Force Awakens and Millennium Falcon: Smugglers Run. The project was released as open source in 2017, with companies including Sony Pictures Imageworks, Pixar, Autodesk, Adobe, and SideFX contributing to its ongoing development. In 2021, MaterialX became the seventh hosted project of the Academy Software Foundation.

Quick Start for Developers

Supported Platforms

The MaterialX codebase requires a compiler with support for C++17, and can be built with any of the following:

The Python bindings for MaterialX are based on PyBind11, and support Python versions 3.6 and greater.

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

Open Chess Set

The Open Chess Set is an open reference asset, consisting of a MaterialX file in the Standard Surface shading model and a geometry file in the glTF format. It was authored by Moeen Sayed and Mujtaba Sayed, and was contributed to the MaterialX project by Side Effects.

Figure 3: The Open Chess Set, rendered in Arnold for Maya The Open Chess Set rendered in Arnold for Maya

Figure 4: The Open Chess Set, rendered in Karma XPU for Houdini The Open Chess Set rendered in Karma XPU for Houdini

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