Chaos
Architecture

Industry solutions

Explore our ecosystem

Products

Media & Entertainment

Industry solutions

Explore our ecosystem

Products

Product & E-Commerce

Industry solutions

Explore our ecosystem

Products

Education & CommunityHelp

Chaos Help Center


What are you looking for?

feature-maya-houdini-materialx-MaterialX-1410x800.jpg
feature-maya-houdini-materialx-MaterialX-1410x800.jpg

MaterialX and V-Ray: Crafting the next chapter in 3D creativity


Discover how V-Ray 6, update 2 integrated MaterialX into V-Ray for Maya and Houdini's Solaris for effortless shader graph exchange and seamless collaboration.

MaterialX has opened the door to efficiently exchanging shader graphs between teams and tools. This new standard of describing materials is now available in V-Ray 6.2. We look at the new possibilities this release unlocks in V-Ray for Maya, V-Ray for Houdini in Solaris, and the rest of the V-Ray products.


What is MaterialX?

MaterialX is an open standard for exchanging looks between DCC applications and renderers. It was initially developed at Industrial Light & Magic and later open-sourced and contributed to by leading VFX and animation studios, as well as software vendors. It’s a common way of describing materials that eliminates the need to manually recreate shading networks or bake shaders to textures when transferring look-development data between applications. Ultimately, this allows artists to create consistent looks in various stages of the production pipeline, from asset creation to final frames, without worrying about compatibility issues across tools.

The Universal Scene Description (USD) framework is seeing larger adoption for its capabilities of transferring scene data between applications, but also for paving the way towards flexible assembly workflows. By incorporating MaterialX into the USD format, artists can achieve a comprehensive solution for transferring both geometry (with USD) and shading graphs (with MaterialX). 

What’s possible with MaterialX?

We can look at MaterialX from a few different angles. On the one hand, it provides a standardized way of describing almost any shader and thus standardizes publishing shading networks for reuse in later pipeline steps. More importantly, though, it breaks down the barriers to effective material exchange. With MaterialX, you can take a shading network from one application, such as Maya, to another one, like Houdini — and maintain full editability in the process. And to top it off, MaterialX shading graphs are interchangeable between renderers, meaning that artists can throw the same material to different renderers and expect a somewhat similar result, without having to rebuild any part of the graph. Let’s look at some examples.


Tool interoperability

Going into specific examples, artists are now able to create a complete look-dev for an asset in Maya and transfer it over to Houdini where they can examine the shading graph and modify it freely. Any modifications can be brought back into Maya, or the shaders can even be created or replaced in Houdini.

A character asset created in Maya and transferred to Solaris, where the shaders were further modified to better fit the environment.

Teams interoperability

In the end, this translates to boosting the ease of collaboration between artists, departments, and even studios. Not having to spend any time manually rebuilding shaders, or maintaining an automated data exchange pipeline, means that artists can focus on being creative in the tools they’re comfortable with and where they are most efficient in their work.


Unlocking MaterialX support in V-Ray

About a year ago, we started work on supporting MaterialX in V-Ray with a clear vision – empowering artists to enhance their workflows. We set out to support MaterialX not only within the V-Ray Hydra delegate in SideFX Houdini’s Solaris, but also to employ the shading nodes natively in V-Ray Standalone and integrations based on it, like V-Ray for Maya. In addition, we wanted to include simple read-only loading of any .mtlx file in V-Ray so it can be applied to any object outside of the USD stage, allowing the use of any MaterialX library as an extension of the artists’ toolset. Combined, these were big challenges for the team — but here’s how it all works.

In Houdini, the Hydra architecture serves as a rendering API that enables various render engines to integrate with USD. A Hydra delegate, therefore, acts as a bridge between the renderer (for example, V-Ray) and the USD framework. V-Ray’s Hydra delegate can now interpret MaterialX shading graphs created in Houdini’s Solaris.

In Solaris, V-Ray supports the Standard Surface material, in addition to many of the texture nodes available in the ‘vanilla’ MaterialX Builder VOP. An artist could build a shading graph using the MtlX Image VOP to load textures, the MtlX Geometry Property Value for sampling geometry attributes/primvars, or one of the additional Math and Procedural VOPs to further customize the data flowing into the Standard Surface input sockets.

image2resized.jpg

Solaris further provides artists with the ability to re-create and edit the shading graph at a later stage in the pipeline. This is easily achieved using the Edit Material Network LOP – passing a material and clicking the “Load” button will rebuild it for editing.

image1resized.jpg

The V-Ray Standalone integration of MaterialX allows artists to generate a scene description from their favorite Digital Content Creation (DCC) tool and render it through the command line or via Chaos Cloud Rendering, independently of the DCC used for scene generation – thus optimizing studio workflows and license costs.

We built a reusable translation layer that is used to read MaterialX graphs in our integrations, which means that V-Ray and V-Ray Hydra can now interpret the same number of MaterialX nodes, and support is consistent. The added benefit of the shared translator is that it also equalizes the reading and rendering of USD data between V-Ray for Maya and Solaris. 

image7resized.jpg
USD data in a scene rendered in Chaos Cloud

V-Ray for Maya, which is closely based on V-Ray Standalone, gets the same level of support for any MaterialX shader loaded in a USD stage. V-Ray also supports the LookDevX editor in Maya, where artists can create MaterialX graphs and push them to a USD stage or read and modify graphs loaded from a stage with interactive updates in V-Ray IPR.

MaterialX comes as a library of shading nodes. To be able to render MaterialX graphs, V-Ray needs to support these shading nodes. At the moment, we support most of them, with the exception of LaMa nodes. Artists can create V-Ray shaders directly in Maya’s LookDevX to take advantage of exchangeable V-Ray shading data between MaterialX-powered applications.

V-Ray shading graphs can be exported to .mtlx files directly from Maya too.

image6.jpeg

Lastly, V-Ray 6.2 can load .mtlx files and apply the contained material to any object in the scene outside of the USD stage, making it possible to use any MaterialX library of materials that a user gets access to. In most integrations, the VRayVRmat material can be used just as well as the MaterialX material in 3ds Max or the new VRayMaterialX node in Maya.


Conclusion

V-Ray is now compatible with USD and MaterialX across the board. With V-Ray 6, Update 2, we add support for MaterialX in Maya and Houdini’s Solaris. Furthermore, fully modifiable shading graphs can now be exchanged between DCCs (and renderers) supporting MaterialX and rendered with V-Ray, with an additional read-only capability available in the rest of the V-Ray products. This makes it possible to truly create once and move anywhere.

Make use of MaterialX.

Try V-Ray free for 30 days.
© Škoda Design

Subscribe to our blog.

Get the latest news, artist spotlight stories, tips and tricks delivered to your inbox.

By submitting your information you are agreeing to receive marketing messages from Chaos. You can opt-out at any time. Privacy Policy.

Chaos
© 2024 Chaos Software EOOD. All Rights reserved. Chaos®, V-Ray® and Phoenix FD® are registered trademarks of Chaos Software EOOD in Bulgaria and/or other countries.