Autodesk has just released the USD plugin for 3ds Max in Beta (May 13th 2021), at this moment it only supports 3ds Max 2022.
Let’s take a look at it.
First of all, what is USD?
USD stands for Universal Scene Description, and it’s a “new” file format developed by Pixar Animation Studios. It has actually been around for a while now, first presented to the public during Siggraph in 2013 and later open sourced in 2016. Pixar is now using it during its entire production. The first feature film with a full USD-based pipeline was Finding Dory in 2016.
Now, there is a lot to say about USD plugin. What we’ll see in this article is a really small subset of what USD can do but we would need an entire course to explain the potential and structure of USD.
I’ve been looking into it for almost 2 years now, and there is always something new to learn.
Keep an eye on our blog because we’ll definitely post more about it.
USD plugin for 3ds Max
3ds Max can now import and export USD data, although there are still a few limitations. For this article we’ll focus on geometry, but remember that with USD you can store materials, light, cameras like with other file formats.
First, you need to install the plugin that you can download from the products and updates page of your Autodesk account.
An important note about the use of USD data. The plugin available right now for 3ds Max converts native Max data to USD data during export and native USD data to Max data during import, so inside 3ds Max you still work in the same way.
Let’s open 3ds Max with a small scene, and export it to USD. To make sure to export only what I want I’ll first select the geometries in the scene, then go to Export → Export selected, choose the path where I want to export the scene and select Universal Scene Description in the Save as type option.
In the USD Exporter settings I’ll leave most of the options by default.
- Binary saves a .usd file
- ASCII saves a .usda file that can be opened in a text editor to analyze the scene structure
- USDZ saves a .usdz file, a compressed version of .usd (for example the .usdz it is used by Apple for their mobile AR apps)
- Up Axis determines which axis to use, Y or Z, as reference for the upward direction
- At frame. I don’t have any animation so I’ll leave to current (frame)
- Scene Content
- Mesh to export all the meshes
- Materials, Lights, Cameras to export these asset types in the USD file (currently with limited support)
Under the Meshes option you can also choose to enable Preserve Edge Orientation to split curved faces into planar faces and Bake Offset Transform to bake all the transformations of the object upon export. I’ll leave the Normals option as it is. Then click on OK.
To check if everything worked I’m gonna open the file I just exported in Maya 2022, that has support for USD plugin, with a more advanced integration. So, let’s open Maya, then go to Import, select the path and choose the USD Import option under Files of type. No matter what you choose in the Up Axis during the export in 3ds Max, the USD file will be rotated once imported in Maya. This is probably a bug. For now just rotate everything by 90 degrees.
As you can see all the geometries have been exported exactly as they were in Max, with the same topology.
Let’s take a look at the import process!
In this case I’ll use a scene made by Pixar: it is a kitchen interior that you can download here.
From 3ds Max, go to Import → Import and select the USD file called Kitchen_set.usd.
In the USD Importer window we can start to see how USD works. There isn’t a one-big-fat file with the entire scene inside. Everything is referenced from external files and brought together in a single .usd file, in this case the Kitchen_set.usd. All the items you see under the Prim Name column are individual .usd files with a single asset or a group of assets.
For example the DiningTable_grp.usd is made of four different files: KitchenTable, ChairB 1 and 2, TableTop_grp. And the TableTop_grp in turn is referencing all the .usd files of the assets that are placed on top of the table. It is similar to XRefs in 3ds Max but with way more power and control. And I mean way more.
All right, click on OK to import the scene.
Materials, Lights and Cameras have limited support for now, so we’ll come back to that in future articles, as these features are integrated into the plugin.
A quick note about render engines and USD
The ability to export assets of a specific renderer to .usd like a CoronaLight, the VRayPlane, or a full Corona material is something that has to be implemented by the render engine company; it does not depend on Autodesk’s plugin for 3ds Max.
All we discussed in this article is focused mainly on 3ds Max. Other DCCs (like Maya, Houdini, Omniverse) and render engines (like RenderMan, Arnold) have most, if not all, the supported features.
Chaos Group is currently working on a support for USD in V-Ray for Maya and Houdini (available in Beta).
Even though I would love going on talking about this topic, I’ll stop here for now, but keep ready for more content on USD.