Modeling Refine NURBS geometry by pasting
Pasting is a process which allows you to take to two or more 3-D surfaces (called “features”), and add their effect on top of another 3-D surface (called the “base”). This is done without increasing the complexity of the base surface, yet allows the added detail to move freely on the base after being pasted. This is useful for such things as maintaining a library of facial features and pasting them onto the 3-D model of a person’s head.
In the process of pasting, the 3-D surface moulds itself onto the shape of the underlying base surface - in effect, the feature’s UV space is placed within the base’s UV space.
This process is maintained in a hierarchical fashion, thus allowing multiple features to be pasted (e.g. nose, ears, mouth) onto a single base. Features may also overlap. More features may then be pasted onto existing features.
The angles formed by mapping the domain of the feature to the surface of the feature are computed. Then, these angles are added to the normals of the base shape in order to derive the XYZ locations for points on the pasted surface.
The vectors which connect the feature domain and the feature surface are called “tentacles'. The length, angles, and the number of tentacles determine the shape and the quality of the paste.
Thus, if the base has a high amount of curvature and the tentacles diverge inward or outwards, greater distortion in the paste will result.
From this fact, we can make several observations which will help us in regards to decisions that affect pasting quality:
The flatter the base surface, the less distorted the pasted surface will be.
The more tentacles on the feature surface (i.e. the more refined the feature), the better its moulding on the base surface.
The more vertical the initial tentacles, the more closely the pasted surface will follow the features of the base.
The shorter the tentacle, the closer to the base surface it will be. Therefore, in general it is better to start with a flat base surface, and deform it in the middle, leaving the edges so their slope is flat. This yields better boundary continuity across feature and surface.
It is also good to ensure that the feature starts out as a rectangular grid and all the interior deformations don’t “spill-out” of the rectangular area.
It is also possible to add detail to a base by extracting a pasted sub-surface from it. The resulting surface will share the shape and the underlying domain of the base in that area. This procedure is called “spawning”.
You cannot paste across multiple paste hierarchies.
Most, but not all sops support the “Pasted” primitive type. Those that do not will either ignore the hierarchical primitive or delete it.
A hierarchy of pasted splines is called a “paste hierarchy” or “multi-resolution surface”, and is represented as a primitive in the geo-detail. It’s number is displayed in brackets ( e.g. (5) ) when primitive numbers are enabled in the Viewport options. The brackets should not be used when specifying the primitive number.
A spline surface can belong to only one hierarchy at a time.
There are two ways of building a paste hierarchy; from outside the base surface, and from inside the base surface.
Adding Detail from Outside (Parametric and Projective)
This is done using the Paste sop, with two inputs: the feature and the base.
Along Vector (Projective) Paste
1. In a Parametric Paste, the Paste sop places the feature on an area of the base surface delimited by four user-defined isoparametric curves. The feature is thus aligned with base surface isoparametrically.
The advantage of Parametric Pasting is that the feature is guaranteed to “land” on the base within a well determined parametric area regardless of the base’s shape, position and orientation; also, the continuity between feature and base is enhanced by the parametric alignment between the two surfaces.
2. In a Projective Paste, the four corners of the feature surface are projected onto the base surface first. Then the entire feature is moulded onto the base such that its corners match the four projected points. The feature is not aligned with the base isoparametrically.
The advantage of the Projective Paste is that it applies the feature onto the base intuitively along a vector, without any parametric alignment, generally producing a mould that is similar in shape and orientation to the original (unpasted feature).
Growing Detail from Within (Spawning)
If you use only one input to the Paste sop, you can still create a pasted surface using a method called “spawning”. This technique extracts a portion of the base surface and turns it into a pasted surface that shares the base’s shape and underlying domain in that area (much like an onion peel).
The new surface can be further refined and modeled to generate the desired detail; it can be spawned recursively to add even more detail. This new surface may be lofted above the base surface by the amount specified by the Height parameter. This is an easy way to build offset surfaces. The advantage of the spawning technique is that it guarantees perfect geometric and texture continuity between feature and base.
The deletion of surfaces is available in the Delete and Unpaste sops, as well as in the Model Editor.
The Unpaste sop removes one or more pasted surfaces from a paste hierarchy, causing the hierarchy to update. It can keep either the unpasted surfaces or what remains pasted in the hierarchy after the removal of the unpasted surfaces.
By preserving the hierarchical structure of the unpasted surfaces, the resulting sub-hierarchy can be re-applied properly to another hierarchy later on.
The shape and the size of the sub-hierarchy may change considerably as a result of the unpasting operation. This is because the feature surfaces are always mapped onto the domain of the base surface, and the size of the domain is completely unrelated to the size of the actual surface.
By unpasting the root of the paste hierarchy the whole hierarchy becomes undone.
Unpasted Surface Hierarchies
An unpasted surface or sub-hierarchy can be repasted later with the Paste sop. One case of repasting is worth mentioning for its practical use.
Assume you have used the Paste sop to spawn a new surface as a detail added to the base surface. Now you are ready to model the new feature. You can do so by working on the pasted feature, making sure to affect only its points and not the points of the base surface as well. If the point density of the model is high, it may be more convenient to model the feature separately, then re-attach it to the paste hierarchy as if it had never been removed.
There are three easy steps to achieve this goal:
Use the Unpaste sop with the default parameters: keep the unpasted part and preserve the shape of the feature together with its hierarchical information. Make sure to specify the feature’s primitive number in the Group field. Notice the shape of the feature has not changed.
Model the stand-alone feature with Houdini’s array of tools.
Repaste the feature on the same base surface using the “As Is” page with Shape Preservation enabled.
Pasting is a revolutionary surface refinement tool that adds NURBS and Increasing the complexity of the base surface.
Benefits of Pasting
Surface pastings benefits include:
Low cost, space-efficient, refinement mechanism with local detail and deformation control.
Interaction with the surfaces in real-timeas a whole, or with each surface individually both before and after the surface is pasted. This flexibility in editing geometry allows for rapid prototyping and experimentation at any stage of production.
Records the surface composition as a dynamic hierarchy - just animate the base and the features will follow.
Conversion of an entire paste hierarchy into a single surface: polygonal or spline-based. Treating a paste hierarchy as a single surface allows you simplify and easily integrate the new geometry into your project.
Ability to repeat the paste procedure on already pasted geometry, and have Houdini treat the resulting geometry as if it was a single surface.
Works transparently with NURBS and B-splines.
Encourages reuse of parts on other projects, allowing you to construct a library of already-modeled geometry.
Pasted detail can be added either by dropping an existing feature onto the base or by extracting a sub-surface from the base. A surface derived from the base can be then set aside for future use.
Pasting is not a restrictive procedure paste the feature onto the base either upwards (as a bump), or downwards (denting the surface).
System-level integration with other surface properties, including texture, color, and transparency.
Difference Between Pasting and Traditional Refinement
The main drawback of traditional refinement methods is the often unnecessary addition of control vertices, leading to heavy geometry. Unlike polygonal meshes, which can be refined by subdividing only the areas where more detail is needed, spline surfaces require the insertion of entire rows or columns. Some of the resulting vertices are then displaced to model the intended detail, but the others are simply excess baggage.
Traditionally, the more detail required, the denser the spline surface will become. If an area already refined needs further detailing, the refinement process will repeat and, soon, the surface will become an unwieldy mesh of points.
Ideally, one would want to add the detail as a seamless displacement from the base surface, leaving the base untouched. If more detail is needed, it should be added to the composition as if the composition were a single surface. These are the primary goals that Houdini’s latest modeling tool, Pasting, has been designed to meet.
Pasting uses an intelligent displacement technique that embeds the underlying domain of the detail surface into the domain of the base surface. It moulds the vertices of the detail onto those of the base in a seamless fashion. The resulting structure is a paste hierarchy, also known as a multi-resolution surface, consisting of multiple NURBS and/or B-splines.
The feature can be a spline surface or an entire paste hierarchy. If it is a hierarchy, the molding of its root surface onto the base composition will trigger a recursive reshaping of all its pasted elements until the whole feature hierarchy has been mapped onto the base.
The shape of each feature is highly dependent on the shape of the underlying surfaces. Because the feature vertices are computed as offsets from the base surface along its normals, the higher the curvature of the base, the greater the distortion of the feature. Therefore, the angle between normals plays an important role in the amount of feature deformation.
Whether applied to a flat, narrow area or to a large, wavy portion of the base, the feature moulds itself onto the base in the most natural way.
Houdini’s pasting operator (Paste sop) offers excellent control over the shape of the pasted feature. Furthermore, Houdini’s architecture allows modelers to alter the look of the detail even after it has been pasted, without loss of continuity.
Because the paste hierarchy is both an organic structure as well as a cluster of regular spline surfaces it offers both flexibility and power to our approach. Thus, if one or more base surfaces deform during modeling and animation, all of the features pasted entirely or partially on them will react to the change accordingly. Almost any modeling operation in Houdini can be applied to the pasted surfaces as if those surfaces were isolated, without the risk of damaging the hierarchy. For example, one can refine, reparameterize, subdivide, raise the degree, fillet or trim a feature while pasted. Of course, Houdini’s procedural paradigm allows you to perform these operations before pasting as well.
The pasted features can overlap and slide under each other freely. They do not need to be aligned parametrically to the domain of the root surface, but must be fully contained by it. Furthermore, as features slide, become unpasted, or deleted, their children automatically repaste onto the remaining composition in an inherently organic fashion.
Unpasted features, such as noses, limbs, muscles, or door handles, can be repasted onto other hierarchies later. The reuse of parts becomes a natural modus operandi that cuts down the modeling time while encouraging rapid prototyping. Adding personality to a face, for example, simply becomes a matter of choosing the most suitable features from a library of already-made body parts.
Feature and base surface experimentation with reuse of parts
Another advantage of pasting is that features can be pasted both positively, to create bumps, or negatively, to create dents, simply by flipping the orientation of the vertex displacements. Houdini provides an easy mechanism to remove that part of the base surface where the overlay has been applied.
Since the pasted surfaces are placed in a hierarchy, many graph operations apply. For example, it is possible to replace one or more pasted surfaces with another hierarchy, to change the parents of a pasted surface, or to insert a new hierarchy between already pasted surfaces.
If a seamless connection between feature and base is not required, the pasted detail can be lifted off the base along its normals and allowed to levitate above or below it. This option lends itself to a number of interesting effects, such as flying carpets and offset surfaces.
There are three ways to perform the pasting operation: two involve a detail already built, while one uses only the base surface.
1 - Parametric Pasting
The area on the base surface where the feature will land is defined by four intersecting isoparametric curves two in the U direction, and two in the V direction. The feature domain is then mapped onto the target rectangle. The feature will stretch and squash on the base surface to cover more or less of it when any of the four defining isoparms slides on the base.
By mapping a flat spline grid over an entire paste hierarchy between (0 and 1 in both U and V) one can simulate skinning or shrink-wrapping. The skin will mold itself onto the hierarchy, reflecting any deformations in the underlying structure because the skin simply becomes the child of the entire structure below it, as in the images shown below.
Using this technique, skinning a set of muscles becomes a matter of setting up the musculature as a pasted composition, followed by pasting a flat grid onto it parametrically. As one or more muscles flex, those pasted on them will react, and the cumulated deformation will propagate naturally to the skin.
Parametric mapping also provides a means for turning the hierarchy into a single spline surface. As the muscle example above illustrates, an entire hierarchy becomes enveloped in one, outer-skin surface. Similarly, you can place a smooth mask over an entire composition as show in the facial skin example below.
The mask is simply a flat grid, pasted parametrically and offset slightly over the head. It is important to note that changes to facial muscles will be propagated to the mask.
In addition, Houdini’s conversion operator (Convert sop) offers the ability to turn an entire paste hierarchy into a single polygonal mesh that preserves all the visual attributes of the composition, including color, transparency, and texture. The fitting operator can later convert the mesh into a spline surface of arbitrary degree.
2 - Projected Pasting
If you would rather position the feature close to the base surface, then project it onto the base as a pasted detail, you would employ projected pasting. Choose as many features as you need, orient them in space relative to the base, set the projection direction or ask for the vectors of minimum distance between feature and base, and you are done.
The features will land on any part of the hierarchy that the projection takes them to. Houdini can accommodate overlapping features and does not mind if the pasting area is not rectangular or if it is not aligned parametrically with the base domain.
3 - Spawning
If you want to grow detail from the surface rather than paste one already built, you can spawn a new feature by using the Paste operator. Define the area you want to extract from the base by using the same four isoparms encountered in parametric pasting. However, instead of mapping an external surface onto that region of the base, Houdini peels that section off the base surface and turns it into an instant feature. Since the spawned feature surface is a carbon-copy of its parent (sharing even its parameterization) full mathematical continuity is guaranteed.
The feature can then be refined and modeled, and the spawning process can continue recursively with another and another sub-patch. There is no limit to the number of layers a paste hierarchy can have. Furthermore, other surface and paste hierarchies can be pasted onto it using the projective and parametric techniques.
Spawning lends itself well to the construction of offset surfaces, which are often encountered in industrial design. To that end, spawn a feature as large as the base surface by selecting the end isoparms, then offset it positively or negatively to give it thickness. For small displacements along surface normals, spawning can simulate perfect or near-perfect thickness with excellent results.
Texturing is pasting’s second nature. Because of its dual nature, a pasted composition can be textured as a single surface, or as a collection of surfaces.
Spawned features inherit all the attributes of their base, including texture coordinates, which means that the mathematical continuity of the surface extends naturally to its texture attributes as well. A spawned composition will yield perfect texture distribution, maintaining continuity across all layers.
Any projected texture, (e.g. orthographic), computes a continuous texture map over the paste hierarchy. This is similar to painting the hierarchy, where the visible layers touched by the brush absorb the texture in an intuitive fashion. In fact, painting a hierarchy is exactly the same as painting a cluster of independent surfaces. The paint program can treat the features as stand-alone surfaces, without having to know anything about paste hierarchies.
Ultimately, pasting can enforce a continuous texture space regardless of the texture coverage of its component surfaces by embedding the texture coordinates in the domain mapping. In other words, by mapping not only the domain of the feature, but also its texture coordinates, pasting is able to bring independent, fragmented texture realms into a unified and continuous space.
The inherent parenting between the surfaces captured in the paste hierarchy makes it very easy to produce organic, soft-body deformations and special effects that would otherwise be impossible or prohibitively difficult to accomplish.
Unlike traditional structures, which require that all vertices be captured for IK animation, pasting allows animators to capture and animate only the root surface of the hierarchies. This is possible because everything pasted on the root moves and deforms with it as a result of the hierarchical nature of pasting. Furthermore, animating the base or several of the lower layers is akin to operating on a low resolution model during the set up stages, knowing that all the work will be transferred automatically to the high resolution model in the final stage.
The animation of the pasted features is in no way restricted. They can be animated as independent surfaces, with their motion or deformation added to that of their bases. It is thus possible to generate secondary and tertiary animation with both precision and ease.
For example, facial animation can benefit tremendously from the pasting paradigm: start by animating the underlying facial sets - jaw, brow, cheeks - and watch how the pasted features behave. If they need to be more expressive or must act in peculiar ways, animate them too. The great advantage is that most of the work is taken care of by the base animation, so features might require only minor touch-ups.
As long as the feature boundaries are not explicitly displaced, the detail will remain glued to the underlying surfaces.
Pasting is more than a surface refinement instrument for modeling. It provides the ability to render a multi-resolution surface selectively, layer by layer. Pasting simplifies the animation process by allowing you to focus on the behavior of the base surface since all the pasted features deform with it. Also, base surfaces can act as sliding paths for pasted clusters whose shape and motion are determined by the underlying topology, generating organic effects.
Pasting can be taken further by operating not only on the shape of surfaces, but on their visual attributes as well, such as texture, color, and transparency.
Paste uses the isoparametric structure of the surfaces to determine how they fit together. In order to get as even a structure as possible it is a good idea to place a Basis sop, with Parametrization set to Chord Length, just before the Paste on the feature surface input.
Use the Belt Width and Divisions values in the Paste op to fine tune the seam if necessary. The Belt settings can be used to increase the number of isoparms in the seam region and can give a better result.
When using the parametric method of pasting, it’s usually best to make the featured surface close in size and proportions to its dimensions after pasting.
If you're going to be animating the surface that you paste onto another surface (like lips or eyelids), put them as close to the bottom of the sop chain as possible. Pasted stuff that won’t animate, like ears and nose, should be higher up. That way, you minimize cooking of Paste sops, which is slow.
Another General Rule
Your underlying mesh needs to be dense enough so that you can distort parts of it without other parts going along for the ride. For example, a nose changes volume because there are too few points around the nose in the underlying surface. As points are pulled, the nose goes along for the ride.
Use a Basis op before pasting a surface.
Set the parameterization to Chord Length or Uniform.
Belt Width Considerations
The belts increase the number of isoparms around the edge of the pasted surface. If the belt width is zero, the number of belt divisions doesn’t matter. One solution is to put an if statement in the Belt Width fields that says:
if($REZ, 0.1, 0)
This means that if my $REZ variable is set to 1, then you get a belt that’s 0.1 in width. Otherwise, the belt is zero. By using this variable for all Paste sops, you can turn the belts on and off with one change. The belts slow down playback when animating (as there’s more detail in each paste). This is one way of trying to speed things up a bit.