On this page |
Overview
Elements can occur in more than one group. Groups are used in many parts of the Parameter Editor to specify which portions of input geometry you wish an operator to act upon.
You can also create ordered groups. To do so, enable the Ordered checkbox.
This operator is very powerful and is ideal for combining geometry that is
similar. For example, all the primitive geometry of a group of door
structures for a three-dimensional architectural model could be
grouped together and consequently scaled and re-sized together using
a Transform node. Works in conjunction with most
filter nodes.
Group name specifiers become very powerful when you use pattern matching in your group specifiers.
Using Group Geometry
-
Select the points, primitives, edges, or vertices you want to group.
-
Click the
Group Geometry tool on the Model tab of the shelf.
-
Enter a Group Name in the operation controls toolbar or the parameter editor.
Tip
When using the hotkeys to select edges to group, press ⇥ Tab once the selection is complete (instead of Enter), and select the Group Geometry operation in the tab menu.
Creating groups based on point attributes
You can create groups based on point/primitive attributes using the Combine tab and group specification syntax.
For example, to create a group containing all points with Y position greater than 0
:
-
In the parameter editor for the Group node, click the Combine tab.
-
In the Group field (below Combine entity), set the left side to the name of the group you want to create, click the
equal button in the middle, and set the right side to
@P.y>0
In this example, P
is the name of the position vector attribute, .y
takes the Y component of the vector, and >0
selects points where the component is greater than 0. See the @
group specification syntax for more information. Note that the @
syntax does not allow spaces.
Inputs
Source geometry
The geometry on which to create the groups.
Bounding object
Bounding geometry. (Only works for point groups when selecting by bounding geometry.)
Accepts all geometry.
Parameters
Create
Group Name
The name of the group to create.
Entity
Whether to create a primitive or point group.
Geometry Type
What sort of primitives to allow in the group.
Merge Operation
How to resolve collisions between the newly created group with an already existing group.
Replace Existing
The newly created group will replace the existing group.
Union With Existing
The group will consist of the union between the newly created group and the already existing group.
Intersect With Existing
The group will consist of the intersection between the newly created group and the already existing group.
Subtract From Existing
The group will consist of the contents of the already existing group that are not also in the newly created group.
Number
Enable
Enables grouping by number.
Create Ordered
Orders the points/primitives in the group in the order they are entered. Useful when skinning.
Operation
Groups by a pattern, a range, or an expression.
Filter Expression
This is evaluated for every point or primitive. If it is true, the element is added to the group. It supports all the local variables of the Point and Primitive operations.
Edge groups are currently not supported with expressions.
Note
Points and primitives that match the expression will be in the final group regardless of the other tabs.
Pattern
Enter the pattern to be grouped.
This field also accepts edge patterns:
Code |
Meaning |
---|---|
|
All edges in primitive number n. |
|
Point number n / edges with point number n. |
|
Edge number m of primitive n. |
|
Edges between point number a and point number b. |
Start
The start of the range to be grouped. For edge groups the ranges will be interpreted as primitive indices.
End
The end of the range to be grouped. For edge groups the ranges will be interpreted as primitive indices.
Select _
of _
Group every # of # primitives/points. Edges are grouped here by primitive numbers.
Bounding
Enable
Enable grouping by bounding volume.
Bounding Type
Shape of bounding volume.
Size
Size of bounding volume.
Center
Center of bounding volume.
Iso
The iso surface of volume to do the grouping with. Points whose volume value are less than this will be grouped. A value of 0 is good for SDF volumes. For fog volumes, use a value of 0.5 and turn on Invert Volumes for best results.
Invert Volume
Inverts sense of being inside the volume.
Include Entities Not Wholly Contained
Include entities that are not wholly contained within the bounding object.
Normal
Enable
Enable grouping by normal.
Direction
Normal direction to group by.
Spread Angle
Deviation from the direction to allow in the group.
Backface from
Groups primitives facing away from this object.
Note
Unlike grouping by normal this operation will remove items that satisfy the backface condition from any group created via another tab. If no other group is created, this operation will add satisfying items.
Non-Planar Polys
Groups polygons that are non-planar given the tolerance.
Note
Polygons that are non-planar will be added to the group regardless of the other tabs.
Edges
Note
Points, primitives, and edges that match the edge grouping rules will be in the final group regardless of the other tabs.
Enable
Enables edge grouping.
Min Edge Angle
Groups primitives with at least this angle between their normals. For edge groups, an edge is included in the group if the two primitives that share it satisfy this angle requirement.
Max Edge Angle
Groups primitives with at most this angle between their normals. For edge groups, an edge is included in the group if the two primitives that share it satisfy this angle requirement.
Edge Angle Uses Angle Between Edges
For edge groups only, when this option is checked edges are included in the group based on the angle between themselves, instead of the angle between the primitives that share them.
Each edge is compared against all other edges that share a point with it.
Min Edge Length
Groups edges that have at least this length.
Max Edge Length
Groups edges that have at most this length.
Edge Depth
Number of edges away from the points in Point Group.
Point Group
Points around which group is centered.
Create Boundary Groups
Create groups containing surface boundary points.
Combine
Combines different groups based on boolean operators.
Combine Entity
The type of group on which to operate. While it can usually be determined from the given groups, this parameter is useful to resolve ambiguous cases.
Group
This section allows you to create a new group out of existing groups.
Enter the group to operate on or create in the first field and the name of
the existing group in the field on the other side of the buttons. You can
either include the contents of the other group by selecting
Equals or everything that is not the other
group by selecting
Equals all but. Use
the fields below to combine additional groups.
Edit
Rename
Renames an existing group to something else. When renaming
groups, you can use wildcards to rename several
groups that match the specified pattern. For more
information about the pattern substitution rules, please see
Attrib String Edit.
Group
Group to rename.
New Name
New name of group.
Convert
Converts between different types of groups. When converting
groups, you can use wildcards to convert several
groups that match the specified pattern. For more
information about the pattern substitution rules, please see
Attrib String Edit.
Convert From
Source group type.
Convert To
Newly created group type.
Group
Group to convert.
Convert Name
The new name of the converted group. Leave this empty to keep the name of the original group.
Preserve Original
Preserves original geometry.
Omit Entities in New Group not Wholly Contained in the Old Group
This option allows only primitives that have all of their points or edges in the original point group to be included in the resulting primitive group, when converting from a point group or an edge group to a primitive group.
The same thing applies when converting from a point group or a primitive group to an edge group. Only edges with both points in the original point group will be added to the new group.
Delete
Deletes an existing group.
Group
Group to delete.
Locals
N
(number of points/primitives/edges) -1
See list of standard variables.
Examples
This example demonstrates how feature edges of your object can be preserved during a polyreduce by using an Edge Group.
The following examples include this node.
Keyboard Example for MIDI Out channel node
This example demonstrates how to write MIDI data using the MIDI Out CHOP, and read it in using the MIDI In CHOP. The MIDI that is written out is based on geometry, and the MIDI that is read in is controlling other geometry.
ApplyRelationship Example for Apply Relationship dynamics node
This example shows how you can use the Apply Relationship DOP to add pin constraints to wire objects.
PanelledClothPrism Example for Cloth Object dynamics node
This example demonstraits a paneling workflow to create a open-ended rectangular prism which keeps its shape.
Street Crowd Example Example for Crowd Solver dynamics node
Crowd example showing a street setup with two agent groups
The setup creates two groups of agents. The yellow agents are zombies which follow a path of the street. The blue agents are living pedestrians that wander around until they come into proximity of the zombies and then they swtich into a running state.
Triggers to change agent states are setup in the crowd_sim dopnet. The zombies group uses proximity to the stoplights and the color of the light to transition into a standing state when lights are red. The living group transition into a running state when they get close to the zombie agents.
Note
The animation clips need to be baked out before playing the scene. This should happen automatically if example is created from Crowds shelf. Otherwise save scene file to a location of your choice and click Render on '/obj/bake_cycles' ropnet to write out the files. The default path for the files is ${HIP}/agents.
FEMSpheres Example for finiteelementsolver dynamics node
This example demonstrates how to use the FEM Solver to deform spheres when they collide with the ground plane. The spheres have particle based animation on them prior to collision with the ground and are swapped to the FEM solver on collision.
FlipFluidWire Example for FLIP Solver dynamics node
This example demonstrates the use of the Flip Solver and the Fluid Force DOP. The Fluid Force DOP is used to apply a drag force on a wire object according to the motions of a flip fluid. The drag force is only applied at locations where fluid exists in the fluid object.
FluidWireInteraction Example for Fluid Force dynamics node
This example demonstrates the use of the Fluid Force DOP. The Fluid Force DOP is used to apply a drag force on a wire object according to the motions of a fluid object. The drag force is only applied at locations where fluid exist in the fluid object.
This example simulates grass being pushed down by an RBD object. Fur Objects are used to represent the blades of grass and Wire Objects are used to simulate the motion. When a single Fur Object is used to represent the grass, neighbouring blades of grass will have similar motion. Additional objects with different stiffness values can be used to make the motion less uniform. When "Complex Mode" is enabled, two objects are used to represent the grass. The stiffness of each set of curves can be controlled by adjusting the "Angular Spring Constant" and "Linear Spring Constant" parameters on the corresponding Wire Objects.
KeyframedGrains Example for POP Grains dynamics node
This example demonstrates keyframing the internal grains of a solid pighead to create an animated puppet.
StackedBricks Example for RBD Fractured Object dynamics node
This example shows how to create a large number of RBD objects from a single SOP. It also shows how a velocity point attribute can be used to set the initial motion for the objects.
This is an example of how to use the RBD Glue Object node to create an RBD object that automatically breaks apart on collision. It also demonstrates one technique for breaking a model into pieces appropriate for this sort of simulation.
This example shows how one can control the break up of any glued object through the use of the RBD State node.
A torus, composed of spheres, is glued together. An additional sweep plane is defined. Any sphere which ends up on the wrong side of the sweep plane is broken off the torus and left to bounce on its own. This lets the break up of the torus to be controlled over many frames.
InheritVelocity Example for RBD State dynamics node
This example demonstrates the use of the RBD State node to inherit velocity from movement and collision with other objects in a glued RBD fracture simulation.
ReferenceFrameForce Example for Reference Frame Force dynamics node
An RBD vase filled with water performs the water simulation in the vase’s reference frame.
AnimatedSkin Example for Wire Glue Constraint dynamics node
This example shows how the Wire Glue Constraint DOP can constrain a wire object to animated geometry.
BeadCurtain Example for Wire Solver dynamics node
This example uses the Wire Solver to simulate a bead curtain. A stream of RBD balls are thrown at the curtain, and through feedback the curtain and balls are mutually affected by the collisions.
BendingTree Example for Wire Solver dynamics node
This example shows how to use the Wire Solver to simulate a flexible tree built with the LSystem SOP.
CurveAdvection Example for Wire Solver dynamics node
This example demonstrates how to advect curves based on a pyro simulation. An Attribute Wrangle SOP is used to sample the velocity from the volume and apply it to a wire object.
Pendulum Example for Wire Solver dynamics node
This example shows how to mutually affect an object at the constraint point and the object at the bob of the pendulum.
PortalBox Example for Environment Light object node
This example shows how to create a portal light using window geometry. A box is modeled and then split into 2 SOPs - one representing windows and the other walls. The walls are rendered, while the windows are used to specify the portal for an environment light. Toggle on and off the portal to see the render quality difference while rendering in the Render View.
AddItUp Example for Add geometry node
This network demonstrates the many uses of the Add SOP to build and manipulate geometry:
-
It is used to create points in space which can then be used to create polygons using designated patterns. These polygons can be open or closed. Futhermore, each point can be animated through expressions or keyframes.
-
It is used to both create points and grab points from other primitives. These points may be used in polygon creation.
-
The Add SOP may be utilized to create a polygon using points extracted from another polygonal object. A Group SOP allows for the creation of the point group that will be referenced by the Add SOP.
-
The Add SOP is used to create a polygon from a group of animated Null objects. An Object Merge SOP references the null points in SOPs which are then fed into an Add SOP for polygon generation. A Fit SOP, in turn, is used to create an interpolated spline from the referenced null points. The result is an animted spline.
-
The Add SOP is used to generate points without creating any primitives. Also, points from other objects can be extracted through the Add SOP.
-
Finally the Add SOP can additionally be used to procedurally create rows and columns.
BoxSpring Example for Box geometry node
The Box SOP is used for more than just creating boxes. It can also envelop existing geometry for specific purposes.
The Box SOP can either create a simple six-sided polygon box, calculate the bounding box size for geometry, or be used in conjunction with the Lattice SOP.
There are two objects within the box.hip file that are examples of this:
-
animated_bounding_box
The animated_bounding_box object shows how you can envelope an object and surround it with a simple box, even if it is animated. This can be useful when displaying complicated geometry, in which case you would put the display flag on the box object and the render flag on the complicated geometry.
-
box_spring_lattice
This is an example, a Lattice SOP used in conjunction with the Box SOP. The Box SOP is used to envelope some geometry, in this case a sphere. Divisions is checked to create the proper geometry by referencing the number of divisions in the Lattice SOP.
The top points of the box are grouped by a Group SOP. The Spring SOP uses these points as the Fixed Points from which to create the deformation.
Using the Box SOP in this way allows you to change the incoming geometry (the basic_sphere in this case) and have the box and lattice automatically re-size for you.
CapCarousel Example for Cap geometry node
This example shows how to cap two designated areas of a geometry by creating groups.
Two Group SOPs are used to create two groups, group_bottom and group_middle. These groups are created using Number Enable. The Pattern number corresponds to the primitive number, which you can see by turning on primitive numbers.
Two Cap SOPs are used to cap the two groups. By capping either the First V Cap or Last V Cap, you can select which end of the group you want to cap.
BlobbySphere Example for Channel geometry node
This is a simple example of how to utilize the Channel SOP to bring information from CHOPs into SOPs and apply it to geometry.
We use an animated sphere and create a lag in the animation of selected areas of the sphere.
In a CHOP network, the Geometry CHOP brings in point position data of the sphere geometry and runs it through a Lag CHOP for the delaying effect. The Channel SOP then references the Lag CHOP and applies the point data back to the selected areas of the original NURBS sphere.
This example demonstrates how to perform boolean operations using the Cookie SOP.
In this instance, the points are consolidated using a Facet SOP and a Divide SOP is used to create a smooth surface for the Cookie SOP to operate on.
This example creates a boolean operation using the Cookie SOP.
A star geometry is created and used to subtract the shape from the sphere geometry.
StampStars Example for Copy Stamp geometry node
This example demonstrates the power of the Copy SOP’s Stamp operation.
Here, a Copy SOP is used to copy a circle onto the points of a sphere. The Stamp operation then applies various modifications to those copies based on division, scale, color, and extrusion. This results in the generation of a randomized variety of "stars".
Starting with a simple circle, a large number of variations are created using in the copies through the use of Stamping with expressions.
DeleteDemo Example for Delete geometry node
This example demonstrates how the Delete SOP is used to remove specified geometry from a scene.
Geometry may be deleted by Point or Primitive Numbers, by Group, or by position within a Bounding Box.
LowHigh Example for Dop Import geometry node
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.
DirectedEdgesPath Example for Find Shortest Path geometry node
This is an example of how to use the FindShortestPath SOP to find a path through geometry where certain edges are directed edges. Directed edges can only be traversed in one direction.
Try changing the start and end points, as well as the directed edges, to explore how the SOP avoids going the wrong direction, and cannot reach points with only outgoing edges.
PathAnalysis Example for Find Shortest Path geometry node
This is an advanced example of how to use the FindShortestPath SOP to prefer "central" paths, based on centraily measures computed using FindShortestPath and AttribWrangle. This helps avoid staying too close to walls where avoidable.
Turn on the Display Option > Optimization > Culling > Remove Backfaces to see inside the space more easily. Try visualizing the different centrality measures using the switch node. The same example without considering the centrality of the path is demonstrated in a side branch of the SOP network, in order to see the difference.
This example shows how to use the foreach sop to intersect one object with each part of another object and merge the results together.
FurBallWorkflow Example for Fur geometry node
This example demonstrates how the Fur SOP and Mantra Fur Procedural can be applied to an animated skin geometry. CVEX shaders are used to apply a custom look to the hairs based upon attributes assigned to the geometry.
This example demonstrates how feature edges of your object can be preserved during a polyreduce by using an Edge Group.
GroupCopyBox Example for Group Copy geometry node
This example demonstrates how to group geometry based on a group from another network.
TransferProximity Example for Group Transfer geometry node
This example demonstrates how to use the proximity of a group’s primitives to transfer the group to a new set of geometry using the Group Transfer SOP.
DeformLattice Example for Lattice geometry node
The Lattice SOP creates animated deformations by manipulating simpler geometry that encloses the source geometry.
This example shows how the Lattice SOP can use an animated Box SOP to deform the source geometry. In this case, the source geometry is a sphere.
LatticePerChunk Example for Lattice geometry node
This example shows how you can use the foreach sop to apply a lattice to each fragment of a sphere.
LsystemBuilding Example for L-System geometry node
This example demonstrates how to use the L-System SOP to generate buildings with windows.
MeasureArea Example for Measure geometry node
This example demonstrates how to create groups based on the area of a primitive using the Measure SOP.
MetaExpression Example for Metaball geometry node
This example demonstrates how to use a Meta Expression in an Attribute Create SOP to control how metaballs merge together.
ParticleExamples Example for Particle geometry node
This example contains five demonstrations of some of the various uses of the Particle SOP.
-
Creep particles along a surface using a the Creep SOP.
-
Group birth particles from a group of points on a surface.
-
Bounce particles.
-
Split particles on contact.
-
Collide particles off a collision object.
-
Birth particles from a moving object.
-
Use a metaball to exert force on a particle.
PolyStitchBasicSmooth Example for PolyStitch geometry node
This example demonstrates how the Polystitch SOP can stitch together or refine seams between polygonal surfaces with incongruent U and V divisions. This is useful for smoothing and eliminating cracks at seams.
PolywireModel Example for PolyWire geometry node
This example demonstrates how the Polywire SOP builds polygonal geometry based on a polygonal frame, and how the parameters can be customized with local variables.
PrimRotate Example for Primitive geometry node
This example demonstrates how to rotate individual primitives on a grid surface using the Primitive SOP.
A Group SOP is used to animate a bounding box over the grid surface, thereby activating the randomized rotations in the Primitive SOP.
FlagProfiles Example for Profile geometry node
This example shows how to use the Project SOP to create a profile on a surface.
The Profile SOP is then used to extract the profile from the surface or remap the profile on it. It also shows how the profile will animate with the surface or independent of it.
Squidremesh Example for Remesh geometry node
This example demonstrates how to use the Remesh SOP to remesh a model of a giant squid crab while preserving the hard edges of the model.
DoorWithPolkaDots Example for Scatter geometry node
This example demonstrates how you can use the Scatter SOP to scatter points that stay consistent through topology changes like remodelling the input geometry or breaking it. It does this by using the option to scatter in texture space.
SkinSurfaceCopies Example for Skin geometry node
This is an example of how to create a new surface using the Skin SOP.
Here a surface is extracted from a torus, copied and used to create a skin that shoots up from the torus.
Hills Example for Smooth geometry node
The Smooth SOP is used to refine the distance between a number of points into more uniform values.
The process evens out minor variances in the points defining the curve, while still maintaining the value trends of the larger, overall curve.
SpringExamples Example for Spring geometry node
This example demonstrates the three main functions of the Spring SOP.
It shows how the Spring SOP can deform input geometry to create a cloth like effect by creating interactions between two objects, defining motion, and applying forces.
Play the animation to see the Spring SOP in action.
SpringFlag Example for Spring geometry node
This example shows how a flag can be simulated using a Spring SOP.
Here the Spring SOP applies forces that simulate the laws of physics on the points of a Grid SOP to create the flag effect.
SpringHair Example for Spring geometry node
This example demonstrates a way to create dynamic hair using the Spring SOP.
A Line is copied onto the points of a Sphere and input into the Spring SOP as a source. Then a Metaball and Force are input to further effect the motion of the hair.
SpringLine Example for Spring geometry node
Here the Spring SOP is used to give a line rubber band-like characteristics. Used in combination with an Xform SOP, the rubber band dances about on the floor.
UnpackWithStyle Example for Unpack geometry node
This example demonstrates the Unpack SOPs ability to evaluate style sheet information while unpacking. Nested packed primitives are used to demonstrate partial unpacking while still preserving styling information. This example also demonstrates the use of a Python SOP to extract information from the per-primitive style sheets.
SoftRotate Example for UV Transform geometry node
Animate the rotation of texture coordinates using the UV Transform SOP with a soft falloff.
Press Play to see the animation.
VisibilityCheckers Example for Visibility geometry node
This example demonstrates the how the Visibility SOP can hide or expose selected primitives in the 2D or 3D view ports.
DetectOverlap Example for Volume Merge geometry node
This example shows how to detect the overlapping regions of many incoming volumes procedurally using Volume SOP and Volume Merge SOP.
ModulusTransform Example for Transform geometry node
Create a cyclical animation using the Transform SOP, the Group SOP, and the modulus operation.
See also |