|On this page|
This node generates spherical objects of different geometry types. It is capable of creating non-uniform scalable spheres of all geometry types.
If an input is provided, the sphere’s radius is automatically determined as a function of the input’s bounding geometry.
This Operation is used to create spheres and ellipsoids. Clicking and dragging the mouse on the Construction Plane generates a sphere whose radii are specified by your drag.
Placing a Sphere in the viewer
Place a sphere anywhere in the scene
Place a sphere at the origin
There are special handles available at the geometry level for the sphere object that allow you to stretch and squash it.
Move to the geometry level by double clicking the sphere node in the network editor or by clicking the Jump to Operator button on the operation controls toolbar.
Drag the handles to squash or stretch the sphere.
Type of geometry to create.
Creates horizontal lines, which are open polygons.
Creates vertical lines, which are open polygons.
Rows & Cols
Both Rows and Columns. All polygons are open.
Builds the grid with triangles.
Creates four-sided quadrilaterals.
Creates the grid using alternating triangles.
This is the X radius of an ellipsoid that is placed if you click on the Construction Plane without dragging. If you click and drag, the size of the sphere is over-ridden by the amount of drag. Entering non-equal values in the xyz fields results in ellipsoidal shapes.
The X radius is defined by the distance dragged from the center, while the Y and Z radii vary proportionally with the X / Y and X / Z ratios in the parameter dialog.
Determines the location of the center of the ellipsoid. This value is updated whenever you click (and drag) to create an ellipsoid. A new ellipsoid center will be positioned here if you hit Enter.
Rotation about the center of the ellipsoid.
Poles of sphere align with orientation axis.
Increases or decreases the number of polygons which make up a polygonal sphere. The higher the frequency, the smoother the sphere. It is disabled if building a sphere of a type other than polygonal.
The number of rows of a mesh or imperfect NURBS / Bezier sphere. The more rows and columns, the rounder the sphere. A NURBS or Bezier sphere should have at least order-1 rows and columns. Rows are associated with the V directions and columns with the U parametric direction.
Number of columns in the sphere.
Sets the U spline order of the NURBS or Bezier surface when building a sphere of one of these two types. The lowest order is 2 (linear); the highest is 11. Cubic spheres are built by default.
Order of NURBS/Bezier curve in V direction.
Specifies whether the NURBS / Bezier sphere should be built using rational or non-rational splines. A perfect sphere has a rational topology, one that associates non-unit weights with certain vertices. Furthermore, a perfect sphere has a predefined number and positions of CVs for any given spline order. An imperfect sphere is non-rational and its number of CVs isn’t that strictly determined by its order.
Rational spheres built this way yield a mathematically perfect shape; however, given their special definition, perfect spheres are not always the ideal choice for further modeling of their points. Besides, they represent heavier geometry and may put more pressure both on the cpu and ram. In practice, you will find imperfect spheres to be a better modeling choice, so it is advisable to build perfect spheres only when perfect shapes are paramount.
Unique Points per Pole
In a mesh-type sphere, the meridians meet at the poles of the sphere. This creates a situation where each meridian line contributes its own point to a pole. When this box is not checked, the points are consolidated into a single point shared by all the meridians. Otherwise if checked, the points are all left to be unique.
If the operation is being used to generate a bounding sphere for its input geometry, this parameter tells us to use a more accurate (but slower) bounding sphere calculation.
In a polygon mesh sphere, each polygon is logically a quad. However, at the poles, two points become degenerate. If Triangular Poles is enabled, these quads are turned into triangles.
This example shows all the geometry types the Sphere SOP can create and explains the differences between them.
Choosing the right geometry type can make a network flow and render much faster.
The following examples include this node.
This is a simple example of using the BlendPose CHOP to deform some geometry using random tracker point positions.
This file demonstrates how the Copy CHOP can be used to copy channels and apply them to geometry.
This example demonstrates how to count impacts from a DOPs simulation using the Count CHOP. Then, using the values from the Count CHOP, we generate copies of a teapot.
This example demonstrates how to use the Dynamics CHOP to extract impact data from a DOPs simulation, and then modify the data to control lights in the scene.
This example demonstrates the use of the Dynamics CHOP to pull transformation information out of a DOP simulation and apply it to Objects.
This example uses the Hold CHOP in conjunction with the Dynamics CHOP to hold a light at the position of an impact from a DOPs simulation until a new impact occurs.
This example demonstrates how to use the Lookup CHOP to play animation based on an event, or trigger.
This example demonstrates using the Noise CHOP to generate animation and apply it to geometry.
This example demonstrates how to take the animation from three separate objects, and sequence their animation into one animation on a fourth object.
This example shows how to use the Apply Relationship DOP to propagate constraints automatically and create an RBD simulation of a collapsing bridge.
This example demonstrates how the Apply Relationship DOP can be used to create multiple constraints with the RBD Pin Constraint node.
This example demonstrates how to build mutual constraints between two DOP objects using the Apply Relationship node.
This example demonstrates how to use the Blend Solver. In this case the Blend Solver is used to blend between an RBD solution and a keyframed solution.
This cloth example shows you how to simulate a ball bouncing on a blanket pinned at all four corners.
This example shows a pieces of cloth with different properties colliding with spheres. By adjusting the stiffness, bend, and surfacemassdensity values, we can give the cloth a variety of different behaviours.
This example demonstrates how different anchor positions can affect pin constraints.
This example shows how to gradually remove glue bonds from a constraint network and control the crumbling of a building.
This example shows how to create spring constraints between nearby objects, and then change those constraints to glue constraints during the simulation.
This example shows how to use the Copy Object DOP, in conjunction with a Multi Solver, to automatically break an RBD object in half whenever it impacts another object.
This example demonstrates the use of the Copy Objects DOP. A single RBD Object is copied 100 times, and assigned a random initial velocity, and a position based on some grid geometry. These 100 spheres are then dropped onto a ground plane.
This example demonstrates using heightfields for terrain adaptation in the crowd solver, and for collisions against ragdolls in the Bullet solver.
This example demonstrates how to set up a partial ragdoll, where a subset of the agent’s joints are simulated as active objects by the Bullet solver and the remaining joints are animated.
This example file demonstrates how the built-in trigger types for the Crowd Trigger DOP can be used.
Extracts the velocity field from a smoke simulation to use as a wind force on a POP simulation.
This example demonstrates how to use another active RBD Object as the source for the Field Force DOP. Two balls bounce inside a cube, one of the balls is set to repel the other according to force values stored on its geometry.
This example demonstrates the use of the Field Force DOP. A group of RBD Objects are passed through a field which at first pulls the together, and then pulls them apart as they advance through the field.
This example shows how to use the File DOP to cache a simulation to disk and read it back in.
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.
This example demonstrates two fluids with different densities and viscosities interacting with a solid object.
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 shows an RBD ball being thrown into a tank of liquid.
Fills an RBD container with fluid that enters the simulation by being sourced from another RBD object.
This example shows a ball falling into a tank with feedback. This couples the RBD simulation with the Fluid simulation, causing the ball to float rather than sink.
This example shows how to vary the drag in a fluid simulation. It provides examples of using a specified field to be a high drag zone, of automatically applying drag only to the fluid surface, and of applying negative drag to an area to make the fluid more volatile.
This example shows how to take any object with it’s volume representation and add it to the temperature field. You can change the temperature of the object in two ways: by adjusting the volume density value or by adjusting the Gas Calculate microsolver DOP’s source’s Pre-Multiply field.
This example demonstrates how to diffuse the density of a smoke simulation using the Gas Diffuse DOP.
This example demonstrates how the Gas Equalize Volume dop can be used to preserve the volume in a fluid simulation.
This example creates a teapot shaped blob of liquid. It then uses surface tension forces to smooth the blob into a sphere.
This example demonstrates how the Up Res Solver can now be used to re-time an existing simulation. The benefit of this is that one can simply change the speed without affecting the look of the sim. On the up-res solver there is a tab called Time. The Time tab offers various controls to change the simulation’s speed.
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.
This example demonstrates how to use the Magnet Force node on a group of metaballs to force the fragments of an object outwards at the moment of impact.
This example demonstrates how the magnetforce DOP can be used with a pair of metaballs (one positive and one negative) to attract/repulse an RBD sphere.
A Uniform Force is applied to a number of RBD Objects to demonstrate how the Mask Field can be used to define a region where the force will be applied.
This example demonstrates how to couple the Particle Fluid with an RBD object so they both affect each other. The result is a buoyant sphere.
This example demonstrates the use of viscous and elastic forces in a particle-based fluid to generate viscoelastic fluid behaviour. The result is a fluid-like object that tends to resist deformation and retain its shape.
This example demonstrates how to use the POP Attract node to get a group of particles to follow the motion of an animated sphere. POP Interact and POP Drag nodes are also used in the example to control the interaction between particles and their distance from the sphere.
This example demonstrates how to use the POP Attract node with it’s type set to Point in order to control particle attraction on a per point basis.
This example demonstrates how to use the POP Axis Force node to cause a group of particles to billow upwards.
This sample creates a simple ragdoll using the cone twist constraint between pieces of the ragdoll.
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.
This example uses an RBD projectile to shatter a piece of glass. The glass is made up of simple trangular shards glued together.
This example also demonstrates a situation where using volume based collision detection would not work, and so the objects are treated as infinitely thin surfaces when performing collision detection.
This example demonstrates the use of the Initial State parameter of an RBD object.
This example demonstrates a simple rigid body dynamics simulation using the RBD Object DOP. A single sphere is dropped onto a ground plane.
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.
An RBD vase filled with water performs the water simulation in the vase’s reference frame.
This example demonstrates how to use the Ripple Solver and Ripple Object nodes. Bulge SOPs are used to deform a grid to create initial geometry and rest geometry for the Ripple Object which is then piped into the Ripple Solver.
This example demonstrates how to use the Script Solver node to scale fractured pieces of an RBD sim over time.
Demonstrates exporting a 2d fluid into COPs where it can be saved to disk as a sequence of image files to then be used as texture maps, displacement maps, etc.
For fastest speeds, the system needs to minimize copying to and from the video card. This example demonstrates several methods for minimizing copying.
Turns off DOPs caching. Caching requires copying all the fields every frame. Useful if you want to scrub and inspect random fields, not if you want maximum speed.
Only imports density to SOPs. This means copying only one field from the GPU to CPU each frame.
Saves to disk in background. This gives you the best throughput.
Uses a plain Smoke solver.
Displaying the simulated output in the viewport requires a GPU → CPU → GPU round trip, but this is required in general to support simulating on a card other than your display card.
This example demonstrates a simple smoke system using a source, keyframed RBD collision objects, and vorticles.
A ghostly tetrahedron bounces around a box, its presense shown by its continuous emission of smoke.
This example uses static object nodes in an RBD simulation of a grid falling and bouncing off three spheres before it hits the ground.
This example actually includes eight examples of ways that you can use voronoi fracturing in Houdini. In particular, it shows how you can use the Voronoi Fracture Solver and the Voronoi Fracture Configure Object nodes in your fracture simulations. Turn on the display flags for these examples one at a time to play the animation and dive down into each example to examine the setup.
This example uses a few balls to visualize the force generated by a Vortex Force DOP.
This example illustrates how the Wind DOP can be used to add turbulence to a fluid simulation.
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.
This example demonstrates how to break wire constraints on a per point basis. The wire solver is set up to constrain certain points if it finds an attribute named 'pintoanimation'.
This example shows how to mutually affect an object at the constraint point and the object at the bob of the pendulum.
This example highlights several features:
Geometry area lights
Attenuation ramp controls
Surface model specular layers
The example consists of a geometry light based on a wireframe of nurbs curves. The attenuation on the light uses colored keys, allowing for different light colors to be produced at different distances from the light. The ground plane shader uses a surface model with two specular components - one wide component and another narrower glossy component to give a multi-layered appearance.
This example shows how to configure transparent shadows with deep shadow maps. The scene includes a transparent grid which casts a shadow on the scene. The renderer used is micropolygon rendering.
This example demonstrates how to make a muscle jiggle in object space using a two point muscle.
In this example, we demonstrate how a switcher node can be used to switch the view between two cameras and then used by the render node to output the scene.
This example shows how to setup Bake Animation ROP to tranfer animation from a rig onto another while baking object constraints.
Ambient occlusion is a fast technique for producing soft, diffuse lighting in open spaces by using ray tracing. It is computed by determining how much of the hemisphere above a point is blocked by other surfaces in the scene, and producing a darker lighting value when the point is heavily occluded. This technique can be useful when you need a GI-like effect without paying the price for full global illumination.
With this particular example, an Ambient Occlusion light and some geometry is provided in the form of a Digital Asset. An Environment Light was used, and it’s parameters were promoted for easy access.
Decreasing the sample count allows you to improve render time at the expense of some additional noise in the render. The following render uses the same shader as the image above but decreases the samples from the default of 256 to 16. This value is set on the Sampling Quality under the Render Options tab of the Light.
If you have a smooth environment map, it is possible to replace the global background color (white) with the value from an environment map. You can also enable the Sky Environment Map under the Sky Environment Map tab.
The example demonstrates how to generate a motion vector layer for post-velocity compositing. Load the example and render 5 frames. Then in the image viewer, switch from 'C' (colour) to 'motion_vector' to see the results.
Volume rendering is a rendering approach that allows high-quality, integrated rendering of volumetric effects like smoke, clouds, spray, and fire.
Volume rendering is suitable for rendering many types of volumetric effects. Scenes that are particularly suited to rendering with mantra volumes include:
Detailed "hero" clouds, smoke, or fire
Fields of instanced clouds, smoke, or fire
Scenes where volume rendering may not be quite so applicable include:
Scenes with a single uniform fog
In this particular example, a bgeo file (1 frame only) was exported from a fluid simulation of smoke and is now referenced using the File SOP. A material using VEX Volume Cloud is assigned to this volumetric data at the top level of the Volume Object. To see this scene in shaded mode, ensure that HOUDINI_OGL_ENABLE_SHADERS is set to 1 in the environment variables.
Volume rendering uses ray marching to step through volumes. Ray marching generates shading points in the volume by uniformly stepping along rays for each pixel in the image. There are two ways to change the quality and speed of the volume ray marching:
The samples parameter on the Sampling tab of the mantra ROP. More pixel samples will produce more ray marches within that pixel leading to higher quality. Using more pixel samples will also improve antialiasing and motion blur quality for the volume.
The volumesteprate parameter on the Sampling tab of the mantra ROP. A larger volume step rate will produce more samples in the volume interior, improving quality and decreasing performance. A separate shadow step rate can be used for shadows.
Which parameter you should change will depend on your quality requirements for pixel antialiasing. In general, it is better to decrease the volume step size rather than increase the pixel samples because a smaller volume step size will lead to more accurate renders.
This render uses 2×2 samples and volume step rate of 1. Notice the detail in the shadows.
This render uses the same scene with 4×4 samples and a volume step rate of 0.25. The fine detail in the shadow has been lost and the volume is somewhat more transparent. The quality level is approximately the same.
This example demonstrates how to use the shutter shape parameter to control the opening of the shutter along time through a grayscale ramp.
This example shows how to create an atmosphere shader with volumetric shadows. The atmosphere object has a vex lit fog shader attached to it, and the spotlight has deep shadows enabled. The objects in the scene have a matte shader attached to them.
In this file we create a downhill lava flow with crust gathering and hardening at the base of the slope. All of the animation is achieved through the shader itself, and all of the geometry is completely static.
Most of the parameters for the lava material are overridden by point attributes created in the surface nodes.
No geometry is animated in this file. All animation is achieved by animating the textures
Flames are grids so that UV textures can easily be applied, they are then warped around a metaball using a magnet SOP. The flames are then assigned to either a yellow or blue Flames texture. The Flames' opacity mask wrap is set to Decal to prevent the texture from repeating and showing a single pixel ring at the top of the flame geometry. I'm also using a mask file named
flameOpacMap.jpg to enhance the flames' shape at the top. The noise offset has been animated over
$T with an greater emphasis on the Y axis so that the flames look like they are rising. This is the same reason the Noise jitter is larger for the Y axis as well.
The coals are spheres that have been copy stamped onto a deformed grid. Using Attribute Create surface nodes I am able to override and copy stamp the lava texture’s parameters at the SOP level so that local variables, such as
$BBY, can be used to animate the texture. This way the texture’s crust and its crust values can be used only to form the tops of the coals. This reserves the lava aspect of the texture to be used on the bottoms of the coals. The lava intensity (
Kd attribute) is then stamped and animated to create the look of embers on the bottom of coals glowing.
In this file we create a simple geometry and assign BxDF shaders to it. The shading network consists of pattern shaders feeding into the BxDF shaders.
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.
This example demonstrates how the UV information on surfaces, NURBS in this example, are used by the Align SOP to orient one object to another’s surface.
UV reference parameters in the Align SOP can be animated as shown in the align_tube example.
Animating UV parameters leads to the translation and rotation of the aligned geometries along one another’s surface in various ways.
This example shows how you can break a sphere into packed objects for use in a rigid body simulation using the Assemble SOP.
This example demonstrates how the AttribPromote SOP can be used to transfer (promote) attributes between points and primitives.
The Attribute Transfer SOP can be used to transfer color attributes from one geometry to another. The effective field of transfer can be controlled through the various parameters in the Attribute Transfer SOP.
This example demonstrates how to use the new Bend node to bend a flounder.
This network utilizes the Blendshapes SOP to morph one geometry’s colors into another’s color.
Two input blend shapes act as inputs for the Blendshapes SOP.
The Blendshapes SOP interpolates all designated attributes, in this case "Cd" between the various inputs.
Play the animation to see the effect.
This node shows how to iterate over all the pieces of one geometry to consecutively subtract volumes from an original geometry.
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:
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.
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.
Create a simple cat head by using the Bulge SOP combined with metaballs and a NURBS sphere.
This file uses the Particle SOP to create a stream of particles.
Then using the Cache SOP, the particles are slowed down. The Cache SOP has the ability to control the frame rate of an animation and read the animation slower than the global frame rate
This network is a demonstration of how the Carve SOP can be used to extract various elements of the surface geometry.
Depending on the type of geometry, the Carve SOP may be used to extract points from polygonal objects or curves from NURBS surfaces.
Furthermore, the Carve SOP uses the surface U and V information to extract the various elements, and by animating the U and V values we can create various effects as the points and curves move on the geometry surface.
This network contains an example of how the Carve SOP can extract 3D Isoparametric Curves from a surface, and how those curves may be used as a copy template.
The Carve SOP can be used to slice a primitive, cut it into multiple sections, or extract points or cross-sections from it.
In this example, the Extract option has been used to Extract 3D Isoparametric Curve(s). A series of disk-like shapes are created as the Carve SOP extracts curves from points around the surface with the same V Directional value.
It then uses the points along those curves as a template on which to copy sourced geometry.
This network is a demonstration of the Carve SOP, specifically when dealing with extracting curves from a NURBs surface and animating that extraction.
The Carve SOP uses the U and V surface data to carve the geometry.
In our example we have extracted curves which can then be used as basis for other geometry to create interesting effects.
Given the Carve SOP uses a 0 to 1 value to carve either in the U or V surface direction, that value can be animated either by keyframing or through expressions.
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 demonstration contains four examples of how a Clay SOP is used. The points have been animated to better visualize this.
Matrix - Point transformation is given by a matrix.
Vector - Point is translated along a vector.
Point - Point is moved to an absolute XYZ position in object space.
Primitive - Point snaps to the (U,V) of the primitive in the 2nd input of to a (U,V) on itself if no 2nd input is present.
This network compares the various ways in which the Clip SOP can be used with geometry. Depending on what parts of the clipped geometry we want to keep, different effects are achievable.
The Clip SOP can also be used as a grouping tool by specify group boundaries with clip planes.
Clip planes can be animated. Play the animation to view the results.
This example demonstrates how you can use the Cloth Capture and Cloth Deform nodes to transfer the simulation from a low-res piece of cloth to a hi-res piece of cloth.
This example shows the various ways in which the Convert SOP converts geometry types using a simple sphere.
A chart is used for this demonstration.
The left column of the chart describes the original geometry type to convert from.
The top row of the chart describes the geometry type to convert to.
All Sphere SOPs and Convert SOPs in this demonstration use their default values to better visualize the differences.
This example displays the various ways in which a Cookie SOP operates.
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.
The Copy SOP can be used for more than copying geometry. In this example, the Copy SOP is used to transfer color attributes from the template geometry (or point) to the copied geometry.
A polygonal sphere with color infomation is used as the source geometry. A point with a color attribute (Cd) is extracted from the sphere and used as a template by the Copy SOP. Then the Copy SOP transfers the color infomation to a copied polygonal circle.
The Copy SOP is used to transfer specific attributes from a template to copied primitives. In this example, a sphere is use as a template with color attributes added to the sphere points. A Particle SOP is then used to birth particles from the sphere points.
Next, a Copy SOP does two things:
It copies geometry to the particles.
It transfers the color attribute from the source sphere points to the geometry whose position is based on the particles.
Play the animation to see the effects.
The Copy SOP is used to copy geometry to particles using the Particle SOP as a template. In the example, the Scale parameter of the Copy SOP is used to create the specific effect. The Copy SOP may also be used to control different attributes of the copied geometry beyond mere scale.
Play the animation to see the effects.
In this example, the Copy SOP is used to randomly copy various objects onto points of a given template geometry. We use the stamp capability of the Copy SOP for our purpose. Furthermore, the entire process is kept procedural so that we have the option of determining the type and the number of geometries to be copied and the kind of template to be used.
Inside the Stamp tab of the Copy SOP we create a variable named "switch" which will drive the input value of the Select Input parameter in the Switch SOP. In turn, the Copy SOP is able to copy at random any number of input geometry to template points.
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.
This is a demonstration of how the CurveClay SOP can create an embossed effect on nurbs or bezier geometry.
Two different methods of using the CurveClay SOP to imprint font onto a sphere are shown.
The first method uses a single projected profile, the second method uses two profiles.
This example demonstrates how the Delta Mush SOP is used to smooth out bone deformation.
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.
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.
This example shows various ways of fracturing along the edges of an input mesh using the EdgeFracture SOP.
This example demonstrates how to cool Lava using the Cool Within Object shelf tool.
This example file uses the Force SOP in conjunction with Metaball SOPs and Particle SOPs to create dynamic animations.
Using the Radial Force Parameter of the Force SOP, particles are puffed in and out. Then, using the Directional Force Parameter, a rotating vortex is created as a metaball spins around an axis.
Press play to view the animation.
This example shows how to use the For Each SOP to individually boolean a bunch of self intersecting spheres with a cheese wedge.
This example shows how to use the foreach sop to intersect one object with each part of another object and merge the results together.
This example demonstrates using the Fractal SOP to deform geometry to get a random, jagged subdivision surface. This is a useful tool in creating things such as bumpy terrains, landscapes, rocks, or debris.
The Fractal SOP is applied to each geometry type to show how the displacement changes based on the geometry type.
This example demonstrates how the Fur SOP builds hair-like curves based on guide curves and skin geometry.
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 illustrates how custom shaders can be used to define the appearance of fur generated by the Fur SOP.
This example demonstrates how feature edges of your object can be preserved during a polyreduce by using an Edge Group.
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.
This is an example of how a Lattice SOP is used to create a bouncing ball.
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.
This example shows how you can use the foreach sop to apply a lattice to each fragment of a sphere.
This example demonstrates the use of the layer SOP to layer multiple textures onto a single object.
This example demonstrates how to have multiple shading layers with different uv sets using the Layer SOP and the VEX Layered Surface SHOP.
This example demonstrates some of the various ways to use the Magnet SOP.
It can be used to affect point position, point color, point normals, and velocity.
This example demonstrates how the Match Topology SOP lines up the points and primitives between two geometries with equal amounts of points and primitives.
The Tracking Points, Reference Points, and Assume Primitives Match features are utilized to get a perfect match.
This example demonstrates how to create groups based on the area of a primitive using the Measure SOP.
The Merge SOP applies all incoming attributes to all input geometry. Each input geometry may have its own set of attributes.
Three spheres are wired into a Merge SOP. The first has no attributes applied. The second has a color attribute (
Cd) applied by a Point SOP. The third has a normal attribute (
N) applied by another Point SOP.
The Merge SOP does NOT know how to build attributes, but can apply them. As a result, all applied attribute values are set to zero.
This is why the first two spheres display and render black. They have normal attributes applied, but their values are set to zero.
In addition, the first and last spheres have a color attribute applied, but their values are set to zero.
It is better to set attributes explicitly, instead of relying on the Merge SOP to do so.
This example shows the ability of the Particle SOP to define a default Size for any given birthed particle.
A simple Grid can be used to create a dynamic solution of particles streaming off as if blown by the wind. As these particles leave the grid, their size slowly diminishes, as the particle continues to die.
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.
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.
This example uses a Metaball SOP and a Force SOP to push particles side to side as they pass through a particle stream generated by a Particle SOP.
Particles are birthed in the air off of a sphere, while a metaball passes back and forth through, pushing the particles from its path.
Play the animation to see the full effect.
This example demonstrates how to break geometry in a DOPs simulation using the Partition SOP to determine the DOP Objects.
This example of the Point SOP demonstrates the capacity of the Point SOP to alter geometry based on another input.
A sphere is created and then the points are randomly transformed. Then, by using both inputs of the Point SOP, the original sphere is brought back to average out its altered form. A simple math expression averages the positions of the two spheres, point by point.
The Point SOP is quite a versatile operator. This example shows how the Point SOP may be used to control point weight, color, normals, and UV attributes.
Furthermore, it is possible to create various relationships among the point attributes through the Point SOP.
This is a demonstration of how the Point SOP can be used to add Normals to geometry.
It also shows how the Point Normals affect the orientation of copied geometry and the appearance of shaders.
Using the Point SOP, a simple displacement is created and applied to a portion of a spherical surface.
Using the normals of a point, which is basically a vector, and adding that number to the position of the point, the point is displaced in that given direction. With a Merge and Skin SOP the displaced surface is then connected back to the original.
This example demonstrates the various options for joining polygons using the PolyKnit SOP. The PolyKnit SOP is useful for filling in holes, gaps, or to re-define edges on polygonal geometry.
PolyKnit can be used to manually knit joining polygons between existing polygons. Polygons are created by specifying a list of input points from which to "knit" the new polygons.
PolyKnit will yield different results, depending on the pattern by which the points are selected or listed. Please see the Helpcard documentation for more information on how the PolyKnit SOP builds new polygons.
This example demonstrates the use of the PolyPatch SOP to procedurally model complex forms.
Here, a DNA model is created.
This is an example of how to use the Primitive SOP to correctly sweep primitives on a curve.
The Sweep SOP places the origin of a primitive on a curve by default. If the primitive centroid is away from the origin, the primitive will be placed away from the curve.
In order to correctly place the primitive’s centroid on the backbone, its centroid must be at the origin. For this, the Primitive SOP is used.
This example demonstrates using the Primitive SOP to add a Color attribute to primitive geometry.
The rand() function is used in the RGB fields to generate different random colors for each primitive.
Then the prim() function is used to reference the attribute values of one SOP, to drive the attribute values of another SOP.
This file demonstrates the ability of the Primitive SOP to control the individual primitives of the object.
With expressions in the Translate Parameter, motion is created driving the primitives away from their centroid. Yet another expression presents the primitives with a randomized rotation. Another randomizing expression colorizes each of the primitives.
Together these parameter create an explosion destroying the original sphere.
The Ray SOP projects one object over the surface contours of another.
It does so by calculating the collisions of the projected object’s normals with the surface geometry of the collided object.
In this example, a Grid is wrapped over the surface of a deformed Sphere using the Ray SOP.
A Facet SOP is used to correct the normals of the wrapped Grid after it is deformed over the surface.
The Rest Position SOP creates an attribute based on the surface normals that allows a shader to stick to a deforming surface.
All primitives support the rest attribute, but, in the case of quadric primitives (circle, tube, sphere and metaball primitives), the rest position is only translational. This means that rest normals will not work correctly for these primitive types either.
Use the Rest Position SOP only when you are deforming your geometry and you are assigning volumetric or solid materials/patterns in your shader.
Rest normals are required if feathering is used on polygons and meshes in Mantra. NURBs/Beziers will use the rest position to compute the correct resting normals.
It will be necessary to render the setup in order to see the effect.
This example shows how you can blend point positions taking into account their velocities, using the Sequence Blend SOP.
This example shows how to blend primitive attributes using a Sequence Blend SOP.
This example shows all the geometry types the Sphere SOP can create and explains the differences between them.
Choosing the right geometry type can make a network flow and render much faster.
This network utilizes three SOPs (Bound, Spring and Lattice) that commonly work together to simulate certain physical dynamics.
We have created a simple polygonal sphere to act as the source geometry. The sphere is then fed into a Bound SOP which will act as a deforming reference. The Bound SOP also behaves as re-enforcement for the deforming object.
Then the bounding box is wired into the Spring SOP with a group of grids as collision objects. The Spring SOP simulates the dynamics by calculating the proper deformations and behaviours of our source geometry as it collides with other objects. The Spring SOP is where we can apply external forces along with various attributes (characteristics such as mass and drag) which influence how the object deforms.
Finally the Lattice SOP takes the deformation information from the Spring SOP and applies it to the source sphere geometry.
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.
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.
This example demonstrates the use of the Surfsect SOP’s boolean operation.
First a box is used to subtract from a Sphere leaving 4 disks. Then the Sphere is used to subtract from the Box leaving just the corners.
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.
This example demonstrates the various projection types supported by the uvproject SOP.
This examples demonstrates using the
disableexternal attribute to disable Vellum collisions on a point-by-point basis.
This examples shows how to target a hi-res Vellum cloth simulation to a previous low-res simulation to maintain overall motion while still getting fine wrinkles.
This example uses the Vertex Split SOP to add sufficient points for copying vertex texture coordinates to point positions.
This example shows how to use the Volume Feather SOP to smooth sharp volumes either in a purely outwards or purely inwards direction.
This example shows how to use the Volume From Attrib SOP to transfer point attributes into volume voxels.
This example shows how to detect the overlapping regions of many incoming volumes procedurally using Volume SOP and Volume Merge SOP.
This example shows how to use the Volume Merge SOP to flatten multiple instanced volumes onto a single camera frustum volume.
This example shows how to import multiple volumes into a Volume VOP SOP.
This example demonstrates using the Weight Attribute option on the Voronoi Split SOP to create a power diagram.
Create a cyclical animation using the Transform SOP, the Group SOP, and the modulus operation.
This example demonstrates how to use geometry import to interact with SOP networks by creating a workitem per detail, primitive, point, or vertex.
This example demonstrates how to run compiled blocks using pdg data as input.
This example demonstrates how to use the partition by tile node in PDG/TOPs.
Example of building point Groups in a VOP SOP where every other point is added to a new group.
Only point groups are supported in VOPs.
The VOPs you need to learn are:
Add Point To Group VOP, Create Point Group VOP, and Point In Group VOP
This example demonstrates the use of an Inline Code node that allows you to write VEX code that is put directly into your shader or operator definition.
This example shows how the pcwrite vop can be used to write out points to a point cloud file. Render the mantra1 ROP to generate the point cloud, then view the point cloud with gplay. The distribution of points will depend on where mantra shaders are executed - in this case, the mantra ROP is configured to shade hidden surfaces allowing the back faces of the sphere to generate points.
This example demonstrates a simple ray traced shader using a vop vex network. To modify the shader properties, create a properties shader in the material and connect it to the output shaders node. You can then add rendering parameters to the properties node. For example to control the number of reflection bounces, you would add the reflect limit parameter.