Tested with USD 25.02
Converting Between Layer Formats
This tutorial walks through converting layer files between the different native USD file formats.
The usdcat tool is useful for inspecting these files, but it can
also convert files between the different formats by using the -o
option and supplying a filename with the extension of the desired output
format. Here are some examples of how to do this.
Converting between .usda/.usdc and .usd
A .usd file can be either a text or binary format file. When USD opens a .usd file, it detects the underlying format and handles the file appropriately. You can convert any .usda or .usdc file to a .usd file simply by renaming it. For example:
Given Sphere.usda, you can simply rename it to Sphere.usd.
When USD opens Sphere.usd, it detects that it uses the text file format and opens it appropriately. This works similarly for .usdc files.
A Sphere.usd file that uses the text format can be renamed to Sphere.usda
A Sphere.usd file that uses the binary format can be renamed to Sphere.usdc.
Converting between .usda and .usdc Files
Consider Sphere.usda in USD/extras/usd/tutorials/convertingLayerFormats. This is a text format file, so it can be examined in any text editor or via usdcat.
$ usdcat Sphere.usda
#usda 1.0
def Sphere "sphere"
{
}
To convert this file to binary, we can specify an output filename with the .usdc extension:
$ usdcat -o NewSphere.usdc Sphere.usda
This produces a binary file named Sphere.usdc in the current directory containing the same content as Sphere.usda. We can verify this using usddiff:
$ usddiff Sphere.usda NewSphere.usdc
Converting binary to text can be done the same way:
$ usdcat -o NewSphere.usda NewSphere.usdc
$ usddiff NewSphere.usdc NewSphere.usda
Converting between .usd Files of Different Formats
Note
If you have a .usda or .usdc file and want to make it a .usd file without changing the underlying format, you do not need to use usdcat; just rename the file. See Converting between .usda/.usdc and .usd above.
If you have a .usd file of a particular format and want to convert
it to a .usd file using a different format, pass the
--usdFormat
option to usdcat. Starting with
Sphere.usd in
USD/extras/usd/tutorials/convertingLayerFormats, which is a text
format file, we can convert it to a binary format file:
$ usdcat -o NewSphere_binary.usd --usdFormat usdc Sphere.usd
We can verify the two files match:
$ usddiff Sphere.usd NewSphere_binary.usd
Convert a binary .usd file to a text .usd the same way:
$ usdcat -o NewSphere_text.usd --usdFormat usda NewSphere_binary.usd
$ usddiff NewSphere_binary.usd NewSphere_text.usd