Skip to content
Roy Nieterau edited this page Jan 12, 2020 · 3 revisions

This documentation is Work in Progress and is related to internal work done on integrating USD in Avalon

Avalon Github Issues tracking USD status


Bootstrap USD asset notes

create_asset()

Create UsdAsset
	if no UsdModel → create it
	if no UsdShade → create it
	for now... point it to a stub master file. e.g `bank/publish/usdModel/master/usdModel.usd
        until we can actually use the versioning with an ArResolver

Asset

How to work together producing an Asset in the USD Pipeline?

Modeling

Open up Houdini to start working on the Asset's geometry.

  • Avalon > Create.. > USD Modeling Workspace
  • Create Model inside the network.
  • Publish
    • If no UsdAsset → do create_asset()

Shading

Load usdModel to start shading the current asset. This is done through Avalon > Create... > USD Shading Workspace.

When double clicking the Workspace you will enter a network showing a Material Assign network. You can create any materials in there or set geometry render attributes in that chain too. The workspace's network will end up defining the Look/Shading of the usdAsset.

Shots

Bootstrap shots with their layers using create_shot.py

What if we wouldn't make a static usdShot file but have that version up too? The only thing we would need to make sure is that we know what the order of the individual layers of the shot would be, e.g:

  • Sets (?)
  • Layout
  • Anim
  • Sim
  • FX
  • Lighting

What if we provide each with an "Order" in the pipeline. Say

Layout   10
Anim     20
Sim      30
FX       40
Lighting 50

Then whenever any of these get generated it looks at which are in the previous Publish and their related "order" for the layers and for the next publish puts in the new layer at the right point in the array.

E.g. /v002/shot.usd exists containing:

layout 10
fx     40

Then animation generates a publish with a currently a missing sublayer so it wants to add anim 20, making /v003/shot.usd:

layout 10
anim   20
fx     40

Assembly / Set / Layout

References:

What to do with an assembly of assets? What would this USD workflow look like?

  1. Reference in Assets with the Loader.
  • TODO: It would be great if we could expose that functionality inside the "Stage Manager"?
  1. Layout the scene the way you'd like.
  2. Create an output USD Rop for that which will set kind to Assembly(?) and publish your subset to e.g. usdAssembly or usdSet?
Clone this wiki locally