ILM Material X

Lucasfilm and Industrial Light & Magic (ILM) are releasing the first iteration of MaterialX as an Open Source Library. MaterialX is an open standard developed by Lucasfilm’s Advanced Development Group and ILM engineers to facilitate the transfer of rich materials and look-development content between applications and renderers.

MaterialX continues to be developed. It is currently in version 1.34

As we discussed when we first covered MaterialX here at fxguide in April, for an open source to take off, it needs strong support from the VFX application community. At that time, companies such as the Foundry were interested, but they wanted to see more work done. Today, key companies such as the Foundry and also Autodesk have voiced their full support for MaterialX.

“Foundry is happy to see the MaterialX project reach this latest milestone,” said Jordan Thistlewood ‐ Senior Product Manager: Look Development and Lighting at the Foundry. “The possibilities for smoothing the transfer of look development information between our own applications is exciting. The broader principle of open source projects and multi-vendor data exchange are important for the industry as a whole. Thus we look forward to including MaterialX powered workflows in future releases of our applications.”

Chris Vienneau, Director of Media and Entertainment at Autodesk noted, “Autodesk is very pleased to be a contributor to the MaterialX project and we are looking forward to adding native support for MaterialX workflows to our digital content creation tools. As with other open formats, MaterialX is going to improve collaboration and help make production pipelines more efficient, so we are thankful that Lucasfilm have chosen to share their technology with the community through open source software.”

Originated at Lucasfilm in 2012, MaterialX has been used by ILM in feature films such as Star Wars: The Force Awakens and Rogue One: A Star Wars Story, and real‐time immersive experiences such as Trials On Tatooine.

The shots shown here in our fxguide story were all rendered in RenderMan using MaterialX. A handful of shots of K-2SO in the Rogue One: A Star Wars Story were rendered in a customized ILM version of UE4 game engine, (though not the image below), they also utilized MaterialX.

There are at least four distinct interrelated data relationships needed to specify the complete “look” of a CG object according to the MaterialX Spec, (as we mentioned in our April story):

  1.  Define the texture processing networks of image sources, image processing operators, connections and parameters used to combine and process one or more sources (e.g. textures) to produce the texture images that will eventually be connected to various shader inputs (e.g. “diffuse_albedo” or “bumpmap”).
  2. Define geometry-specific information such as associated texture filenames or IDs for various map types.
  3. Define the parameter values and connections to texture processing networks for the inputs of one or more rendering or post-render blending shaders, resulting in a number of materials.
  4. Define the associations between geometries in a model and materials to create number of looks for the model.

At the moment, there is no common, open standard for transferring all of the above data relationships. Various applications have their own file formats to store this information, but these are either closed, proprietary, inadequately documented or implemented in such a way that using them involves opening or replicating a full application. Thus, there is a need for an open, platform-independent, well-defined standard for specifying the “look” of computer graphics objects built using shader networks so that these looks or sub-components of a look can be passed from one software package to another or between different facilities.

Foundry details

Though the Foundry have not yet had the chance to do a lot of direct user facing feature work, (other than at ILM), with MaterialX. the LookDev. team in the UK we are pretty excited about seeing how it can now be used more widely. Jordan Thistlewood, Senior Product Manager – Look Development and Lighting at Foundry explained further how MaterialX could work in a Foundry pipeline.

  “With the rise in demand for Katana over the last couple of years it has become more pressing for us to ensure tools like Mari and Katana work better together.  So we are looking forward to using MaterialX to ensure that the shading networks and texture maps created in Mari can be transported to Katana.  Things like the Bake Point nodes in Mari’s node graph provide a logical caching point as inputs before a shader to ensure the workflow stays flexible but powerful.”

This is would seem like the first logical step for the Foundry.  He continues, “some clients ask about transport from Katana back to Mari if they started the shading development and then need to create texture maps for that setup.  That will be a longer process as it implies more correlation between shading nodes in the two packages or that each Katana rendering plugin support texture baking”.

Currently, the J Cube Multiverse tools provide a MaterialX based file transport of Maya shading networks to Katana through a light weight set of libraries that the J Cube call MaterialXS built from the published MaterialX specification.  “This works best with 3Delight which is 100% identical OSL code in both Maya and Katana.  The Arnold 5 support is being worked on and I expect the team will expand the support as time allows to other renderers” Thistlewood adds.

 

Workflows at Computer Graphics production studios require multiple software tools for different parts of the production pipeline, and shared and outsourced work requires companies to hand off fully look‐developed models to other divisions or studios which may use different software packages and rendering systems. There are currently high‐quality solutions (e.g. USD, Alembic) for exchanging scene hierarchies and geometric data between tools, but no effective solutions for exchanging rich material content.

The purpose of the MaterialX open standard is to define a schema for CGI material looks with exact operator and connection behavior for all data components, and a standalone file format for reading and writing material content using it. The standard does not attempt to impose any particular shading models or any interpretation of images or data. It is not intended to represent any particular workflow or dictate data representations that a tool must support, but rather to define a flexible interchange standard compatible with many different possible ways of working. A particular tool might not support multi-layer images or even shader networks, but it could still write out looks and materials in the proposed format for interchange and read them back in

MaterialX addresses the current lack of a common, open standard for representing the data values and relationships required to transfer the complete look of a computer graphics model from one application or rendering platform to another, including shading networks, patterns and texturing, complex nested materials and geometric assignments. MaterialX provides a schema for describing material networks, shader parameters, texture and material assignments, and color‐space associations in a precise, application-independent, and customizable way.

Lucasfilm is a long time supporter of open source projects having developed and released many projects over the years. The company has played a key role in developing Alembic, which it co‐developed with Sony Imageworks and released in 2012, as well as the industry image backbone, OpenEXR, which was developed by ILM back in 2000. Both have become major industry standards and continue to be developed by the open source community.

MaterialX is an Open Source project released under a modified Apache license.

For more information visit there is a MaterialX website:  MaterialX is also on Twitter @MaterialXCG