# Generate Viewport Proxies

Using “proxy” assets with reduced complexity may help productions to reduce the amount of on-screen complexity in the viewport.

Multiverse provides a straightforward and automatic workflow to generate and use USD proxies, delivering faster loading, faster viewport drawing and allowing artists to work swiftly in Maya.

# Prepare the Assets

First of all, we need to have two basic USD assets which were previously written out at different level of complexity.

Below are two USD assets of a bed (from the Esper Scene (opens new window)), one with high polygon count (for final render) and one with low polygon count (the proxy).


We can also generate proxies from Maya geometry and not only from Compounds. Read this guide until the end to understand the workflow.

Read both of these assets into a Maya scene via the Read USD Asset shelf button:

Before writing the final bed asset, let’s create the hierarchy containing the two versions of the asset. You can use the USD purpose to choose what data to see in the viewport (proxy or render):

Select the BedHi node and from the Multiverse shelf click the mvSet icon and choose "Add Render Purpose mvSet". This will create a special mvSet node that declares the purpose of this asset for rendering only.

Next, select BedProxy node and using the same method "Add Proxy Purpose mvSet" for the proxy asset. We also see now that another mvSet node has been created and that it declares the purpose of this asset for rendering only.

If you inspect mvSet1_RENDER you should see that each assets have been assigned their designated purposes.

# Write the Composition

Now, we should be ready to write the final composition with the proxy and render geometry set according to the above. Out input is Compound nodes and group (transform) therefore we are writing a Composition.

Select the Bed and write using "Write USD Composition".

# Read the Composition

Let’s read back the asset. Multiverse allows us to choose, even before reading the asset, whether to display the data as proxy or render. This can be also set after reading the data, see the USD purpose attributes on the Multiverse Compound Attribute Editor.

# Display Proxy Vs Render

Now we should be able to see the bed asset in proxy mode. Which is lighter and faster for the viewport.

The proxy mode is only for viewport, when we render we should see it’s the high quality model of the bed that gets rendered.


The example above is using mvUsdCompoundShape nodes as the input, but we could have also wrote straight from Maya geometry as well, in such case you would have used the Write Asset instead of the Write Composition, since your input would have been Maya geometry.

The only thing we do here is to select BedProxy and BedHi as designated mvSet of Proxy and Render purpose respectively. When we write the USD composition it will contain the proxy and the render version of the asset.

This concludes the workflow for Proxy with Multiverse.

Last Updated: 6/6/2021, 5:08:24 PM