Houdini 11 Nodes Surface nodes

Imports and transforms geometry based on information extracted from a DOP simulation.

The Dop Import SOP has four modes of operation:

1. It can pull geometry from the SOP node connected to its input, and transform that incoming geometry. The transformations are performed on primitive groups with names that match the names of the DOP Objects. Or the entire input geometry can be transformed based on the information from a single DOP Object.

2. It can pull geometry from the DOP Network, ignoring any SOP that may be connected to its input. This is similar to the functionality provided by the Object Merge SOP, but geared towards DOP Networks. This node provides better control over how the geometry is transformed, and provides parameters that are easier to use for this purpose.

3. It can make copies of primitive groups from the SOP connected to its input. This mode is similar to the first mode, except it can be used when there are several DOP Objects with the same name, all of which want to generate a separate copy of the input primitive group of the same name. This option is also useful if the input SOP contains geometry that is not part of any primitive group, and so does not correspond to any DOP Object.

4. It can create one point per DOP Object, setting attributes on that point to represent the position, orientation, velocity, and geometry for that DOP Object. This allows for very light weight geometry to be generated from a DOP Network, which can then use point instancing at render time.

DOP objects have two distinct transforms associated with them. One comes from the Position data attached to the object. The other comes from the Geometry data on the object, which has an inherent transform associated with it. This SOP can apply either, both, or neither of these two transforms. It can also apply the inverse transform to effectively undo the transform operation of another Dop Import SOP.

The Dop Import SOP also allows the transformation of selected vector attributes for points and primitives.

Point velocities

In addition to transforming the geometry, this SOP can create a velocity point attribute on the geometry.

This velocity is calculated by combining any velocity attribute on the geometry in the DOP simulation (such as those set by the Cloth Solver) and the overall object velocity and angular velocity stored in the object’s Position data. This SOP can calculate an instantaneous velocity for each point by combining the linear and angular velocities of the object, or it can integrate the two velocities over some timestep. The instantaneous velocity approach is a true representation of the velocity of each point, but if the object has a high angular velocity then rendering with these instantaneous velocities may make the object appear to be exploding in the render. In this case, integrated velocities can be used to ensure the extrapolated points stay “inside” the object’s geometry. The Integrate Over Time parameter specifies the integration interval and should be set to match your timestep, or the duration of each geometry segment when using multi-segment motion blur.

If a vectorfield called “vel” is present on the object, it is interpreted as a velocity field and added to the computed velocity.

The velocity attribute of the simulation object’s Geometry is transferred to the input geometry using a technique similar to the Attribute Transfer SOP. It is not necessary to have the input geometry match the simulation object’s Geometry to get good point velocities. This option is useful for rendering simulation objects with motion blur.

When importing DOP Objects as points, this option is disabled. The DOP Object overall velocity is always assigned to the point representing that object.

Parameters

DOP Network

The DOP Network to extract the transform and velocity information from.

Object Mask

Specifies the objects within the DOP Network to extract the transforms from.

Import Style

Controls the mode of operation for this SOP. Each entry in this menu corresponds to one of the modes of operation described in the overview.

Use Object Ids for Primitive Group Names

When importing geometry from a DOP Network, this option causes the geometry to be placed in primitive groups with names based on the numeric identifier of the source DOP object. When this option is off, the DOP object name is used as the primitive group name. You may want to turn on this option if there is some chance that multiple DOP objects with the same name may be imported from the DOP Network.

Geometry Data Path

The subdata path for the geometry to import from the DOP Network. The same data path will be used for all source objects. If left blank, the primary geometry data for the object is used.

Use Single Object

Turning on this option causes the entire input geometry to be transformed by the first simulation object matched by the Object Mask parameter. If this option is off, then for each object in the Object Mask, this SOP looks for a primitive group with the same name as the object. Only that primitive group is affected by the object it matches. This means some geometry may not be transformed at all if it does not belong to a matching primitive group.

Inverse Operation

Applies the inverse of the transform calculated for the simulation object.

Transform Geometry With Position Data

Finds the Data named Position on the simulation object and extracts its translation and rotation information to transform the geometry.

Transform Geometry With Geometry Data

Use the transform embedded in the Geometry data attached to the simulation object. This is a transform is usually set when Use Object Transform is set on the Geometry Data.

Preserve World Space Positions

Use the inverse transform of the object containing this SOP. This allows the world space position of the geometry to be independent of the object level transform. This is useful when this SOP is placed inside an object that is used as the source geometry for the simulation object whose transform is being extracted. The object level transform may be used for the initial position of the simulation object, but you may not want it to affect the world space position of the geometry output from this SOP. When the Inverse Operation option is set, this component of the transform is also inverted.

Add to Existing Velocity Attributes

Adds velocities computed from the DOP Object to any existing velocity attribute values on the geometry. Turning off this option causes the velocity computed from the DOP Object to simply override any existing velocity attribute value.

Note

When geometry is dynamically fractured, point velocities are added to transfer the velocity to the smaller chunks. If this parameter is turned on, these point velocities will go to your final render. Turn this parameter off to improve motion blur. It is on by default, but is turned off by shelf tools by default.

Delete Abandoned Primitives

When in transform mode, any primitives that do not have a corresponding DOP Object will be deleted instead of being left untransformed. This is useful if your solver deletes objects over time.

Point Velocities

Controls whether point velocities will be calculated for the geometry from this SOP, and the method of calculation. The Instantaneous and Integrated velocity calculations are described in the overview.

Integrate Over Time

