User Tools

Site Tools


Differences

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

Link to this comparison view

branch_generator [2018/11/28 17:13]
branch_generator [2021/04/27 09:19] (current)
Line 1: Line 1:
 +====== Branch Generator ======
 +{{:branch.jpg?100 |}}
 +
 +The Branch generator creates 3D branch geometry.  It is used for trunks, boughs, branches, twigs, roots, etc.  The following sections detail each of the Branch generator's properties.
 +
 +===== 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.
 +
 +== Allow Forces ==
 +When enabled, all forces that are checked will act on the generator.
 +
 +== Forces ==
 +Each [[kcforces|force]] in the scene has an entry here.  Check the box next to the name to enable the force for this generator.  The value set here is multiplied by the strength of the force before being applied to the branch.  The profile curve controls how much force is applied along the branch.
 +
 +>**Note:** Click on the force name to edit the force's properties.
 +
 +===== Hand Drawn =====
 +
 +==Convert to hand drawn==
 +Pressing this button will convert a procedural branch into a hand-drawn branch. During the process, some properties, such as "Allow forces," are disabled to provide a more seamless conversion. 
 +
 +>**Note:** Converting to hand-drawn may result in a slightly different branch.
 +
 +===== 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 ==
 +Sets the exact number of points in the high-resolution spine that is computed as the frame of the branch. 
 +
 +>**Note:** Changing accuracy may drastically affect the shape of your spines. Set this value to the maximum desired fidelity early to avoid design losses. Higher values result in slower computes.
 +
 +==== Length ====
 +Sets the number of segments used along the length of the branch.  The final number of segments is the sum of the "Absolute" and "+ Relative" values.
 +
 +== Absolute ==
 +Sets the minimum number of length segments used.  Each branch will have at least this many segments, regardless of length (use this sparingly or for specific uses like the trunk).
 +
 +== + Relative ==
 +The number of segments is computed based on the branch length and this value.  This number is added to the "Absolute" segments for the final number of length segments used.
 +
 +== Weld Scalar ==
 +Adjusts the number of segments composing the fused part of welded branches.
 +
 +== Optimization ==
 +Segments are removed adaptively based on the curvature of the branch. Increasing this value increases the angle that must be met for a length segment to survive the optimization. 
 +
 +==== Radial ====
 +Sets the number of segments composing the radial cross-section of branches.  The final number of segments is the sum of the "Absolute" and "+ Relative" values.
 +
 +== Absolute ==
 +Sets the minimum number of radial segments used.  Each branch will have at least this many segments, regardless of radius (use this sparingly or for specific uses like the trunk).
 +
 +== + Relative ==
 +The number of segments is computed based on the branch radius and this value.  This number is added to the "Absolute" segments for the final number of radial segments used.
 +
 +==== Resolution ====
 +
 +== Length ==
 +Scales the number of length segments for each [[kcresolution|Resolution]]. 
 +
 +== Radial ==
 +Scales the number of radial segments for each [[kcresolution|Resolution]]. 
 +
 +>**Note:** Resolution curves are applicable only to the VFX line of SpeedTree products.
 +
 +===== Spine =====
 +The properties in this group control the shape of the branch.
 +
 +==== Length ====
 +These properties set the length of the branch. 
 +
 +== Absolute ==
 +Sets the minimum length of the branch.
 +
 +== + % of parent ==
 +A length equal to this value multiplied by the length of the parent is added to the "Absolute" value above to set the length of the branch.
 +
 +== + % of radius ==
 +A length equal to this value multiplied by the radius of this branch is added to the "Absolute" and "+ % of parent" values above to set the length of the branch.
 +
 +>**Note:** Favor "+ % of parent" and "+ % of radius" wherever possible.  Doing so makes randomization more effective and allows for easier reuse of generators within and between models.
 +
 +== Match one V tile ==
 +Sets the length to exactly match the length of one V tile based on the material's aspect ratio and the branch's radius.
 +
 +>**Hint:** Use this when you need the material to exactly line up with the end of the branch, for example, when using an extension as a bridge to blend from a base trunk map to a new map for the tip of the trunk.
 +
 +== Stop Shape Control ==
 +When enabled and [[toolshapecontrol|Shape Control]] is being used, this property stops Shape Control from being computed on this Generator (and its descendants, unless a new shape is started).
 +
 +==== Orientation ====
 +The properties in this group control the initial orientation of the branch.
 +
 +== 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 opposite the parent's direction, and 0.5 is perpendicular to the parent. 
 +
 +== Alignment ==
 +Computes an interpolation between a random "up" direction and absolute (world) "up." This property rotates the branch in an attempt to make the "top" of each branch point up as much as possible.  Use this to make fronds parallel to the ground.
 +
 +== Roll ==
 +Uniform rotation of each branch. Roll is applied after Alignment.
 +
 +== Unify ==
 +Forces branch nodes on opposite sides of their parent to be oriented in the same direction.  Rotation adjustments like "Roll" and "Frond Roll" keep opposite nodes synchronized when this option is enabled.  This option is especially useful when modeling long, narrow fronds on a stem (e.g., ferns). 
 +
 +== Weld start ==
 +Enable this option when using "Spine only" branches to make the branch start on the surface of the parent's skin rather than on its spine.  This option is useful for making sure fronds touch, but do not cut into, the parent stem.
 +
 +==== Shape ====
 +The properties in this group (along with [[kcforces|Forces]]) control the shape of the branch as it grows.
 +
 +== Gravity ==
 +Positive values pull branches down, negative values push branches up (in world space).  Gravity is equivalent to a downward pointing direction force.
 +
 +== Ancestor ==
 +Positive values cause the branch to grow in the direction of its parent.  Negative values push it away.
 +
 +For example, if "Ancestor" is set to a positive value, then all the branches created by this Generator will grow towards the direction of the parent spine, like a bud. If set to a negative value, then all the spines will grow away from the spine, basically unraveling. 
 +
 +== Straightness ==
 +Sets the amount of straightness or noise removal applied to the branch after "Noise" has been computed. However, this property is applied full force at the base of the branch and gradually reduces the force towards the tip of the spine to none.
 +
 +== Twist ==
 +Twists the branch along its central axis.
 +
 +==== Prune ====
 +The properties in this group remove branches based on their orientation.
 +
 +== Interior ==
 +Removes branches that grow toward the interior of the model.
 +
 +== Up ==
 +Removes branches that point up.
 +
 +== Down ==
 +Removes branches that point down.
 +
 +== General ==
 +Removes branches at random.
 +
 +== Ground ==
 +Removes any branch that intersects the ground plane.
 +
 +==== Path ====
 +The properties in this group allow you to trace out a deformation path for the spine.
 +
 +== Amount==
 +Use this property to control the amount and shape of the deformation.  The value sets the amount and the profile curve sets the shape.
 +
 +== Twist ==
 +This property twists the deformation along the spine as it is applied.
 +
 +== Length ==
 +The length over which exactly one tile of the deformation shape is applied.  If this length is shorter than the branch, the deformation will tile.
 +
 +== Offset ==
 +Use this property to shift where the deformation is applied. You can use variance on this property to apply the same deformation shape to many branches without an obvious repeating pattern.
 +
 +==== Noise ====
 +Sets the amount of randomness applied to each angle along the spine length. Noise adds bends and deformation to the branch spine. The difference in Early and Late Noise is based on when the noise is factored in the computation.
 +
 +=== Early ===
 +Early noise is computed while the spine is being shaped. It is important to note that with early noise, randomization may result in wildly different shapes.  Early noise cause more chaotic shapes than late noise.
 +
 +== Amount ==
 +Controls the intensity/strength of noise applied to the spine.
 +
 +== Turbulence ==
 +Controls how chaotic the wave that creates the noise is on the spine.
 +
 +== Threshold ==
 +Controls the point on the spine that needs to be exceeded for the noise to come into effect.
 +
 +>**Note:** Altering the profile curves affects where the noise starts and ends.
 +
 +=== Late ===
 +Late noise is computed after the spine is shaped.
 +
 +== Amount ==
 +Controls the intensity/strength of noise applied to the spine.
 +
 +== Turbulence ==
 +Controls how chaotic the wave that creates the noise is on the spine.
 +
 +== Smooth ==
 +Straightens the noise that was applied to the spine. Setting the value to 1.0 will completely straighten the branch spine.
 +
 +>**Note:** Late noise is the best way to add an organic look to your model while keeping it under control.
 +
 +== Seed ==
 +This seed is used to control the noise pattern.  Change this value to change the noise without randomizing any other part of the model.
 +
 +==== Break ====
 +The properties in this group control if, where, and how often branches will break.
 +
 +== Chance ==
 +Sets the likelihood that any node will “break,” resulting in an open branch at the break spot. [[cap_generator|Cap]] generators can be added as children to close off the break.
 +
 +== Spot ==
 +The percentage of the way along any spine where the branch will “break.”
 +
 +== Seed ==
 +Change this value to recompute where breaks happen.
 +
 +===== Shape Control =====
 +The properties in this group implement the [[toolshapecontrol|Shape Control]] technique.
 +
 +== Style ==
 +Determines the method used for controlling the shape of this generator's descendants, from the following options:
 +
 +^None | Choosing none will keep the Shape Control Properties grayed out. No changes will occur to the model. |
 +^Sphere | Branches are constrained to a circular shape. |
 +^Mesh | Branches are constrained to the mesh that is imported. |
 +
 +== Position ==
 +Determines placement of the spheres along the spine. A value of 0.0 is at the base of the spine, and a value of 1.0 is at the tip of the spine. Going over the value of 1.0 pushes the sphere placement off the spine.
 +
 +==Distribution style==
 +Selects what type of generators influence the length of branches under shape control from the following options:
 +
 +^Branches only | Only branch generators factor into the shape control algorithm. |
 +^All descendants | Every generator that is a descendant of the generator initiating shape control influence the length of branches under shape control. |
 +
 +== Distribution ==
 +Distribution lets you push and pull the relative lengths from one end of the sphere to the other. For example, sliding distribution to the right will create longer lengths in the first set of branches and shorter ones in the last set.
 +
 +=== Size ===
 +
 +== Absolute ==
 +The exact size of the spheres used for "Shape Control".
 +
 +== + % of Size ==
 +Using the amount set, this property re-computes the size of the spheres based on the length of the spine, so a spine that is longer will have a larger sphere.
 +
 +>**Note:** You can see how these properties affect the model by enabling "Show->Hints" in the Tree Window toolbar.
 +
 +===== Skin =====
 +The properties in this group control how the mesh around the spine is generated.
 +
 +== Type ==
 +This property sets the style of the skin from the following options:
 +
 +^Polygons | The branch is composed of the triangles or quads. No hole is cut into the parent.|
 +^SubD Surface (Rectangular Attachments) | A rectangular hole is cut into the parent and the branch is treated as part of a subdivision surface cage. |
 +^SubD Surface (Arbitrary Attachments) | Arbitrarily cuts out a hole in the parent, taking only the quads it needs, and the branch is treated as part of a subdivision surface cage.|
 +^Spine Only|No mesh is applied to the spine.  Use this option to provide the stems for fronds.|
 +
 +==Visibility==
 +Branches with Visibility values greater than 0.5 have geometry.  Those with less than 0.5 do not.  Use this property to judiciously hide branches to save on polygonal complexity.
 +
 +==== Radius ====
 +These properties control the radius of the extruded branch skin. 
 +
 +== Absolute ==
 +Sets the minimum value of the radius.
 +
 +== + % of Parent ==
 +Radial size is determined based on a percentage of their parent's radial size at the point where the branch is attached.  This value is added to the "Absolute" radius above to set the final radius value.
 +
 +== Clamp to Parent ==
 +When enabled, the child radius cannot exceed the radius of the parent.
 +
 +== Length Compensation ==
 +Occasionally, branches thin out to a point at the tip of the spine too fast. This feature allows you to compensate by making the radius at the tip of the spine larger.
 +
 +== Length Kill Ratio ==
 +Removes any branches where the length of the branch divided by its radius exceeds this value.  Use this to automatically eliminate impossibly thin branches.
 +
 +>**Note:** A value of 0.0 will disable this feature.
 +
 +== Light Seam Reduction ==
 +Sets the amount to bend the normals toward the spine's direction. 
 +
 +>**Note:** Normal bending increases exponentially near the base of the branch since light seams occur where branches intersect.
 +
 +== Roll ==
 +Rotates the skin of the branch around the center spine without changing the underlying shape. 
 +
 +== Smooth ==
 +Vertices around curves and bends are pushed out in order to smooth the area.
 +
 +==== Welding ====
 +Controls the junction between branches and their parents.
 +
 +== Enabled ==
 +When checked, branches will be pushed out and fused to their parent, creating a seamless union between the two. 
 +
 +==Keep failed==
 +When checked, branches that failed to weld are still computed.  Use this to help find and correct failed welds in critical regions (failed welds in fine detail areas are often okay).
 +
 +==Force ray casts==
 +When checked, welding uses ray casts to attach to the parent rather than internal procedural data.  This often results in more failed welds but can produce better results when welding to heavily deformed parents (e.g., squashed and deformed branches).
 +
 +== Offset ==
 +Controls how far out the branch is pushed off the surface before welding back to the parent.  It's essentially the length of the weld region.
 +
 +===Spread===
 +
 +== Amount ==
 +Controls how much the branch spreads out into the parent in the weld region. 
 +
 +== Upper Scale ==
 +Sets the amount to spread the top weld segments of the child branch on the parent branch, creating a "web" where the branches meet.
 +
 +== Lower Scale ==
 +Sets the amount to spread the bottom weld segments of the child branch on the parent branch, creating a "web" where the branches meet. 
 +
 +=== Blend ===
 +Sets the method used for applying intersection blending.
 +
 +== Texture ==
 +Sets the amount to extend or pull the blended texture region up the child branch, elongating or squashing the texture mapping. 
 +
 +== Contrast ==
 +Controls the contrast or harshness of the blended textures on the weld (between the parent and child).
 +
 +== Noise ==
 +Sets the amount of the noise (wave frequency) set to encircle the branch radius between the two blended textures so there is not a uniform blend line.
 +
 +== Lighting ==
 +Alters the Normal alignment of the branch skin in the weld region.
 +
 +> **Note:** A curve set to 'Min' means that the normals are rotated to follow the direction of the spine. A curve set to 'Max' means all the normals are rotated to point out based on its position on the spine.
 +
 +==== Subdivision ====
 +
 +== Relax Scale ==
 +Averages out the vertices at the junction in order to remove artifacts.
 +
 +== Smooth ==
 +Controls how far away the child's ring is from the parent. The closer the child's ring is to the parent, the harsher the intersection is. The further out the child's ring is, the smoother the intersection is.
 +
 +== Texture Density ==
 +Determines the denseness of the texture applied around the intersections. 
 +
 +==== Squash ====
 +
 +== Amount ==
 +Reduces the scale of one side of the branch radius in order to get a flatter shape.
 +
 +== Rotate ==
 +Rotates where the flattened area is located on the branch.
 +
 +==== Splits ====
 +It is possible to [[atsplits|split]] the trunk into two open ends ready for extension branches.  These properties control the likelihood and nature of branch splits.
 +
 +== Chance ==
 +Sets the likelihood that the extended parent will split, or divide, into two branches.  A value of 0.0 means there will be no chance of splitting, a value of 1.0 means it will split if it can.
 +
 +>**Note:** There must be at least two U texture tiles in order for a split to happen.
 +
 +== Spread 1 ==
 +Controls the angle of one of the split branches away from the center of the tree.
 +
 +== Spread 2 ==
 +Controls the angle of one of the split branches away from the center of the tree.
 +
 +== Balance ==
 +Controls the balance of the radius size between the two split branches.  At 0.5 both spines will be the same radius.
 +
 +== Seed ==
 +Controls the random values used to create the splits.
 +
 +=== Smooth ===
 +
 +== Inner ==
 +Controls the smoothness of the inner crease between the split spines. A value of 0.0 means no smoothness and a value of 1.0 gets rid of the crease.
 +
 +== Outer ==
 +Controls the smoothness of the outer bend of the parent spine and child spines where the split occurs. 
 +
 +===== UV Mapping =====
 +The properties in this group control the UV coordinate generation.
 +
 +== Style ==
 +Sets the method by which UVs are computed from the following options:
 +
 +^Unrestricted | No locks. Unlimited tiling for both U and V. |
 +^U locked [0,1], V unrestricted | Forces all U coordinates to be in the range [0.0, 1.0], but allows unlimited V tiling. |
 +^U and V locked [0,1] | Locks both U and V texture map to the range [0.0, 1.0]. |
 + 
 +==== U ====
 +U coordinates circle the branch.
 +
 +== Absolute ==
 +Sets the minimum number of times the material tiles around the branch.
 +
 +== + Relative ==
 +The number of additional tiles based on the branch radius and this number are added to the "Absolute" value above to set the final number of times the material wraps in U.  This value is always at least one and is always an integer.
 +
 +== Offset ==
 +U values are shifted by this amount.
 +
 +>**Note:** Use variance on this property to make branches each have a random orientation to the U wrapping.
 +
 +=== Fractional ===
 +U tiling values are forced to the nearest integer value during normal texture coordinate computation to facilitate seamless tiling; however, this is not always desirable.  For instance, if you need to target a branch component in a custom atlas you'll need to use fractional values in combination with U offset to focus on a section of the atlas.
 +
 +== Enable ==
 +Toggles whether or not fractional U values are allowed.  If they are, only the "Value" property in this group affects the U coordinate.
 +
 +== Value ==
 +This property directly sets the U tiling value and is not restricted to integers.  "Absolute" and "+ relative" are ignored.
 +
 +=== Twist ===
 +== Amount ==
 +Sets the number of full revolutions to twist the material per V tile. 
 +
 +== Random Flip ==
 +Randomly flips the texture twist direction. 
 +
 +==== V ====
 +V coordinates run along the branch.
 +
 +== Style ==
 +This property selects the method used to compute V coordinates from the following options:
 +
 +^Absolute | V tiling is set explicitly.|
 +^Relative (Keep Aspect Ratio) | V tiling is computed based on the U tiling and branch radius in such a way that the aspect ratio of the applied material is maintained.|
 +^Relative | V tiling is computed based on the length of the branch.|
 +
 +== Anchor ==
 +This property selects which end of the branch the V coordinates are computed from.
 +
 +^Start | V coordinates are computed from the start towards the end. |
 +^End | V coordinates are computed from the end towards the start. |
 +
 +== Scale ==
 +Controls the amount of V tiling.
 +
 +== Offset ==
 +V values are shifted by this amount.
 +
 +>**Note:** Use variance on this property to make branches each have a random start point for the V coordinates.
 +
 +== Override V Coords for Extensions ==
 +Branch extensions typically continue their parent's V coordinates.  Enable this option to allow you to set them explicitly instead.
 +
 +>**Note:** A common use for this option is using a trunk and two extensions to create a material transition.  Create a base trunk with V coordinates anchored at the end, then add an extension with this option enabled.  Put a bridge material on this extension knowing that it will always match exactly with the base trunk's V coordinates.  Add another extension to complete the transition.
 +
 +===== Materials =====
 +The properties in this group control the material assignments.
 +
 +==== Branch ====
 +Applies a material to the branches in this generator. Use the button controls to add [+] or remove [-] materials per geometry type.
 +
 +== Material ==
 +Specify a named material from the [[kcmaterialsassetsbar|Materials Bar]], a named set from the [[toolmaterialsassetsbar|Material Sets Bar]], or use "Inherited" to pick up the material from the parent.
 +
 +== Weight ==
 +Sets the probability that a node will receive this material index (this weight ÷ the sum of all weights).
 +
 +>**Note:** Using multiple branch maps will require additional draw calls in real-time use.
 +
 +==== Extensions ====
 +Applies a material to the branch extensions in this generator. Use the button controls to add [+] or remove [-] materials per geometry type.
 +
 +>**Note:** Empty material slots default to "Inherited."  This setting is typically fine for extensions.
 +
 +== Material ==
 +Specify a named material from the [[kcmaterialsassetsbar|Materials Bar]], a named set from the [[toolmaterialsassetsbar|Material Sets Bar]], or use "Inherited" to pick up the material from the parent.
 +
 +== Weight ==
 +Sets the probability that a node will receive this material index (this weight ÷ the sum of all weights).
 +
 +===== Displacement =====
 +The properties in this group move the vertices of the branch mesh to simulate a rough surface.
 +
 +>**Note:** The more vertices you have in the branch the better displacement will look.
 +
 +== Amount ==
 +Sets the maximum amount any of the vertices will move.  Vertices always move out or in along the surface normal. 
 +
 +== Sharpness ==
 +This curve sets the displacement amount for any given displacement value.  For example, for a given vertex, let's say the algorithm decides it needs to be displaced by 0.25 of the maximum value.  Before that 0.25 is applied, it is used to look up a new value from this curve.  So, a linear growth curve will leave the value unmodified; however, other curve shapes will allow you to have different regions of displacement to have more or less effect on the model.  An exponential growth curve will cause sharp displacement because only the high values have a significant effect.
 +
 +== Source ==
 +Selects the source of data for the displacement from the following options:
 +
 +^ Noise | Uses noise for displacement. |
 +^ Displacement Asset| Uses a named [[tooldisplacementsbar|displacement]] asset as the displacement source. |
 +
 +== U Scale ==
 +Scales the noise pattern around the model. 
 +
 +== V Scale ==
 +Scales the noise pattern along the model.
 +
 +== Seed ==
 +When using "Noise" as the source, change this property to vary the pattern.
 +
 +==== Fine ====
 +Fine displacement is a second displacement pattern that is always noise based.
 +
 +== Amount ==
 +Sets the maximum amount any of the vertices will move.  Vertices always move out or in along the surface normal.  This movement will be on top of any other displacement.
 +
 +== Sharpness ==
 +This curve sets the displacement amount for any given displacement value.  For example, for a given vertex, let's say the algorithm decides it needs to be displaced by 0.25 of the maximum value.  Before that 0.25 is applied, it is used to look up a new value from this curve.  So, a linear growth curve will leave the value unmodified; however, other curve shapes will allow you to have different regions of displacement to have more or less effect on the model.  An exponential growth curve will cause sharp displacement because only the high values have a significant effect.
 +
 +== Fine Scale ==
 +Sets the size of the noise. Values greater than one will push the displacement outwards and less than one will bring the displacement in towards the center of the branch. 
 +
 +==== Shape ====
 +This property adds length creases, following the direction of the spine, to break up the branch radius. It's useful for adding detail into the branch without having to import a displacement map.
 +
 +== Amount ==
 +Sets the strength of displacement that creates the creases.
 +
 +== Twist ==
 +Sets the amount of rotation of the spine that is applied to the shape displacement. The rotation begins from the base.
 +
 +== Scale ==
 +Scales the noise pattern.
 +
 +==== Flares ====
 +Flares are a special type of displacement designed to simulate the bottom of a trunk as it expands into the underground root system.
 +
 +== Radius ==
 +Sets the maximum amount of any flare displacement (expressed as a multiple of the branch radius). 
 +
 +== Noise Scale ==
 +Flares are computed based on a noise pattern.  Use this value to scale the pattern. 
 +
 +== Height ==
 +Sets the distance the flare extends up the spine of each branch. 
 +
 +== Pinch ==
 +Set the amount the flares should be pulled in towards the center spine. A value of 1.0 means that there is no spread in the base of the flares.
 +
 +== Angle ==
 +Rotates the flares of the branch around the center spine.
 +
 +== Seed ==
 +Change this property to vary the flare noise pattern.
 +
 +===== Dynamic LOD =====
 +The [[kclod|Dynamic LOD System]] automatically creates multiple levels of detail for a model.  The purpose is to allow the model to degrade in detail in real-time applications.  This should not be confused with [[kcresolution|Resolution]], which is designed to set the polygonal resolution of a model exported for VFX use.
 +
 +== Weight ==
 +This value influences how likely nodes in this generator will be kept during [[kclod|LOD]] computations. The generator with the higher value will have priority over the other generators of the same type. 
 +
 +== Optimization ==
 +Increases the length segment optimization property for each successive [[kclod|LOD]] state.  Use this to dynamically reduce length segments based on curvature.
 +
 +== Length Segments ==
 +Scales back the amount of length segments for each successive [[kclod|LOD]]. 
 +
 +== Radial Segments ==
 +Scales back the amount of radial segments for each successive [[kclod|LOD]]. 
 +
 +===== Wind =====
 +The properties in this group control the wind behavior of the branch.  How this data is used depends on the chosen wind algorithm (which may be determined automatically by the version you are using).
 +
 +== Apply ==
 +Applies wind at this level. This property can be ignored if the available wind levels are already taken.  When wind is enabled, the generator icon in the [[generation_editor_window|Generation Editor]] will show the wind level ultimately assigned to this generator based on the hierarchy.
 +
 +== Weight ==
 +The strength of the wind effect on this set of nodes. This value is a multiplier of the motion values set for the corresponding level on the [[Fan|Fan]].
 +
 +>**Note:** The left-hand side of the profile curve must be zero to avoid branch disconnections.
 +
 +== Offset ==
 +In multi-level wind algorithms, this value will cause the assigned wind level to increase by this amount.  This feature is useful in situations like assigning twigs to trunks.  This happens frequently in nature, and you'll want to make sure the twigs animate like other twigs farther down the hierarchy.
 +
 +===== Season =====
 +The properties in this group provide the mechanism by which assigned materials can change with the [[kcseasons|Seasons]] slider.
 +
 +>**Note:** Although season changes on branches aren't usually that noticeable, you can use this mechanism to switch to burnt barks, barks with or without lichen, or any other variation you'd like to be housed in the same model.
 +
 +== Start Offset ==
 +Determines when the branch will start to transition. The default value of 0.0 means it will start immediately (higher values delay the start, lower values make it start sooner).
 +
 +== Time Scale ==
 +Controls how long it will take to complete its transition. The default value of 1.0 means one year. 
 +
 +== Descendant Offset ==
 +Applies an offset, based on the value entered, to the spines. So if a value of '0.2' is set, then the nodes along with its children will be offset by that amount. 
 +
 +>**Hint:** Use this to get some of the branches earlier or further along the season transition. This way there is some variance in the timing of the season transition.
 +
 +===== Growth =====
 +The properties in this group control how the model behaves during animated growth.  In general, you create the model in the fully grown state and use these properties to control how it gets there.
 +
 +== Speed Scale ==
 +The speed at which a branch will grow is set on the [[tooltimeline|Timeline Bar]]. Use this property to scale that value. The profile curve scales the speed relative to the branch's total growth time. For example, ease in and out of the growth animation by using an "S-curve."
 +
 +== Radius ==
 +This profile curve scales the speed at which the radius of the branch increases. For example, a linear growth curve will cause the radius to grow linearly from the beginning to the end of the branch's growth cycle. 
 +
 +== Smoothing ==
 +Branches can be oriented either based on the current state of their parent (0.0 smoothing), the final state of their parent (1.0 smoothing), or anywhere in between. Increase this value to prevent wild branch motion during growth. This is especially useful for branches growing off of a twisted or gnarled parent. 
 +
 +== Unfurl ==
 +This property causes the "Start angle" to animate from being in line with the parent to its final orientation during the growth animation.  Use this property to make branches (and fronds growing off of them) appear to "open up" as the animation proceeds.
 +
 +==Allow extension control==
 +Check this box to have growth timing apply to extensions as well as regular branches.  With the box unchecked, extension grow exactly in time with their parent.
 +
 +==== Timing ====
 +== Style ==
 +Sets the conditions under which the branch will start growing. The Start % property works according to the option selected here. Options include:
 +
 +^In Place | The branch will start growing exactly when the parent is long enough to reach its starting point in the fully grown model. "Start %" has no effect. This style makes the animation appear to trace out the model as in the vines growing over rocks example. |
 +^Parent | The growth of this branch will be based on the growth of the parent. A Start % of 0.0 means start when the parent starts, 1.0 means start when the parent ends. |
 +^Parent's Start and End | The growth of this branch will start and stop in perfect synchronization with its parent. Start % has no effect. This option is good for features like roots. |
 +
 +== Start % ==
 +Causes branches to start early (0.0) or late (1.0) according to the "Style" property as described above.
 +
 +== Offset ==
 +The start frame is shifted by a constant number of frames (negative means earlier, positive means later). This value is best used to “jumble up” start times of neighboring branches. 
 +
 +>**Note:** It is almost never a good idea to go negative with this value (branches can't grow earlier than the structure will allow). A good practice is to have a value of something like 10 and a variance of 10 as well. That way the earliest any branch will start is when it was supposed to, but some will be delayed.
 +
 +====Noise====
 +The properties in these groups add noise to the growth animation to provide a more organic effect.
 +
 +===Wobble===
 +==Amount==
 +Controls how much noise is applied when bringing the orientation into its final position.
 +
 +>**Note:** The final value for the profile curve must be 0.0 in order for the model to exactly match its correct final position.
 +
 +==Frequency==
 +Increases or decreases the frequency of the noise pattern used for orientation.
 +
 +===Speed===
 +==Amount==
 +Controls how much noise is applied to the speed at which the branch reaches its final position.
 +
 +>**Note:** The final value for the profile curve must be 0.0 in order for the model to exactly match its correct final position.
 +
 +==Frequency==
 +Increases or decreases the frequency of the noise pattern used for speed.
 +
 +==Seed==
 +Change this value to vary the noise pattern.
 +
 +==== Mapping ====
 +
 +== Animate Texture ==
 +When enabled, the V texture coordinates move with the branch in the growth direction (think of a trunk that appears to be pulled out of the ground). When disabled, the texture appears to be revealed as it grows (the V coordinates are constant). 
 +
 +== Animate Displacement ==
 +When enabled, texture based displacement moves with the texture map. When disabled, displacement is computed as it would be in the final model. Because displacement is continuous and only sampled at length segments, some artifacts may occur during the animation. Zeroing out displacement will eliminate these artifacts altogether. 
 +
 +===== Physics =====
 +The properties in this group are used to control attributes of the model used for physics simulation or character rigging in third-party applications.
 +
 +== Bone Style ==
 +Sets how bones are computed from the following options:
 +
 +^Absolute | The number of bones is explicitly set per-node. |
 +^Relative | The number of bones is based on the length of the spine. |
 +
 +== Bones ==
 +Sets the number of bones generated along the length of spines based on the "Style" property above.
 +
 +>**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.
 +
 +== Radial Scalar ==
 +Scales the radius of the bones. 
 +
 +== Length Scalar ==
 +Scales the length of the bones. 
 +
 +== Density ==
 +Affects the weight and stiffness of branch geometry in physics calculations. 
 +
 +== Breakable Chance ==
 +Sets the probability that the bones will break.
 +
 +===== Lightmap =====
 +Lightmap UVs are computed for several versions of the Modeler designed for use with game engines.  Lightmap UVs are a UV set where no objects overlap and all of them fit in a single space where U and V fit in the range [0.0, 1.0].
 +
 +== Weight ==
 +
 +This value influences how much space in the lightmap branches made by this generator can have.  
 +
 +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 Weight value is considered along with the geometry area and texture area of the object. 
 +
 +In addition, every object's lightmap weight is compared to every other object and then the lightmap packing is determined.  This means 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.