On this page | |
Since | 18.5 |
Overview ¶
This node does not require that asset you to use to generate geometry be loaded in the current Houdini session. The node can load and cook the asset definition just from the .hda
file’s location on disk.
You can specify parameter values to set on the asset before cooking it. This is very powerful since it lets you create many payload variations from a single asset. When you update the parameter settings on this node, it automatically updates and recooks the asset.
If the imported asset is time-dependent, the node updates the imported geometry based Houdini current time. This node has time sample caching options so you can avoid loading the same frame multiple times.
How to ¶
To... | Do this |
---|---|
Update the parameters of an imported asset |
|
Tips and notes ¶
-
This node imports geometry from the SOP level. You can specify an object asset, but the node will grab the geometry from the SOP network inside. So any parameter settings that change object-level transformations do not affect the imported geometry. For example, setting the Translate parameter on the object will not offset the imported geometry.
-
Changing the parameters you set on the asset invalidates any cached time samples (this includes time-varying expressions such as
$F
).While you're tweaking the geometry parameters and checking the output in the viewer, you should disable or limit the size of the cache, so the node isn’t doing unnecessary work.
-
While you're tweaking the geometry parameters and checking the output in the viewer, you should turn on Keep Houdini Engine Open for faster interaction. Once you've settled on the parameters you want to cook with, you can turn the option off, so the node only runs Houdini Engine when needed.
Parameters ¶
Payload ¶
Primitive Path
In create mode, this parameter specifies a single primitive path. This is the scene graph path where the referenced branch will be attached. If this prim doesn’t exist, the node will create it. In edit mode, this parameter is a primitive pattern that will be matched against the existing primitives on the stage connected to this node’s first input. You can use local variables to control the reference primitive path.
Primitive Kind
If the prim at Primitive Path doesn’t exist, this node will create it. If it has to create the prim, it will set it to have this kind.
Setting this parameter to Auto
will not author a Kind on the leaf primitive where the reference is added. Instead, it will examine the Kind of the prim after setting the reference, and automatically set the Kind of ancestor prims to ensure the leaf primitive is part of a valid model hierarchy. Note that this may result in adding a Kind to ancestor prims that were not created by this node. If the referenced prim has no kind, or is not a model kind, Auto
mode will not author Kind on any prim.
Primitive Purpose
Set the primitive’s purpose. Purposes are a way to control what gets rendered. The viewer/renderer only shows primitives tagged with one of a specified set of purposes. If you set up purposes on your primitives, then you can control visibility of all primitives with the same purpose at render time by setting what purposes are visible in the render settings.
Default
No set purpose, rendered by default.
Render
Should be used to tag high-resolution geometry that should appear in final renders.
Proxy
Should be used to tag faster/cheaper/lower-resolution proxy geometry. This may be used for test renders.
Guide
Should be used to tag “guide geometry” that should appear in an interactive viewer but not a rendered image. For example, collision geometry for a simulation.
Parent Primitive Type
If the prim at Primitive Path doesn’t exist, this node will create it. If it has to create the prim, it will give any intermediate prims it has to create this type.
Make Instanceable
Mark the new or modified prims as instanceable (as in “native instancing”). This saves memory if you reference the same branch into multiple places, but makes the descendants of the referenced prim not editable. If this option is off, the prims are not explicitly marked as not instanceable. Instead, the current instanceable value on each prim is left unchanged.
HDA File
The file path of the digital asset file to load.
Operator Type
If the library file in HDA File contains more than one asset, this controls which asset to load and cook. If this is blank, the node just uses the first asset in the file.
Reload
Click the reload the asset definition from disk. You should do this if you overwrite the .hda
file with a new definition of the asset.
Other Primitives
What to do with regular non-packed primitives (points, curves, polygons, spheres, and so on).
Define
Create the USD prims for the imported geometry if they don’t already exist. This is the standard way to import geometry.
Overlay
Create the USD prims as overrides. They will only be visible as changes to any prims that exist at a lower level with the same paths. This may be useful where you only want to import and modify certain attributes from SOPs onto existing USD geometry.
Overlay Transforms
Like Overlay, but only imports transform data.
Define Only Leaf Primitives
Author intermediate primitives (for example, any Xform
prims created for the Import Path Prefix) as overrides instead of definitions. This means if they don’t match up with underlying prims in lower layers, the leaf prims won’t be added to the scene. This is useful if you only want to import the geometry if its ancestors already exist in the scene tree.
(Note that all of the data is still imported, it just may not be visible in the scene graph tree or the viewport.)
Packed Primitives
What to do with SOP-native packed primitives.
Create Xforms
Creates an Xform
prim from the packed primitive’s transform and attributes, and the packed primitive’s geometry is imported underneath.
Create Native Instances
Import the geometry in packed primitives as instanceable references. This imports each piece as a prototype under a Prototypes
prim under the Import Path Prefix prim.
Create Point Instancer
Import the geometry in packed primitives as point instanced geometry. This imports each unique piece as a prototype under the point instancer prim.
You can assign a SOP primitive attribute to the packed primitive named usdinstancerpath
to specify the USD scene graph path of the instancer.
Unpack
Only imports the packed primitive’s geometry.
Unlike the Create Xforms mode, this does not create any additional hierarchy, and is equivalent to unpacking the packed primitive prior to being imported. This can be useful for importing multiple pieces of geometry without merging their attributes.
NURBS Curves
What to do with NURBS curve primitives.
Convert to Basis Curves
Import the curves as a BasisCurves
primitive.
For curves where the end points should be interpolated, additional vertices are explicitly inserted at the beginning and end of the curve rather than setting the wrap
attribute to pinned
.
This method is provided for backward compatibility, as previously pinned curves were not supported by some render delegates.
This only supports cubic curves, but is useful for rendering through Hydra.
Convert to Pinned Basis Curves
Import the curves as a BasisCurves
primitive.
For curves where the end points should be interpolated, the curve’s wrap
attribute is set to pinned
so that additional points are inserted implicitly when rendering.
This only supports cubic curves, but is useful for rendering through Hydra.
Create NURBS Curves
Import the curves as a NurbsCurves
primitive.
This provides complete round-tripping of NURBS curves, but has limited support for rendering through Hydra.
Kind Authoring
How to assign kinds to imported prims.
All Geometry is One Component
Set root primitives in the imported tree to Component
. Do not set kinds on descendants.
Nested Groups and Components
Set leaf primitives in the imported tree to Component
. Set branch primitives to Group
.
Nested Assembly, Groups, and Components
Set root prims in the imported tree to Assembly
. Set intermediate branch prims to Group
. Set leaf prims to Component
.
None
Do not set kinds on the imported prims.
Path Attributes
A (comma or space-separated) list of names of SOP primitive string attributes to use to use as prim paths to put the SOP geometry into. The default is path,name
. See geometry hierarchy above.
If the list has more than one attribute, the importer checks each attribute for the first non-empty value.
If the string value a full path, that path is used as the USD scene graph path for that primitive. If the string is a relative path (or just a name), the string is appended to the Import Path Prefix string to generate a full scene graph path.
If none of the listed attributes exist on a given SOP primitive, or all values are an empty string, the importer generates a name automatically (for example, sphere_0
).
Reverse Polygon Vertex Ordering
USD supports an orientation
attribute on mesh primitives that indicates whether polygons have a left-handed or right-handed ordering, while SOP geometry is always left-handed ordering. When this option is on, the importer always reorders vertices (and associated primvars) to be right-handed.
This is useful when round tripping right-handed oriented polygons from USD into SOPs and back into USD. The data is always converted to a left handed ordering when importing it into SOPs. If you imported the polygons back into USD without this option, they would be left-handed, unlike the original.
Topology Attributes
Controls whether USD topology attributes should be authored as time sampled or default values.
The following attributes are treated as topology attributes:
Primitive Type |
Attributes |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Animated
If you know that topology is changing in the source geometry over time, choose this option to record topology attributes as time samples in the USD scene graph. Having animated topology can be very expensive during playback, so only use this option when necessary.
Static
Write topology attributes as default values. This can make playback much faster, but limits how the topology can change over time.
None
Do not author topology attributes.
This is useful when USD data is sent to SOPs for processing, then brought back into LOPs. Using this option tells the importer that the geometry topology has not changed in this process, so only the changing point positions or other primvars will be imported.
Attributes
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars.
In addition to matching attribute names directly, there are some values with special meanings:
bounds
Authors the USD extent
attribute using the calculated bounding box of the associated SOP geometry.
visibility
Authors the USD visibility attribute based on the value of the usdvisibility
geometry attribute.
See importing attributes for information on how the importer converts certain well-known Houdini attributes to their USD equivalents.
Indexed Attributes
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as indexed primvars.
In addition to matching attribute names directly, the type:string
value can also be used to match against any SOP string attribute.
If a SOP attribute matches this pattern, the importer authors the primvar as an indexed array of values (that is, an array of values called primvars:‹name›
, and an array of indices into those values called primvars:‹name›:indices
).
Preparing an indexed primvar can be expensive for attributes that are not integers or strings. You should only use indexed primvars where it is likely to result in significant savings in storage size due to a small number of unique values being used across a large number of components.
Import as Single Element Array
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars with Constant
interpolation (an array with a single value for the whole primitive), regardless of whether the SOP geometry attribute is a point, primitive, or vertex attribute. If multiple values could be chosen for a particular USD primitive, the importer chooses the first value it encounters.
Importing as a single element array (versus Import as Single Value) can be useful since it allows the primvar’s interpolation to be overridden without changing the primvar’s type.
Import as Single Value
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as primvars with Constant
interpolation and a single value for the whole primitive, regardless of whether the SOP geometry attribute is a point, primitive, or vertex attribute. If multiple values could be chosen for a particular USD primitive, the importer chooses the first value it encounters.
This is the default behavior for how detail attributes are imported.
This is similar to Import as Single Element Array, but the primvar’s type is a scalar value instead of an array with a single element (for example, vector3f
instead of vector3f[]
).
Set Default Values
A space-separated list of attribute names/patterns specifying the SOP attributes to always author as default values for USD primvars (never time samples). This is the list of exclusions when Author Time Samples is set to If Not Specifically Excluded.
USD Custom Attributes
A space-separated list of attribute names/patterns specifying the SOP attributes to import into USD as attributes (rather than primvars).
Translate UV Attribute to ST
When turned on, converts the SOP vertex attribute uv
into a USD primvar called primvars:st
. Whether you need to turn this on depends on the renderer you are using and how your shaders are authored. If you are rendering with Karma, leave this off.
(As of this writing there is no strict standard for texture coordinate naming in USD, but the use of st
is a common convention, whereas in SOP geometry, using uv
is the common convention.)
Caching Mode
How to cache time samples of animated geometry. Loading a time sample for the first time can be slow, but subsequent loads are faster when the time sample is cached.
None
Do not cache any time samples. Choosing this option also clears any currently cached samples.
Continuous
Cache time samples as they are needed.
Range
Cache a specified range of time samples all at once. This “front-loads” the caching time, but once the cache is warmed up, interactions will be much faster than if you were caching frame-by-frame.
Do not use this mode while you are tweaking parameters on the Geometry tab, since changing those parameters invalidates the cache, and the node will keep trying to re-cache the full frame range on every change.
Time Start/End/Interval
When Caching Mode is Range, the start frame, end frame, and interval to cache.
Keep Houdini Engine Open
Turn this on while you're tweaking the geometry parameters and checking the output in the viewer, for faster interaction. Once you've settled on the parameters you want to cook with, you can turn this off, so the node only runs Houdini Engine when needed.
Geometry ¶
Generate Parameters
After you choose an asset to import (HDA File on the Payload tab), click this button to duplicate the imported asset’s parameter interface on this tab. You can then use this tab to control what parameter settings to cook the asset with.
See also |