As Blender continues to grow in popularity and becomes even more of an industry standard in production studios, being adaptable to other production workflows and pipelines is an absolute necessity. Especially, since many studios rely on multiple 3D applications to produce their work and need the ability to exchange scene description data between applications. Fortunately, AMD has just released a way to make this possible for Blender users. Keep reading to find out more!
What Is USD?
Production pipelines that produce graphics and visual effects for games and film are fairly massive, usually meaning that large packets of 3D data or “scene descriptions” are created, stored, and transferred. Each of the multiple applications used in a pipeline are stronger at some aspects than others (e.g., modeling, lighting, material assigning, animation, visual effects, etc.), so they need to be able to communicate with one another in a mutual language in order for each aspect of a project to successfully be incorporated.
Over the years, leading animation studio Pixar has used pipelines like these in their film productions, with them even becoming the pioneers of a type of composite and rendering technology called Universal Scene Description.
Also known as USD, Universal Scene Description is the first software available to the public that allows for the quick and seamless layering, augmentation, exchange, and composition of 3D scenes that are built of multiple assets (i.e., 3D models) through the use of multiple applications. For example, models built in Maya with particle effects generated in SideFX Houdini can be composited together seamlessly with sub-layering and adjusted to match each other on one machine as opposed to two.
USD also uses a rendering system called Hydra, allowing for multiple renderers with one common interface, referring to the mythical sea monster of Greek mythology with multiple heads. The Hydra rendering system is fast at scene rendering with incredible render performance, leaving little to no lag time in viewport renders, which leads to faster results and a more expedient workflow.
Blender and USD with AMD
While Blender currently has a basic USD exporter and plans to include import options in the future, it currently cannot reference pre-existing USD scenes nor render USD scenes internally… until now. AMD has introduced a new way to import, exchange, and assemble scene data from multiple applications in Blender thanks to their new USD Hydra plugin add-on for Blender.
Now you can use Blender in tandem with other USD-based tools and render your scenes internally.
Users can also utilize the MaterialX library for easy assigning of materials.
AMD’s add-on also allows the Hydra render engine to work internally. Now you can get the rendering speed and performance of Hydra right in Blender. Also, any render delegate that is compatible with Hydra’s OpenGL can be applied to Blender’s render settings with ease, by setting it in the Final and Viewport settings submenus.
With Blender making its way as an important resource for artists and a serious contender for studio pipelines, having USD compatibility available in this manner is a major step in professional application for the program. Being able to insert itself into almost any workflow using USD means it can grow and be a larger part of production.
Building USD Scenes in Blender
You can build and export your scenes from Blender without having to do any heavy lifting. You can build as you would in a usual Blender workflow and have it appear in any other software equipped with USD functionality. This is possible with the add-on’s new USD node tree feature. Set the Data Source option to NodeTree in the Final Render Settings submenu of the Render Properties tab. Be sure to add the Blender Data node, set it to scene, and have it connect to the Write USD File node, where you are able to set the name and the path of the USD file.
Importing USD Files to Your Scene
The add-on’s most important and integral feature is USD scene assembly and composition. Once again, using AMD’s USD node tree system, simply add a USD file node in your node graph and load an existing USD file. This allows you to easily bring in external scene data from another application and view, augment, and assign material, and export the USD data entirely within Blender.
This revolutionizes 3D production pipelines wanting to work with Blender. Now you can easily reference scene data without having to load it into Blender’s internal memory, streamlining productivity and interactivity between artist teams, and smoothly export composed scenes for viewport and local rendering.
Viewport Rendering with USD Hydra
You can also see everything rendered right in your viewport using the AMD add-on. Simply switch your viewport to Render view and watch your scene come to life with either Hydra’s own OpenGL render engine or AMD’s Radeon ProRender engine.
Current Limitations of USD in Blender
Though this certainly is great news for Blender users who want to use USD for their production pipelines, keep in mind that these tools are still very new and are still being optimized, so there are still a few limitations.
As of now, this add-on only includes Hydra’s OpenGL renderer as well as the AMD Radeon ProRender plug-in for Hydra; but if you use other Hydra render delegates, they are compatible as well.
Also, external materials outside of the MaterialX library or other USD compatible materials will not be visible in the viewport at the time of this article.
Give the USD Hydra Add-on a Try!
If you would like to know more about this add-on and its features, we recommend taking a look at this official AMD introduction to USD Hydra for Blender video, which gives a first-hand look at the tools and features of the add-on and provides download links in the description. Happy rendering!