Siggraph Presentation

This guide will be officially introduced at Siggraph 2023 - Houdini Hive on Wednesday, 9. of August 2023 at 11:00 AM PST.

FAQ (Frequently Asked Questions)

Table of Contents

  1. Should I prefer assets with a lot of prims or prefer combined meshes?
  2. How is "Frames Per Second" (FPS) handled in USD?
  3. How is the scene scale unit handled in USD?

Should I prefer assets with a lot of prims or prefer combined meshes?

When working in hierarchy based formats, an important influence factor of performance is the hierarchy size.

Pro Tip | Hierarchy Size

Basically it boils down to these rules: Keep hierarchies as small as possible at all times, only start creating separates meshes when:

  • your mesh point/prim count starts going into the millions
  • you need to assign different render geometry settings
  • you need to add different transforms
  • you need to hide the prims individually
  • you need separate materials (We can also use UsdGeom.Subsets, which are face selections per mesh, to assign materials, to workaround this)

At the end of the day it is a balancing act of What do I need to be able to access separately in the hierarchy vs I have a prim that is super heavy (100 Gbs of data) and takes forever to load. A good viewpoint is the one of a lighting/render artist, as they are the ones that need to often work on individual (sub-)hierarchies and can say how it should be segmented.

How is "frames per second" (FPS) handled in USD?

Our time samples that are written in the time unit-less {<frame>: <value> } format are interpreted based on the timeCodesPerSecond/framesPerSecond metadata set in the session/root layer.

(
    endTimeCode = 1010
    framesPerSecond = 24
    metersPerUnit = 1
    startTimeCode = 1001
    timeCodesPerSecond = 24
)

You can find more details about the specific metadata priority and how to set the metadata in our animation section.

How is the scene scale unit and up axis handled in USD?

We can supply an up axis and scene scale hint in the layer metadata, but this does not seem to be used by most DCCs or in fact Hydra itself when rendering the geo. So if you have a mixed values, you'll have to counter correct via transforms yourself.

The default scene metersPerUnit value is centimeters (0.01) and the default upAxis is Y.

You can find more details about how to set these metrics see our layer metadata section.