The time interval over which velocities are calculated when using the Integrated Point Velocities calculation. This value should be set to a single frame time, or the duration of a single geometry segment when using multi-segment motion blur.

Vector Attributes To Transform

This field allows to specify vector attributes (for points and primitives) which should be also transformed by this SOP.

Examples

Load | Launch

.../examples/nodes/sop/dopimport/LowHigh.otl

This example shows how to create a low res - high res set up to support RBD objects. The two main methods are to reference copy the DOP Import SOP and feed in the high res geometry or to use point instancing with an Instance Object.

Load | Launch

.../examples/nodes/sop/dopimport/PointBasedRBD.otl

This example shows how to turn an RBD system into pure point data, one point per RBD object. The points can then be cached to disk with a lot less space and the original system reconstructed by point instancing with copy/stamp or render time point instancing.

Load | Launch

.../examples/nodes/sop/dopimport/ProxyGeometry.otl

This example demonstrates a technique of using the DOP Import SOP to allow the use of proxy geometry in a DOP simulation. One set of geometries are used in the simulation, then the transform information for those objects is applied to higher resolution versions of the geometry.

Other examples that use this node

Example forExample name
Apply RelationshipLoad | Launch

.../examples/nodes/dop/applyrel/ApplyRelationship.otl

Apply RelationshipLoad | Launch

.../examples/nodes/dop/applyrel/BridgeCollapse.otl

Cloth SolverLoad | Launch

.../examples/nodes/dop/clothsolver/AnimatedClothPatch.otl

Cloth SolverLoad | Launch

.../examples/nodes/dop/clothsolver/ClothAttachedDynamic.otl

Cloth SolverLoad | Launch

.../examples/nodes/dop/clothsolver/ClothSpringsBalls.otl

Cloth SolverLoad | Launch

.../examples/nodes/dop/clothsolver/PinnedClothWind.otl

Cloth SolverLoad | Launch

.../examples/nodes/dop/clothsolver/SphereClothCollision.otl

Cloth SolverLoad | Launch

.../examples/nodes/dop/clothsolver/StitchedClothPatches.otl

Copy ObjectsLoad | Launch

.../examples/nodes/dop/copyobject/AutoFracturing.otl

Field ForceLoad | Launch

.../examples/nodes/dop/fieldforce/FieldForceSmoke.otl

Field ForceLoad | Launch

.../examples/nodes/dop/fieldforce/fieldforce.otl

FLIP SolverLoad | Launch

.../examples/nodes/dop/flipsolver/FlipColorMix.otl

FLIP SolverLoad | Launch

.../examples/nodes/dop/flipsolver/FlipFluidWire.otl

Fluid ObjectLoad | Launch

.../examples/nodes/dop/fluidobject/FluidFeedback.otl

Fluid ObjectLoad | Launch

.../examples/nodes/dop/fluidobject/VariableDrag.otl

Gas CalculateLoad | Launch

.../examples/nodes/dop/gascalculate/HotBox.otl

Gas DiffuseLoad | Launch

.../examples/nodes/dop/gasdiffuse/DiffuseSmoke.otl

Gas Embed FluidLoad | Launch

.../examples/nodes/dop/gasembedfluid/CombinedSmoke.otl

Gas Particle To FieldLoad | Launch

.../examples/nodes/dop/gasparticletofield/TimelessGas.otl

Load | Launch

.../examples/nodes/dop/grassDeforms/grass.otl

Magnet ForceLoad | Launch

.../examples/nodes/dop/magnetforce/MagnetMetaballs.otl

Magnet ForceLoad | Launch

.../examples/nodes/dop/magnetforce/SimpleMagnets.otl

Particle Fluid SolverLoad | Launch

.../examples/nodes/dop/particlefluidsolver/ParticlesAndCloth.otl

Pyro SolverLoad | Launch

.../examples/nodes/dop/pyrosolver/BillowyTurbine.otl

RBD Glue ObjectLoad | Launch

.../examples/nodes/dop/rbdglueobject/BlendSolverWithRBDGlue.otl

RBD Pin ConstraintLoad | Launch

.../examples/nodes/dop/rbdpinconstraint/Chainlinks.otl

Ripple SolverLoad | Launch

.../examples/nodes/dop/ripplesolver/RippleGrid.otl

Script SolverLoad | Launch

.../examples/nodes/dop/scriptsolver/SumImpacts.otl

Smoke ObjectLoad | Launch

.../examples/nodes/dop/smokeobject/2dfluid.otl

Smoke ObjectLoad | Launch

.../examples/nodes/dop/smokeobject/HotSpot.otl

Smoke ObjectLoad | Launch

.../examples/nodes/dop/smokeobject/RestField.otl

Smoke ObjectLoad | Launch

.../examples/nodes/dop/smokeobject/TwoColourFire.otl

Voronoi Fracture SolverLoad | Launch

.../examples/nodes/dop/voronoifracturesolver/FractureExamples.otl

Wire SolverLoad | Launch

.../examples/nodes/dop/wiresolver/BreakWire.otl

Wire SolverLoad | Launch

.../examples/nodes/dop/wiresolver/CurveAdvection.otl

Wire SolverLoad | Launch

.../examples/nodes/dop/wiresolver/Footprints.otl

Wire SolverLoad | Launch

.../examples/nodes/dop/wiresolver/Pendulum.otl

FurLoad | Launch

.../examples/nodes/sop/fur/FurBallWorkflow.otl

TimeShiftLoad | Launch

.../examples/nodes/sop/timeshift/PlateBreak.otl

ParameterLoad | Launch

.../examples/nodes/vop/parameter/RampParameter.otl