User Tools

Site Tools


Differences

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

Link to this comparison view

subdiv_generator [2018/10/15 16:37]
subdiv_generator [2021/04/27 09:19] (current)
Line 1: Line 1:
 +====== SubDiv Generator ======
 +
 +>**Note:** This generator has been deprecated.  Please [[toolupgrade|upgrade]] these generators to [[branch_generator|Branch]] generators.
 +
 +=====Generation=====
 +The Generation properties are described in full detail under [[generation_properties|Generation Properties]].
 +
 +=====Forces=====
 +The properties in this group control the behavior of [[kcforces|forces]] on this generator.
 +
 +=====Random Seeds=====
 +Properties that have [[toolvariance_editor|variance]] are given random values based on a seed value in this group.  Vary the seeds in this group to randomize only the properties associated with the seed type. 
 +
 +==Randomize All==
 +Randomizes the value for all seeds used to compute this generator.  
 +
 +===== Segments =====
 +
 +==Accuracy==
 +The number of segments in the underlying spine structure.
 +
 +==Length Style==
 +^ Relative | Length segments are computed based on the length of the spine.|
 +^ Absolute | Length segments are set explicitly. |
 +
 +==Length==
 +The number of segments composing spines. 
 +
 +==Radial==
 +The number of segments composing the radial cross-section of branches. 
 +
 +==Cap rings==
 +The number of segments composing the cap geometry of broken or open-ended branches.
 +
 +===== Spine =====
 +
 +==Length Style==
 +The method used to determine spine length – either "Absolute" or "Relative." When set to "Relative," two new options become available: Length % and Limit Length, which factor into determining the final calculated lengths. 
 +
 +==Length %==
 +When Length Style is set to "Relative," this value is used to determine how long the nodes of this generator will be as a percentage of their parent's length. Optionally, a length limit can be enacted, which will limit the maximum length of spines at the value set generically for length. //(percentage)//
 +
 +== Limit Length ==
 +When enabled, relative length spines will be capped at the length value. However, any individual node may be shorter than this value depending on the value set for Length % as well as the actual length of each parent node. //(Boolean)//
 +
 +== Length ==
 +The length of the spine.
 +
 +== Start Angle ==
 +The amount of angle offset from the parent node's growth direction at the point where each node occurs, where 0.0 is equal to the parent's direction, 1.0 is an inversion of the parent's direction, and 0.5 is perpendicular to the parent. 
 +
 +== Roll ==
 +Uniform rotation of each spine. 
 +
 +=====Perturbance=====
 +
 +== Enabled ==
 +Toggles the effect of spine disturbance, jink frequency, and jink amount. 
 +
 +== Disturbance ==
 +The amount of randomness applied to each angle along the spine length. 
 +
 +== Jink Frequency ==
 +The sampling rate of the jink behavior.
 +
 +==Jink Amount==
 +The amount to sample the jink behavior.
 +
 +>**Note:** "Jink frequency" and "Jink amount" work together to make the jink behavior. Either set to 0 nullifies the effect.
 +
 +== Return ==
 +Forces the spine node to return to its original growth path as if none of the perturbance properties were ever applied, even though in reality they are still in effect. 
 +
 +>**Note:** Helpful when trying to recreate a tree with many knots and jinx, while keeping the trunk or branch on its original direction of growth. 
 +
 +== Seed ==
 +Randomizes the values entered for the properties in this group.
 +
 +===== Hand Drawn =====
 +
 +==Toggle Hand Drawn==
 +Pressing this button will convert a procedural branch into a hand-drawn branch and vice versa. During the process, some properties (such as Allow forces and Spine:Perturbance) are disabled or enabled to provide a more seamless conversion.
 +
 +>**Note:** Converting to hand-drawn may result in a slightly different branch. Bifurcations will become disabled and/or the spline may twitch slightly during the resampling.
 +
 +==Control Point Style==
 +Selects the type of control points that are used to form the Bézier spline from the following options. 
 +
 +^ Corner | Control point handles are independently rotated and scaled to best fit the hand drawing |
 +^ Linear | Control point handles are rotated in unison (per control point) but are scaled independently, creating linear tangents. |
 +^Smooth | Control point handles are rotated and scaled in unison, creating symmetrical tangents.|
 +
 +==Curve Fit Scalar==
 +
 +The accuracy of the Bézier spline that is created after hand drawing. Higher values result in the creation of more control points. Once drawn, a spline can be resampled with the "Curve fit scalar" found in the "Resample" group.
 +
 +===== Branch =====
 +
 +==Radius Style==
 +Selects how the radius is computed from the following options:
 +
 +^Absolute | The radius of the branch is determined using real-world units. |
 +^Relative | The radius of the branch is a percentage of its parent node at the point where it was generated.  |
 +
 +== Radius ==
 +The radius of the branch skin.
 +
 +==== Intersection ====
 +
 +== Smooth ==
 +This property controls how far away the child's first ring is from the parent. The closer the child's first ring is to the parent, the harsher the intersection is; the further out the child's ring is, the smoother the intersection is.
 +
 +== Relax Scale ==
 +Averages out the vertices at the conjunction in order to remove artifacts.
 +
 +==Upper Spread==
 +The amount to spread the weld segments towards the end of the parent branch, creating a "web" where the branches meet.
 +
 +==Lower Spread==
 +The amount to spread the weld segments towards the start of the parent branch, creating a "web" where the branches meet.
 +
 +==Texture Pull==
 +The amount to extend the blended texture region along the child branch, elongating or squashing the texture mapping.
 +
 +==Texture Density==
 +Controls how tightly the texture is packed around the intersections. 
 +
 +==== Flares ====
 +
 +== Number ==
 +The number of flares around the branch. 
 +
 +==Balance==
 +An interpolation between equally spaced and randomly positioned flares.
 +
 +==Width==
 +The radial spread of each flare.
 +
 +==Length==
 +The distance out from the initial branch radius that the flares will extend.
 +
 +==Height==
 +The distance the flare extends up the spine of each node.
 +
 +==Pinch==
 +Compresses the flare area for a more compact and denser look without affecting the radius of the area where the vertices intersect.
 +
 +==Twist==
 +Rotates the end of the flares, which is furthest away from the intersection, around the center spine.
 +
 +==Seed==
 +Randomizes the values of the 'Flare' properties.
 +
 +===== Cap =====
 +
 +==Border==
 +Insets the cap from the branch to simulate bark thickness.
 +
 +>**Note:** A cap border greater than 0.0 results in an extra ring of cap segments.
 +
 +==Offset==
 +
 +Extrudes the cap geometry in the direction of the last length segment.
 +
 +>**Note:** Requires a __Cap: Border__ value greater than 0.0.
 +
 +==Lip==
 +The length of the ring edge surrounding the end of a trunk or branch.
 +
 +==Lip Sharpness==
 +The width of the cap's ring edge. Scales from 0 to 1; at 0 the cap has a thin edge and at 1 it has a thick edge.
 +
 +==Angle==
 +The rotation of the texture coordinates around the center of the cap.
 +
 +==Slope==
 +The length to extend one side of the cap, creating a slope.
 +
 +>**Note:** Rotate the slope with "Angle."
 +
 +===== Texture Coordinates =====
 +
 +====Base====
 +
 +==Style==
 +Selects the method used for UV coordinate computation.
 +
 +^Relative | Both U and V tile are computed based on the length and radius of the node. |
 +^U relative | U-tile is computed based on the radius of the node. |
 +^V relative | V-tile is computed based on the length of the node. |
 +^Absolute | Both U-tile and V-tile are set explicitly. |
 +
 +==U Tile==
 +The number of times the material tiles around a branch. 
 +
 +>**Note:** If "Texture Coordinates:Style" is set to relative, this integer becomes a floating point value and the actual value is a function of the radius of individual nodes. The computed U tile value is then rounded to an integer to avoid texture seams.
 +
 +==V Tile==
 +The number of times the material tiles along the length of a branch. 
 +
 +>**Note:** If "Texture Coordinates:Style" is set to relative, this integer becomes a floating point value and the actual value is a function of the length of individual nodes.
 +
 +==U Offset==
 +Shifts the U coordinates.
 +
 +==V Offset==
 +Shifts the V coordinates.
 +
 +==Twist==
 +The number of full revolutions to twist the material per V tile. 
 +
 +==Flip Twist==
 +When this value is not checked, each branch twists in a counter-clockwise direction. When it is checked, each branch twists the same amount in either a clockwise or counter-clockwise direction. 
 +
 +====Detail====
 +The properties in this group are ignored in version 8.0 and later.
 +
 +===== Materials =====
 +Branches and caps can each have multiple materials to be distributed randomly. Use the button controls to add [+] or remove [-] materials per geometry type. 
 +
 +==Material==
 +A named material from the material bank, or set to "inherited."
 +
 +==Weight==
 +The probability that a node will receive this material index (this weight ÷ sum of all weights).
 +
 +==Sync Index==
 +When enabled (and multiple branch, cap, and frond materials are present), the distribution of cap and frond materials is synced to the distribution of branch materials. This ensures that "Branch 1" and "Cap 1" are always assigned together, and so on. 
 +
 +===== Displacement =====
 +
 +====Branch====
 +
 +==Source==
 +Selects the source of the displacement from the following options:
 +
 +^Noise | A generic, scalable noise pattern is used for displacement. |
 +^Use material | The material's height map (located in the normal map's alpha channel) is used for displacement. | 
 +^Named Displacement Texture | A named displacement asset. | 
 +
 +>**Note:**The displacement source is not exported for real-time use; it is used only as a modeling aid.
 +
 +==Mapping==
 +Selects how the displacement is mapped to the branch from the following options:
 +
 +^Use base tex coords | Displacement is mapped on top of the existing Layer: Base coordinates. Tile and offset are applied after obtaining the base coordinates. |
 +^Overwrite base tex coords | Ignore the existing coordinates and map displacement explicitly by the other values in this group. |
 +
 +==Amount==
 +The amount of surface displacement. 
 +
 +==Offset==
 +The amount to offset the depth of the displacement source. Values greater than 1 will push the displacement outwards and less than 1 will bring the displacement in towards the center of the branch. 
 +
 +==U Tile==
 +The number of times displacement is repeated across the U direction of the geometry. 
 +
 +>**Note:** If Displacement: Mapping is set to "Use base tex coords," this value is a multiplier of the base U tile value.
 +
 +==V Tile==
 +The number of times displacement is repeated along the length of the geometry. 
 +
 +>**Note:** If Displacement: Mapping is set to "Use base tex coords," this value is a multiplier of the base V tile value. 
 +
 +==U Offset==
 +Shifts the displacement in the U direction.
 +
 +==V Offset==
 +Shifts the displacement in the V direction.
 +
 +====Cap====
 +
 +==Source==
 +Selects the source of the displacement from the following options:
 +
 +^Noise | A generic, scalable noise pattern is used for displacement. |
 +^Use material | The material's height map (located in the normal map's alpha channel) is used for displacement. | 
 +^Named Displacement Texture | A named displacement asset. | 
 +
 +>**Note:**The displacement source is not exported for real-time use; it is used only as a modeling aid.
 +
 +==Amount==
 +The amount of surface displacement. 
 +
 +==U Offset==
 +Shifts the displacement in the U direction.
 +
 +==V Offset==
 +Shifts the displacement in the V direction.
 +
 +==UV Tile==
 +The number of times displacement is tiled from the center of a cap. 
 +
 +==Angle==
 +Rotation offset for displacement texture.
 +
 +===== Wind =====
 +
 +==Apply==
 +Apply wind at this level. 
 +
 +==Weight==
 +The strength of the wind effect on this set of nodes. 
 +
 +>**Note:** The left-hand side of the profile curve must be zero to avoid branch disconnections.
 +
 +==Rotation==
 +Controls the direction of the vector along which this branch travels during wind oscillation. These values seldom change but can be modified to prevent neighboring branches from oscillating in the same direction (this is usually done in node editing mode). 
 +
 +===== Ambient Occlusion =====
 +The properties in this group are ignored in version 8.0 and later.
 +
 +===== Physics =====
 +
 +==Use Frond Geometry==
 +When enabled, frond geometry is made physical as well. 
 +
 +==Bone Style==
 +Selects how bones are computed from the following options:
 +
 +^Relative | The number of bones is based on the length of the spine. |
 +^Absolute | The number of bones is explicitly set per-node. |
 +
 +==Bones==
 +The number of bones generated along the length of spines.
 +
 +>**Note:** If Bone Style is set to relative, this integer becomes a floating point value and the actual number of bones generated is a function of the length of individual nodes. 
 +
 +==Radius Scalar==
 +The percentage to scale the radius of the bones.
 +
 +==Length Scalar==
 +The percentage to scale the length of the bones.
 +
 +==Density==
 +The weight and stiffness of branch geometry in physics calculations.
 +
 +===== Lightmap =====
 +
 +==Scale==
 +Scales all of the geometry in this object's relevance in the automatically computed lightmap UV set.  Use the distribution curve to control where the lightmap UV density is applied.  The default value packs more at the base than at the tip.  Keep in mind that the scale value is considered along with the geometry area and texture area of the object.  In addition, every object's lightmap scale is compared to every other object and then the lightmap packing is determined.  This means that your scale 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.