User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

stitch_generator [2018/10/15 16:23]
stitch_generator [2021/04/27 09:19] (current)
Line 1: Line 1:
 +======Stitch Generator======
 +>**Note:** This generator is a beta feature in v8.2.0 and is only available in Cinema and Games editions of the Modeler. The documentation of this feature is a work in progress.
  
 +The Stitch generator is used to connect two nodes together.  The most common use is to blend a photogrammetry based mesh into a procedural branch from which the remainder of the model is constructed.
 +
 +>**Note:** Unlike many other generators, Stitch generators are meant to be placed by hand.  A single generator may create multiple stitches, but each one must be positioned with a gizmo in node editing mode.
 +
 +===== Generation =====
 +The Generation properties are described in full detail under 
 +[[generation_properties|Generation Properties]].
 +
 +===== Settings =====
 +Stitches connect their parent node and their first (and only their first) child node.  Use the following property to control the manner in which the Stitch operates.
 +
 +==Style==
 +Choose the style of the stitch from one of the following options:
 +^Extend (blend geometry)|parent is molded over the child node and the seam is hidden by setting vertex transparency.|
 +^Extend (blend texture)|parent overlaps the child and a band with a generated set of blend textures is used to join them.|
 +^Cut|the stitch cuts off portions of the parent (no connection is made).|
 +^Disabled|the stitch becomes inert but can still be positioned.|
 +
 +===== Blend Region =====
 +The properties in this section control how the parent geometry is shaped around and blended with the child geometry.
 +
 +== Show ==
 +Controls whether or not the blend region is rendered in the Tree Window.
 +
 +== Height ==
 +This value sets the height of the blend region relative to the radius of the stitch.  The top of the stitch region should be below the edge of the parent mesh.  The stitch consumes the parent mesh beyond the stitch location and uses that for the blend.
 +
 +>**Note:** Taller stitches often make better blends, but they require more of the parent mesh be consumed.
 +
 +== Clearance ==
 +This value increases the radius around which parent geometry is consumed for the stitch.  All of the parent geometry above the stitch and inside the outer limit indicated in the Tree Window is consumed by the stitch.  Increase this value when parts of the parent mesh remain visible near the stitch region.
 +
 +==== Opacity ====
 +The properties in this group control how vertex transparency values are computed inside of the stitch region.  Vertices near the Stitch start should be opaque.  Vertices near the top of the stitch should be transparent.  The result is the parent mesh smoothly fades out as it is laid on top of the child mesh.  The result is a gradual fade from the parent mesh to the child mesh, without any extra geometry or textures.
 +
 +>**Note:** Using this vertex blending method requires your target application support vertex transparency values.
 +
 +== Enable ==
 +Turns vertex transparency value computation on and off.  When disabled, the parent mesh is always opaque.
 +
 +== Fade ==
 +This curve controls how the fade is computed.  A "Linear Decay" curve would cause the opacity to linearly fade from opaque at the bottom of the stitch to transparent at the top.  Change the shape of the curve to control exactly how the geometry fades out.  It is often useful to increase how long opaque values are computed to help hide the junction at the base of the stitch. 
 +
 +=== Noise ===
 +A perfectly smooth blend is often too noticeable to be effective.  Use the properties in this group to jumble up the opacity values using a noise function.  The more mottled approach to the fade out typically results in better blends.
 +
 +>**Note:** Because opacity values are computed per vertex, higher vertex counts in the blend region results in more defined noise patterns and better blends.  Use the geometry options below to increase polygonal complexity in the blend region.
 +
 +== Amount ==
 +This value sets how much the noise value affects the opacity computation.  Set it to 0.0 for a smooth fade.
 +
 +== Scale ==
 +This value controls the density of the noise pattern.  Higher values result in tighter, more varied noise.
 +
 +== Seed ==
 +Vary this value to randomize only the noise pattern of the blend without randomizing any of the other properties.
 +
 +== Contrast ==
 +This curve modifies every computed opacity value.  The computed value is used to look up this curve value and the result becomes the opacity.  A "Linear Growth" curve would represent a one to one match with the computed value.  "S-Curves" increase the contrast, making the noise pattern more effective.
 +
 +==== Geometry ====
 +Vertex blending stitches work by molding the parent mesh around the child mesh and then fading out the vertices.  The properties in this group control how the parent mesh is molded to the child mesh.
 +
 +== Seal ==
 +This value controls how much the parent mesh is formed around the child mesh in a manner similar to vacuum sealing.  The profile curve controls how much any given vertex is sealed based on how far along the stitch it is.  The left side of the curve controls vertex sealing near the base of the stitch.  The right side controls vertices near the top.
 +
 +== Minimum Gap ==
 +This value represents (in terms of the size of the stitch) the minimum space that will be kept between the parent mesh and the child mesh.  Use this value to force a small space between the two meshes to prevent depth conflicts in the final application (should they arise).
 +
 +== Child Shaping ==
 +Just as the parent can be sealed to the child geometry, so too can the child geometry be shaped to the parent.  This value (in terms of stitch size) controls how far up the child node its geometry is molded to the shape of the parent.  Use this value in conjunction with "Seal" to shape the stitch region.
 +
 +== Segments ==
 +More vertices in the stitch region result in better geometry molding and vertex blending.  Add horizontal segments to the stitch region by increasing this value.
 +
 +== Tessellation ==
 +Increasing this value will tessellate the triangles in the stitch region, favoring larger triangles first.  Use this to add even more vertices in the blend region.
 +
 +==== Texture Blend ====
 +When the texture blending style is selected, a set of texture maps is generated that overlays the parent texture on top of the child texture to create a new material to go on the Stitch band.  The properties in this group control how the parent material and child material are blended.
 +
 +>**Note:** Texture blending is a pixel operation.  These properties are applied on a per-pixel basis in the generated maps to produce more convincing blends than can often be made using vertex blending.
 +
 +>**Note:** When the stitch is selected, a preview of generated maps will be visible in the Tree Window.
 +
 +>**Note:** All of the map layers are blended including color, normal, gloss, etc.
 +
 +== Noise scale ==
 +This value controls the tightness of the noise pattern applied to the parent material.
 +
 +== Pinch ==
 +This value controls the range in which the blend happens.  Increase this value to pinch the region toward the center.
 +
 +== Normal map amount ==
 +Increase this value to control how much the normal map of the parent material controls the blend amount.  Use this value to use texture based data to help mask the seam between the two materials.
 +
 +== Normal map sharpness ==
 +This value controls how sharp the normal map contribution is when applied to the blend.
 +
 +== Custom map amount ==
 +If the normal map and noise are not sufficient to create an effective blend, this value utilizes the custom map of the parent material to further break up the materials.
 +
 +== Sharpness ==
 +This value sets the overall sharpness of the edges during the blending process.
 +
 +== Randomize ==
 +Press this button to randomize each of the values in this group to produce a random blend.
 +
 +===== Band Region =====
 +When using the texture blending approach a band of geometry is generated to link the parent mesh to the child mesh.  This band is created by chopping the end off of the parent mesh, the beginning of the child mesh, stitching the geometry together into a band, and then generating a set of textures that use the removed mesh portions to create blended images to map onto the band.  The properties in this section control the band geometry and texture generation.
 +
 +==== Geometry ====
 +The properties in this group control how the band geometry is created.
 +
 +== Segments ==
 +This value sets the number of slices in the band.  Increase this value to give yourself more geometry to help shape the band in the overlap area.
 +
 +== Overlap ==
 +Use this curve to control how the geometry is interpolated.  Vertices at the base of the stitch match the parent exactly.  Those at the top match the child.  Those in between are interpolated according to this curve.
 +
 +== Tessellate ==
 +Increase this value to tessellate triangles in the band region.  This is typically not necessary.
 +
 +=== Pinch V ===
 +The V texture coordinates are computed to exactly match the generated maps; however, this may result in slight errors near the edges of the stitch due to mipmapping and texture repeating.  Use these values to bring in the V coordinates slightly to eliminate these artifacts.
 +
 +== Low ==
 +Increases the low V coordinate value.
 +
 +== High ==
 +Decreases the high V coordinate value.
 +
 +==== Material ====
 +The properties in this group control when textures are generated and applied.  When the material is set to its default value ("Inherited") the Stitch band will render in white and the texture preview will be visible.  In this state, it is possible to generate the set of maps.  When a material is applied, that material will be used on the band and the preview will not be shown, nor can new maps be generated in this state.  So, the procedure for editing a band's material is as follows:
 +
 +1. Position the stitch in a valid location.
 +2. Make sure the band material is the default setting ("Inherited");
 +3. Adjust the band geometry settings.
 +4. Adjust the blend settings.
 +5. Generate the textures.
 +6. Create a material that uses those textures (or reload one that already does).
 +7. Assign the material to the band.
 +8. Repeat the process (especially step 2!) to make edits.
 +
 +== Texture Size ==
 +This value sets the size, in pixels, of the longest dimension (usually width) of the generated textures.  Set this value prior to pressing the "Generate textures" button.
 +
 +== Generate Textures ==
 +When the preview looks correct and the texture size is set, press this button to create a set of maps in a folder you designate.  Use these maps to create a material in the Material Asset Bar.
 +
 +=== Material ===
 +Use the material property in this group to assign the material you created in the previous step.  
 +
 +== Material ==
 +Specifies the material for the band.
 +
 +== Weight ==
 +Not applicable.
 +
 +===== Lightmap =====
 +The property in this group affects the influence stitches in this generator have on the lightmap.
 +
 +>**Note:** Not all versions of the Modeler support lightmap UV computation.
 +
 +==Weight==
 +Use this property to increase or decrease the importance of this generator's geometry in the lightmap -- in relation to the lightmap weight of all other objects -- before lightmap packing is determined.  Note that your Weight value may not be honored exactly or may get so large as to exhibit unexpected results.  Use "Tools->Reset lightmap scalars" to go back to default values for the whole model.