<<

TABLE OF FIGURES ...... 18 Lighting ...... 30 To enable voxel ...... 31 TABLE OF TABLES ...... 21 Enabling Wind ...... 31 INTRODUCTION ...... 23 FOR MORE INFORMATION ...... 32 WHAT IS SPEEDTREE? ...... 23 KEY CONCEPTS...... 33 The Modeler ...... 23 MODELING APPROACH ...... 33 The Library ...... 23 Procedural Modeling ...... 33 The SDK ...... 23 How does it know how many boughs to make? ...... 33 WHAT VERSION OF SPEEDTREE SHOULD YOU USE? ...... 23 How does it know to only put roots near the bottom? ..... 33 Real-time Applications and Games ...... 23 Why aren't all the leaves the exact same size? ...... 34 SpeedTree 8 for Lumberyard ...... 23 Can I make branches near the tip of the parent SpeedTree for Games ...... 23 shorter than those near the base? ...... 34 SpeedTree for UE4 ...... 24 Manual Editing ...... 34 SpeedTree for 5 ...... 24 When I select a node, all of the property values are Visual Effects and Architectural Rendering ...... 24 0.0. Why? ...... 34 SpeedTree Cinema ...... 24 Will I lose my edits if I go back and change the SpeedTree Studio ...... 24 generator value? ...... 34 SpeedTree Architect ...... 24 Can I just do everything with node edits? ...... 34 A QUICK WORD ABOUT SPEEDTREE 8 ...... 24 Can I place and draw branches by hand? ...... 34 Your old models will load in SpeedTree 8 ...... 24 GENERATORS VS. NODES ...... 34 There are many new generators ...... 25 Generators ...... 34 Full PBR material workflow ...... 25 Nodes ...... 34 There are three new generation algorithms, and you Editing ...... 35 should almost always use them ...... 25 Generators ...... 36 A single VFX model now contains multiple resolutions ... 25 Generation Editor ...... 36 A single VFX model contains all the season variations Generator Types ...... 36 too...... 26 Main ...... 36 There are many new branch modeling features ...... 26 Decorators...... 37 New mesh editor ...... 26 World Building ...... 37 Animated forces ...... 26 Nodes ...... 37 When to Edit Nodes ...... 37 Length and radius styles are gone ...... 26 How to Edit Nodes ...... 38 New collision system ...... 26 Types of Node Edits...... 38 New LOD system ...... 26 Gizmo ...... 38 New exporting system ...... 26 Delete ...... 38 LICENSING ...... 27 Offsets ...... 38 Trial Licenses ...... 27 Clearing Node Edits ...... 38 Node-Locked Licenses ...... 27 PROPERTIES ...... 39 Floating Licenses ...... 28 Generator Properties ...... 39 Node Properties ...... 39 QUICK START GUIDE ...... 29 Curves ...... 39 BASIC WORKFLOW FOR LUMBERYARD ...... 29 Parent Curves ...... 39 Activating Your Free License ...... 29 Parent ...... 40 To activate your license: ...... 29 Profile Curves...... 42 How Does It Work? ...... 29 Resolution Curves ...... 42 PREPARING YOUR LUMBERYARD SCENE ...... 30 Distribution Curves ...... 43 Pruning Curves ...... 43 Changing Resolution ...... 58 LOD Curves ...... 43 Resolution Curves ...... 58 Editing the highest LOD state with LOD curves ...... 43 Best Practices ...... 59 MESHES ...... 43 HAND DRAWING ...... 60 Mesh Assets ...... 44 How to Hand Draw a Branch ...... 60 Cutouts ...... 44 Editing the Spine of an Existing Hand Drawn Branch ..... 62 Importing Meshes ...... 44 Curve Fit ...... 63 Mesh LOD ...... 44 Control Point Style ...... 63 Collections ...... 44 Converting Procedural Branches to Hand Drawing ...... 63 Using Meshes ...... 44 Working With Hand Drawn Generators in the Leaves/Fronds ...... 44 Generation Editor ...... 63 Mesh Forces ...... 45 New Branches ...... 63 Props ...... 45 Paste Into ...... 64 Zones/Terrains ...... 45 Copying and Pasting Hand Drawn Generators ...... 64 Trunks ...... 45 Resetting a Hand Drawn Generator ...... 64 FORCES ...... 46 Hand Drawn Targets ...... 64 Adding Forces ...... 47 Locking Hand Drawn Sources...... 64 Force Types ...... 47 Best Practices ...... 64 Applying Forces ...... 47 GROWTH ...... 65 Attenuation ...... 47 Growth Wizard ...... 65 Mesh Forces ...... 48 Using the Timeline ...... 65 Adding Mesh Forces ...... 48 Editing Properties ...... 66 Mesh Actions ...... 49 Exporting ...... 66 Including Mesh in Model ...... 49 Examples ...... 66 Containers ...... 49 How To ...... 49 Best Practices ...... 66 . . . Wrap Roots Around a Rock ...... 49 SEASONS ...... 66 . . . Grow Vines Up a Tree ...... 49 Season Slider ...... 67 . . . Prune a Bush ...... 49 Season Properties and Materials ...... 67 . . . Avoid Obstacles ...... 49 Main Season Properties ...... 68 . . . Direct Growth ...... 49 Material Season Curves ...... 68 PHYSICALLY BASED RENDERING ...... 50 Putting It All Together ...... 69 Additional Reading ...... 50 Using Material Sets ...... 70 PBR Materials ...... 50 Leaves on the Ground ...... 70 Maps ...... 50 Best Practices ...... 70 Color ...... 50 Exporting ...... 71 Opacity ...... 51 Normal ...... 51 WIND ...... 72 Gloss ...... 51 VFX WIND ...... 72 Specular ...... 52 Wind Strength and Direction ...... 72 Metallic ...... 53 Subsurface ...... 53 Wind Wizard ...... 72 Ambient Occlusion (AO) ...... 54 Editing Branch Wind ...... 73 Custom ...... 54 Editing Leaf Wind ...... 74 Lighting ...... 54 Editing Frond Wind ...... 74 Directional Lighting ...... 54 Gusting ...... 74 Gizmo ...... 54 Exporting ...... 5 7 Color/Intensity ...... 55 Best Practices ...... 75 Shadows ...... 55 LUMBERYARD WIND ...... 75 Ambient Lighting ...... 55 Vertex Colors ...... 75 Color/Intensity ...... 55 SpeedTree Controls ...... 75 Ambient Occlusion ...... 55 Custom Vertex Colors ...... 76 LEVEL OF DETAIL ...... 56 Wind Properties ...... 76 Previewing LOD ...... 56 Exporting ...... 77 Global Settings ...... 56 Best Practices ...... 77 Leaves ...... 57 Individual Settings ...... 57 EXPORTING TO… ...... 78 Segments ...... 57 EXPORTING MESHES ...... 78 Mesh LOD ...... 58 Formats ...... 78 RESOLUTION ...... 58 Group By ...... 78

Page 2 of 277 Hierarchy ...... 78 Resolution ...... 90 Material ...... 79 Edit ...... 90 Geometry Type ...... 79 Generators/Nodes ...... 90 Include ...... 79 Season ...... 90 Branch seam blending ...... 79 Add ...... 91 Bones/Skeleton (FBX) ...... 79 Visibility ...... 91 Leaf references (FBX, ABC) ...... 80 Post ...... 91 Branch spines (FBX, ABC) ...... 80 AO ...... 91 Transform ...... 80 Collision...... 91 Textures ...... 80 Export ...... 91 Animation ...... 80 Collapse ...... 92 Cache Options ...... 80 Viewports ...... 92 Layout ...... 92 EXPORTING TO GAME FORMATS ...... 80 Isolating a Single Viewport...... 92 LOD ...... 81 Projection Types ...... 92 Include ...... 81 Splitters ...... 92 Variations ...... 81 Sizing the Viewports ...... 92 Seam Blends ...... 81 Tree Window Overlays ...... 92 Atlas ...... 82 Fan ...... 92 V-Wrapping ...... 82 Wind Indicator ...... 92 Separate Materials ...... 82 Strength ...... 92 Transform ...... 83 Gust Strength/Variance ...... 92 Textures ...... 83 Gust Frequency...... 93 Format ...... 83 Light ...... 93 Size ...... 83 LOD Indicator ...... 93 Packing ...... 83 Axis Indicator ...... 93 IMPORTING TO… ...... 84 Navigation ...... 93 Standard ...... 93 IMPORTING TO MAYA ...... 84 Panning ...... 93 Importing ...... 84 Rotating...... 93 Extending the Script ...... 84 Zooming ...... 93 IMPORTING TO 3DS MAX ...... 84 Alternative Control Schemes ...... 94 Importing ...... 84 Trackball ...... 94 Panning ...... 94 Interface ...... 85 Rotating...... 94 Extending the Script ...... 85 Zooming ...... 94 IMPORTING TO HOUDINI ...... 85 Traveler ...... 94 Importing ...... 85 Walking ...... 95 Extending the Script ...... 85 Strafing ...... 95 IMPORTING TO C4D ...... 85 Changing Height ...... 95 Importing ...... 86 Looking Up and Down ...... 95 Extending the Script ...... 86 Window Properties ...... 95 IMPORTING TO LUMBERYARD ...... 86 GENERATOR EDITOR ...... 95 Export ...... 86 Adding Generators ...... 96 Lumberyard ...... 86 Linking Generators ...... 98 Brush ...... 87 Icon Overlays ...... 98 Vegetation ...... 87 Toolbar ...... 99 Bending ...... 87 Add...... 99 Actions ...... 99 USER INTERFACE ...... 88 Randomize ...... 99 TREE WINDOW ...... 88 PROPERTY BAR ...... 100 Toolbar ...... 88 Navigation ...... 100 View ...... 88 Group Menu ...... 100 Render ...... 88 Message Pane ...... 100 Show ...... 89 Editing Properties ...... 100 Zoom ...... 89 Curve Editor ...... 100 Scene ...... 89 Toolbar ...... 101 Forces ...... 89 Curve Window ...... 102 Collision Objects ...... 89 Preset Curve Shapes ...... 103 Wind ...... 90 Standard Curve Presets ...... 103 Light ...... 90 Season Curve Presets ...... 106

Page 3 of 277 Resolution Curve Presets ...... 107 Proxy Collision ...... 117 Variance Editor ...... 108 Scale ...... 117 Trunk "A" ...... 108 Weight ...... 117 Trunk "B" ...... 108 Edit ...... 117 Trunk "C" ...... 108 Cutout Editor ...... 117 Trunk "D" ...... 108 Points ...... 117 Editing Variance ...... 108 Add/Move ...... 117 Variance ...... 109 Remove ...... 117 Distribution ...... 109 Reset ...... 117 Cohesion ...... 109 Pivot Point ...... 118 . Cohesive ...... 109 Masks ...... 118 Best Practices ...... 109 Paint ...... 118 ASSETS ...... 109 Erase ...... 118 Reset ...... 118 Common Asset Settings ...... 109 Anchors ...... 118 ...... 110 Add/Move ...... 118 Materials Bar ...... 110 Remove ...... 118 Managing Material Assets ...... 110 Reset ...... 118 Settings ...... 111 Options ...... 119 Two-Sided ...... 111 Show Material ...... 119 Season ...... 111 Tessellation ...... 119 Max resolution ...... 111 Double-Sided ...... 119 Unwrapping scale ...... 111 Angle ...... 119 User data ...... 111 Saving ...... 119 Variations ...... 111 Displacement Bar ...... 119 Mesh ...... 111 Managing Displacement Assets ...... 119 Maps ...... 111 Settings ...... 120 Map Editor ...... 112 Filename ...... 120 Adjustments ...... 112 Channel ...... 120 Channel...... 112 Smoothing ...... 120 sRGB to Linear ...... 112 Brightness ...... 120 Normalize ...... 113 Contrast ...... 120 Invert ...... 113 Masks Bar ...... 120 Invert RGB ...... 113 Managing Mask Assets ...... 120 Brightness ...... 113 Common Settings ...... 120 Contrast ...... 113 Behavior ...... 120 Saturation ...... 113 Fuzziness ...... 121 Red ...... 113 Green ...... 113 Type ...... 121 Blue...... 113 Image Masks...... 121 Minimum ...... 113 Filename ...... 121 Maximum ...... 113 Channel ...... 121 Color Editor ...... 113 Terrain Masks ...... 121 Material Sets Bar ...... 114 Slope ...... 121 Managing Material Assets ...... 114 Relative Elevation ...... 121 Settings ...... 114 Absolute Elevation ...... 121 Override season ...... 115 TexCoord Masks ...... 121 Members ...... 115 U and V ...... 121 Weight ...... 115 RENDER PHOTO ...... 122 Season ...... 115 Size ...... 122 Meshes Bar ...... 115 Keep aspect ratio ...... 122 Managing Mesh Assets ...... 116 Width/Height...... 122 Geometry ...... 116 Focus ...... 122 Orientation ...... 116 Distance ...... 122 Flip ...... 116 Aperture ...... 123 Flip normals ...... 116 Range ...... 123 Match winding ...... 116 Blur ...... 123 Collection ...... 116 Shadow Sharpness ...... 123 Spines ...... 116 Bloom ...... 123 Pivot ...... 116 Amount ...... 123 Wind Direction ...... 116 Cutoff ...... 123 Growth ...... 116 Blur ...... 123 Ripple ...... 116 Image Effects ...... 123

Page 4 of 277 Exposure ...... 123 Exporting the Cluster ...... 135 Brightness ...... 123 Using a Cluster...... 135 Contrast ...... 123 SPLITS ...... 135 Saturation ...... 124 How to Split ...... 136 Vignette ...... 124 UV Tiling ...... 136 Sepia ...... 124 Sepia color ...... 124 Different Extensions ...... 137 HAPE ONTROL EXPORT MATERIAL/SEQUENCE ...... 124 S C ...... 137 Exporting Materials ...... 124 Shape ...... 137 Exporting Image Sequence ...... 124 Position ...... 137 Settings ...... 125 Distribution ...... 138 Options ...... 125 Post-Shape Deformations ...... 139 Keep aspect ratio ...... 125 COLLECTIONS ...... 139 Width/Height ...... 125 Creating a Collection ...... 139 Override bkgd ...... 125 Collection Properties (Mesh Asset bar) ...... 139 Shadows ...... 125 "Create Collection from Selection" Tool ...... 139 Streak colors ...... 125 Contributing to Collections ...... 140 Ground ...... 125 Examples ...... 140 Clip below ground ...... 125 Example 1: Ivy growing on a zone ...... 140 Sequence ...... 125 Example 2: Self-colliding branches ...... 140 Use timeline ...... 125 Example 3: Vines growing over a trunk ...... 140 Include wind ...... 125 VERTEX COLORS ...... 140 Length ...... 125 Viewing Vertex Colors ...... 141 Frame rate ...... 125 Mesh Assets ...... 141 Frames ...... 125 Image ...... 125 REFERENCE ...... 142 Suffix ...... 126 RGB ...... 126 GENERATION PROPERTIES ...... 142 Alpha ...... 126 Modes ...... 142 TIMELINE BAR ...... 126 Interval ...... 142 Playback ...... 126 Phyllotaxy...... 142 Bifurcation ...... 142 Wind ...... 126 Proportional...... 142 Growth ...... 126 Proportional Steps ...... 142 Speed ...... 127 Absolute ...... 142 Curve ...... 127 Absolute Steps ...... 142 Wizard ...... 127 Classic ...... 142 ART DIRECTOR ...... 127 Shared ...... 143 Generator Editing Mode Edits ...... 127 Boundaries ...... 143 Parent Curve Edits (CTRL) ...... 128 First ...... 143 Variance Edits (Shift) ...... 128 Last ...... 143 Node Editing Mode Edits ...... 129 Clip ...... 143 ADVANCED TECHNIQUES...... 130 Rotation ...... 143 Position ...... 143 UPGRADING OLD MODELS ...... 130 Size Scalar ...... 143 Why Should I Upgrade Leaf Generators? ...... 130 Pruning ...... 143 Why Should I Upgrade Spine Generators? ...... 130 Sink ...... 143 How Do I Upgrade a Model? ...... 130 Extend parent ...... 143 Knock Out ...... 144 LEAF COLLISION ...... 131 Force mesh containers...... 144 Removing Collisions ...... 131 ...... 144 When Using Clusters ...... 132 Masks ...... 144 When Making Clusters ...... 132 Interval ...... 144 Refining Collision Behavior ...... 132 Frequency ...... 145 MESH ANCHORS ...... 132 Count ...... 145 Best Practices ...... 134 Spread ...... 145 CLUSTERS ...... 134 Spiral ...... 145 Making a Cluster ...... 134 Limit ...... 145 Setup View ...... 134 Align style ...... 145 Leaf Lighting ...... 135 Align ...... 145 Collision ...... 135 Balance ...... 145 Texture Adjustments ...... 135 Shared ...... 145

Page 5 of 277 Phyllotaxy ...... 145 Absolute ...... 152 Arrangement ...... 146 Relative ...... 153 Style ...... 146 Frequency ...... 153 Children Per Node ...... 146 Orientation ...... 153 Align style ...... 146 Alignment ...... 153 Align ...... 147 Balanced ...... 153 Nodes ...... 147 Offset ...... 153 Internode Length ...... 147 Sweep ...... 153 Spread ...... 147 Roll ...... 154 Spiral ...... 147 Steps ...... 154 Limit ...... 147 Enabled ...... 154 Shared ...... 147 Number ...... 154 Bifurcation ...... 147 Spread ...... 154 Threshold ...... 147 Roll ...... 154 Spacing ...... 148 Per Step Frequency ...... 154 Balance ...... 148 Shared ...... 154 Align ...... 148 TREE GENERATOR ...... 154 Shared ...... 148 Generation ...... 154 Proportional ...... 148 Shared ...... 154 Number ...... 149 Size Scalar ...... 154 Jumble ...... 149 Geometry ...... 155 Sweep ...... 149 Branches/Caps...... 155 Roll ...... 149 Leaves/Fronds/Meshes ...... 155 Favor Splits ...... 149 Subdivision ...... 155 Align style ...... 149 Shape ...... 155 Align ...... 149 Radius ...... 155 Shared ...... 149 Sink ...... 155 Proportional Steps ...... 149 Roll ...... 155 Steps ...... 150 Subdivision ...... 155 Per Step ...... 150 Level ...... 155 Number ...... 150 Relax ...... 155 Offset ...... 150 Dynamic LOD ...... 155 Roll ...... 150 Enabled ...... 155 Jumble ...... 150 Number ...... 155 Sweep ...... 150 Branches ...... 155 Roll ...... 150 Decorations ...... 156 Align style ...... 150 Leaves ...... 156 Align ...... 150 Fronds ...... 156 Shared ...... 150 Leaf Settings ...... 156 Absolute ...... 150 Grow Scale...... 156 Number ...... 151 Jumble ...... 156 Jumble ...... 151 Seed ...... 156 Sweep ...... 151 ...... 156 Roll ...... 151 Target resolution ...... 156 Favor Splits ...... 151 Display multiplier ...... 156 Align style ...... 151 Compute Flags ...... 157 Align ...... 151 Vertex Colors ...... 157 Shared ...... 151 Vertex Color ...... 157 Absolute Steps ...... 151 Red ...... 157 Steps ...... 151 Green ...... 157 Per Step ...... 151 Blue ...... 157 Number ...... 152 Proxy Collision ...... 157 Spread ...... 152 Automatic ...... 157 Roll ...... 152 Scale ...... 157 Jumble ...... 152 Cull ...... 157 Sweep ...... 152 Restore Culled ...... 157 Roll ...... 152 BRANCH GENERATOR ...... 158 Align Style ...... 152 Generation ...... 158 Align ...... 152 Shared ...... 152 Forces ...... 158 Classic ...... 152 Allow Forces...... 158 Forces ...... 158 Style ...... 152

Page 6 of 277 Hand Drawn ...... 158 Distribution style ...... 163 Convert to hand drawn ...... 158 Distribution ...... 164 New ...... 158 Size ...... 164 Control Point Style ...... 158 Absolute ...... 164 Curve Fit ...... 159 + % of Size ...... 164 Resample ...... 159 Skin ...... 164 Control Point Style ...... 159 Type ...... 164 Curve Fit Scalar ...... 159 Visibility ...... 164 Random Seeds ...... 159 Radius ...... 164 Randomize All ...... 159 Absolute ...... 164 Segments ...... 159 + % of Parent ...... 165 Accuracy ...... 159 Clamp to Parent ...... 165 Length ...... 159 Length Compensation ...... 165 Absolute ...... 159 Length Kill Ratio ...... 165 + Relative ...... 160 Light Seam Reduction ...... 165 Weld Scalar ...... 160 Roll ...... 165 Optimization ...... 160 Smooth ...... 165 Radial ...... 160 Welding ...... 165 Absolute ...... 160 Enabled ...... 165 + Relative ...... 160 Offset ...... 165 Resolution ...... 160 Spread ...... 165 Length ...... 160 Amount ...... 165 Radial ...... 160 Upper Scale ...... 166 Spine ...... 160 Lower Scale ...... 166 Length ...... 160 Blend ...... 166 Absolute ...... 160 Texture ...... 166 + % of parent ...... 160 Contrast ...... 166 Match one V tile ...... 161 Noise ...... 166 Stop Shape Control ...... 161 Lighting ...... 166 Orientation ...... 161 Subdivision...... 166 Start angle ...... 161 Relax Scale ...... 166 Alignment ...... 161 Smooth ...... 166 Roll ...... 161 Texture Density ...... 166 Unify ...... 161 Squash ...... 166 Shape ...... 161 Amount ...... 166 Gravity ...... 161 Rotate ...... 166 Ancestor ...... 161 Splits ...... 167 Straightness ...... 161 Chance ...... 167 Twist ...... 162 Spread 1 ...... 167 Prune ...... 162 Spread 2 ...... 167 Interior ...... 162 Balance ...... 167 Up ...... 162 Seed ...... 167 Down ...... 162 Smooth...... 167 General ...... 162 Inner ...... 167 Ground ...... 162 Outer ...... 167 Noise ...... 162 UV Mapping ...... 167 Early ...... 162 Style ...... 167 Amount ...... 162 U ...... 168 Turbulence ...... 162 Absolute ...... 168 Threshold ...... 162 + Relative ...... 168 Late ...... 162 Offset ...... 168 Amount ...... 162 Twist...... 168 Turbulence ...... 162 Amount ...... 168 Smooth ...... 163 Random Flip ...... 168 Seed ...... 163 V ...... 168 Break ...... 163 Style ...... 168 Chance ...... 163 Anchor ...... 168 Spot ...... 163 Scale ...... 169 Seed ...... 163 Offset ...... 169 Shape Control ...... 163 Override V Coords for Extensions ...... 169 Style ...... 163 Materials ...... 169 Position ...... 163 Branch...... 169

Page 7 of 277 Material ...... 169 LEAF MESH GENERATOR ...... 176 Weight ...... 169 Generation ...... 176 Extensions ...... 169 Forces ...... 176 Material ...... 169 Allow Forces...... 176 Weight ...... 169 Forces ...... 176 Displacement ...... 170 Random Seeds ...... 176 Amount ...... 170 Randomize All ...... 176 Sharpness ...... 170 Leaves ...... 176 ...... 170 Size ...... 176 U Scale ...... 170 Use Actual Size ...... 176 V Scale ...... 170 Flip ...... 176 Seed ...... 170 Weld ...... 176 Amount ...... 170 Cross ...... 176 Sharpness ...... 170 Fix Ending ...... 177 Fine Scale ...... 171 Type ...... 177 Shape ...... 171 Material ...... 177 Amount ...... 171 Weight ...... 177 Twist ...... 171 Resolution ...... 177 Scale ...... 171 Size Increase % ...... 177 Flares ...... 171 Mesh LOD ...... 177 Radius ...... 171 Mesh LOD Offset ...... 177 Noise Scale ...... 171 Local Orientation ...... 177 Height ...... 171 Unification ...... 177 Pinch ...... 171 Sky Influence ...... 178 Angle ...... 171 Fold ...... 178 Seed ...... 171 Align ...... 178 Dynamic LOD ...... 171 Face ...... 178 Weight ...... 172 Sensitivity ...... 178 Optimization ...... 172 Parent ...... 178 Length Segments ...... 172 Amount ...... 178 Radial Segments ...... 172 Anchor ...... 178 Wind ...... 172 Sky ...... 178 Apply ...... 172 Final Adjustments ...... 179 Weight ...... 172 Up ...... 179 Offset ...... 172 Right ...... 179 Season ...... 172 Out ...... 179 Start Offset ...... 172 Deformation ...... 179 Time Scale ...... 172 Fold ...... 179 Descendant Offset ...... 173 Curl...... 179 Growth ...... 173 Twist ...... 179 Speed Scale ...... 173 Vertex...... 179 Radius ...... 173 Amount ...... 179 Smoothing ...... 173 Noise ...... 179 Timing ...... 173 Seed ...... 179 Style ...... 173 Scale ...... 179 Start % ...... 173 X ...... 179 Offset ...... 174 Y ...... 179 Noise ...... 174 Z ...... 180 Wobble ...... 174 Lighting ...... 180 Speed ...... 174 Parent Puffiness...... 180 Mapping ...... 174 Amount ...... 180 Animate Texture ...... 174 Anchor ...... 180 Animate Displacement ...... 174 Puffiness ...... 180 Physics ...... 175 Unify ...... 180 Bone Style ...... 175 Adjustments ...... 180 Bones ...... 175 Up ...... 180 Radial Scalar ...... 175 Right ...... 180 Length Scalar ...... 175 Out ...... 181 Density ...... 175 Wind ...... 181 Breakable Chance ...... 175 Scalar ...... 181 Lightmap ...... 175 Group ...... 181 Weight ...... 175

Page 8 of 277 Seed ...... 181 Allow Forces...... 187 Growth ...... 181 Forces ...... 187 Speed Scale ...... 181 Random Seeds ...... 187 Smoothing ...... 181 Randomize All ...... 187 Transitions ...... 181 Leaves ...... 187 Size ...... 181 Size ...... 187 Orientation ...... 181 Use Actual Size ...... 187 Curl ...... 181 Flip ...... 187 Fold ...... 181 Weld ...... 187 Timing ...... 182 Cross ...... 187 Style ...... 182 Fix Winding ...... 187 Start % ...... 182 Type ...... 187 Offset ...... 182 Material ...... 187 Noise ...... 182 Weight ...... 187 Wobble ...... 182 Resolution ...... 188 Amount ...... 182 Size Increase % ...... 188 Frequency ...... 182 Mesh LOD ...... 188 Speed ...... 182 Mesh LOD offset ...... 188 Amount ...... 182 Local Orientation ...... 188 Frequency ...... 183 Unification ...... 188 Seed ...... 183 Sky Influence ...... 188 Season ...... 183 Fold ...... 188 Start Offset ...... 183 Align ...... 188 Time Scale ...... 183 Face ...... 189 Drop Time ...... 183 Sensitivity ...... 189 Droop ...... 183 Parent ...... 189 Curl ...... 183 Amount ...... 189 Fold ...... 183 Anchor ...... 189 Fallen ...... 183 Sky ...... 189 Ground duration ...... 183 Final Adjustments ...... 189 Spread ...... 183 Up ...... 189 Flatten ...... 183 Right ...... 189 Jumble ...... 183 Out ...... 189 Slope Limit ...... 183 Deformation ...... 189 Dynamic LOD ...... 184 Fold ...... 190 Weight ...... 184 Curl...... 190 Scale Factor ...... 184 Twist ...... 190 Mesh Index ...... 184 Vertex...... 190 Vertex Color ...... 184 Amount ...... 190 Red ...... 184 Noise ...... 190 Style ...... 184 Seed ...... 190 Value ...... 184 Scale ...... 190 Green ...... 184 X ...... 190 Style ...... 184 Y ...... 190 Value ...... 184 Z ...... 190 Blue ...... 185 Lighting ...... 190 Style ...... 185 Parent Puffiness...... 191 Value ...... 185 Amount ...... 191 Mesh Asset ...... 185 Anchor ...... 191 Style ...... 185 Puffiness ...... 191 Contribution ...... 185 Unify ...... 191 Collision ...... 185 Adjustments ...... 191 Style ...... 185 Up ...... 191 Take Parent ...... 186 Right ...... 191 Weight ...... 186 Out ...... 191 Pivot Threshold ...... 186 Wind ...... 192 Sphere Threshold ...... 186 Scalar ...... 192 Lightmap ...... 186 Group ...... 192 Weight ...... 186 Seed ...... 192 BATCHED LEAF GENERATOR ...... 186 Season ...... 192 Generation ...... 186 Start offset ...... 192 Forces ...... 186

Page 9 of 277 Time scale ...... 192 Alignment ...... 197 Drop time ...... 192 Spread ...... 197 Droop ...... 192 Segments ...... 197 Curl ...... 192 Accuracy ...... 197 Fold ...... 192 Width ...... 198 Fallen ...... 192 Absolute ...... 198 Ground Duration ...... 192 + Relative ...... 198 Spread ...... 192 Season ...... 198 Flatten ...... 192 Start Offset ...... 198 Jumble ...... 193 Time Scale ...... 198 Slope limit ...... 193 Collision ...... 198 Collision ...... 193 Style ...... 198 Style ...... 193 Weight ...... 198 Take parent ...... 193 Pivot Threshold ...... 199 Weight ...... 193 Wind ...... 199 Pivot Threshold ...... 193 Amount ...... 199 Sphere Threshold ...... 193 Cross ...... 199 Vertex Color ...... 193 Growth ...... 199 Red ...... 193 Speed Scale ...... 199 Style ...... 193 Transitions ...... 199 Value ...... 194 Gravity ...... 199 Green ...... 194 Curl...... 199 Style ...... 194 Fold ...... 199 Value ...... 194 Roll ...... 199 Blue ...... 194 Dynamic LOD ...... 199 Style ...... 194 Weight ...... 199 Value ...... 194 Mesh ...... 200 Mesh Asset ...... 194 Vertex Color ...... 200 Style ...... 194 Red ...... 200 Contribution ...... 194 Style ...... 200 Lightmap ...... 194 Value ...... 200 Weight ...... 195 Green ...... 200 FROND GENERATOR ...... 195 Style ...... 200 Generation ...... 195 Value ...... 200 Random Seeds ...... 195 Blue ...... 200 Randomize All ...... 195 Style ...... 200 Materials ...... 195 Value ...... 201 Frond ...... 195 Mesh Asset ...... 201 Material ...... 195 Style ...... 201 Weight ...... 195 Contribution ...... 201 Flip ...... 195 Lightmap ...... 201 Two-Sided ...... 196 Weight ...... 201 Mesh ...... 196 KNOT GENERATOR ...... 201 Index ...... 196 Generation ...... 201 Resolution ...... 196 Random Seeds ...... 202 Shape ...... 196 Randomize All ...... 202 Unification ...... 196 Outer ...... 202 Gravity ...... 196 Size ...... 202 Fold ...... 196 Offset ...... 202 Curl ...... 197 Rotation ...... 202 Roll ...... 197 Scale ...... 202 Boundary ...... 197 Lip ...... 202 Start ...... 197 Noise ...... 202 End ...... 197 Shape...... 202 Left-Right Variance ...... 197 Amount ...... 202 Amount ...... 197 Scale ...... 202 Seed ...... 197 Offset ...... 202 Scale ...... 197 Amount ...... 202 Width ...... 197 Scale ...... 202 Height ...... 197 Seed ...... 202 Lighting ...... 197 Inner ...... 203

Page 10 of 277 Size % ...... 203 Material ...... 207 Scale ...... 203 Weight ...... 207 Curvature ...... 203 Resolution ...... 207 Overlap ...... 203 Mesh LOD ...... 207 UV ...... 203 Mesh LOD Offset ...... 207 Style ...... 203 Orientation ...... 207 Scale ...... 203 Style ...... 207 U offset ...... 203 Start angle ...... 208 V Offset ...... 203 Roll ...... 208 Noise ...... 203 Deformation ...... 208 Shape ...... 203 Fold ...... 208 Amount ...... 203 Curl...... 208 Scale ...... 203 Vertex...... 208 Core ...... 204 Amount ...... 208 Size % ...... 204 Noise ...... 208 Offset ...... 204 Seed ...... 208 UV ...... 204 Scale ...... 208 Style ...... 204 X ...... 208 Scale ...... 204 Y ...... 208 U offset ...... 204 Z ...... 208 V Offset ...... 204 Lighting ...... 209 Noise ...... 204 Puffiness ...... 209 Shape ...... 204 Match Surface ...... 209 Amount ...... 204 Wind ...... 209 Scale ...... 204 Ripple scale...... 209 Offset ...... 204 Growth ...... 209 Amount ...... 204 Speed Scale ...... 209 Scale ...... 204 Transitions ...... 209 Seed ...... 204 Size ...... 209 Material ...... 205 Orientation ...... 209 Inner ...... 205 Curl...... 209 Material ...... 205 Fold ...... 210 Weight ...... 205 Timing ...... 210 Core ...... 205 Style ...... 210 Material ...... 205 Start % ...... 210 Weight ...... 205 Offset ...... 210 Segments ...... 205 Season ...... 210 Rings ...... 205 Start Offset ...... 210 Outer ...... 205 Time Scale ...... 210 Inner ...... 205 Curl...... 210 Core ...... 205 Fold ...... 210 Slices ...... 205 Dynamic LOD ...... 211 Resolution ...... 205 Weight ...... 211 Dynamic LOD ...... 205 Mesh Index ...... 211 Weight ...... 206 Collision ...... 211 Ring segments ...... 206 Style ...... 211 Slice segments ...... 206 Weight ...... 211 Lightmap ...... 206 Pivot Threshold ...... 211 Outer weight ...... 206 Lightmap ...... 211 Inner weight ...... 206 Weight ...... 211 Core weight ...... 206 CAP GENERATOR ...... 212 FIN GENERATOR ...... 206 Generation ...... 212 Generation ...... 206 Random Seeds ...... 212 Forces ...... 206 Randomize All ...... 212 Allow Forces ...... 206 Cap ...... 212 Random Seeds ...... 206 Angle ...... 212 Randomize All ...... 207 Scale ...... 212 Fins ...... 207 Offset ...... 212 Size ...... 207 Slope ...... 212 Flip ...... 207 Spread ...... 212 Type ...... 207 Lip ...... 212

Page 11 of 277 Thickness ...... 212 Hang ...... 217 Height ...... 212 Up rotation ...... 218 Material ...... 213 Out rotation ...... 218 Material ...... 213 Right rotation ...... 218 Weight ...... 213 Meshes ...... 218 Segments ...... 213 Enable ...... 218 Rings ...... 213 Include in model ...... 218 Lip ...... 213 Place at origin ...... 218 Displacement ...... 213 Use actual size ...... 218 Source ...... 213 Size ...... 218 Amount ...... 213 Level of detail ...... 218 U offset ...... 213 Apply Wind ...... 218 V offset ...... 213 Meshes ...... 218 UV tile ...... 213 Geometry ...... 218 Angle ...... 213 Material ...... 218 Dynamic LOD ...... 213 Weight ...... 218 Weight ...... 213 Growth ...... 218 Ring Segments ...... 214 Area Influence ...... 219 Lip Segments ...... 214 Adapt to Masks ...... 219 Lightmap ...... 214 Iteration Scale ...... 219 Branch weight ...... 214 Surface adhesion ...... 219 Cap weight ...... 214 Influence of forces ...... 219 SHELL GENERATOR ...... 214 Constant Sink ...... 219 UV Mapping ...... 214 Slope-Based Sink...... 219 Style ...... 214 Lightmap ...... 219 U ...... 214 Weight ...... 219 Absolute ...... 214 LEGACY GENERATORS ...... 220 + Relative ...... 214 Spine Generator ...... 220 Offset ...... 215 Generation ...... 220 Twist ...... 215 Forces ...... 220 Amount ...... 215 Geometry Types ...... 220 Random Flip ...... 215 Frond ...... 220 V ...... 215 Leaf Style Fronds ...... 220 Style ...... 215 Branch ...... 220 Anchor ...... 215 Cap ...... 220 Scale ...... 215 Random Seeds ...... 220 Offset ...... 215 Randomize All ...... 221 Override V Coords for Extensions ...... 215 Hand-Drawn ...... 221 Materials ...... 216 Toggle Hand-Drawn ...... 221 Branch ...... 216 Control point style ...... 221 Material ...... 216 Curve Fit Scalar ...... 221 Weight ...... 216 Segments ...... 221 Lightmap ...... 216 Multiplier ...... 221 Weight ...... 216 Style ...... 221 Accuracy ...... 221 Decorator ...... 216 Length ...... 221 Position ...... 216 Optimization ...... 222 Scale ...... 216 Radial ...... 222 ZONE GENERATOR ...... 217 Cap ...... 222 Generation ...... 217 Weld ...... 222 Forces ...... 217 Frond shape ...... 222 Allow Forces ...... 217 Frond Optimization ...... 222 Random Seeds ...... 217 Spine ...... 222 Randomize All ...... 217 Length Style ...... 222 Placement ...... 217 Length % ...... 222 Radius ...... 217 Limit Length ...... 222 Max Distance ...... 217 Length ...... 222 Min Distance ...... 217 Relative length limiter ...... 222 Angle ...... 217 Start Angle ...... 222 Exponent ...... 217 Alignment ...... 222 Orientation ...... 217 Roll ...... 223 Alignment ...... 217 Unify Orientation ...... 223

Page 12 of 277 Perturbance ...... 223 Offset ...... 227 Disturbance ...... 223 Slope ...... 228 Jink Frequency ...... 223 Welding ...... 228 Jink Amount ...... 223 Enabled ...... 228 Break Chance ...... 223 Normal blending ...... 228 Break Spot ...... 223 Distance ...... 228 Bifurcation ...... 223 Upper Spread ...... 228 Chance ...... 223 Lower Spread ...... 228 Spot ...... 223 Intersection Blending ...... 228 Angle ...... 223 Style ...... 228 Distance ...... 223 Texture Pull ...... 228 Radius Scale ...... 223 Offset ...... 228 Adjust Frequency ...... 223 Texture Coordinates ...... 228 Adjust Frond Start ...... 223 Layer ...... 228 Web ...... 224 Style ...... 229 Angle...... 224 U Correction ...... 229 Thickness ...... 224 U Lock ...... 229 Spread ...... 224 U Tile ...... 229 Break ...... 224 V Tile ...... 229 Style ...... 224 U Offset ...... 230 Left Break Spot ...... 224 V Offset ...... 230 Right Break Spot ...... 224 Twist ...... 230 Cap Variance ...... 224 Flip twist ...... 230 Frond ...... 224 Clamp ...... 230 Shape ...... 224 Materials ...... 230 Width ...... 224 Geometry ...... 230 Height ...... 224 Material ...... 230 Contour ...... 224 Weight ...... 230 Shape: Contour Style ...... 224 Sync Index ...... 230 Lock Aspect Ratio ...... 224 Displacement ...... 230 Mapping ...... 225 Branch ...... 230 Flip ...... 225 Source ...... 230 Start ...... 225 Mapping ...... 231 End...... 225 Amount ...... 231 Roll ...... 225 Jaggedness ...... 231 Count ...... 225 Jaggedness Tile ...... 231 Spacing ...... 225 Offset ...... 231 Normals ...... 225 U Tile ...... 231 Alignment ...... 225 V Tile ...... 231 Spread ...... 226 U Offset ...... 231 Light Seam Reduction ...... 226 V Offset ...... 231 Two Sided ...... 226 Cap ...... 232 Invert ...... 226 Source ...... 232 Mesh ...... 226 Amount ...... 232 Normal Bias ...... 226 U Offset ...... 232 Offset Direction ...... 226 V Offset ...... 232 Z Scale ...... 226 UV Tile ...... 232 Branch ...... 226 Angle ...... 232 Radius Style ...... 226 Ambient Occlusion ...... 232 Radius ...... 226 Level of Detail ...... 232 Clamp Radius ...... 227 Wind ...... 232 Light Seam Reduction ...... 227 Apply ...... 232 Roll ...... 227 Weight ...... 232 Flares ...... 227 Rotation ...... 233 Number ...... 227 Group ...... 233 Balance ...... 227 Fronds: Ripple Scale ...... 233 Width ...... 227 Edit Global Wind ...... 233 Length ...... 227 Growth ...... 233 Height ...... 227 Physics...... 233 Cap ...... 227 Use frond geometry...... 233 Angle ...... 227 Bone Style ...... 233 Scale ...... 227 Bones ...... 233 Border ...... 227 Radius Scalar ...... 233

Page 13 of 277 Length Scalar ...... 233 V Tile ...... 238 Density ...... 233 U Offset ...... 238 Lightmap ...... 234 V Offset ...... 238 Scale ...... 234 Twist ...... 238 SubDiv Generator ...... 234 Flip Twist ...... 238 Generation ...... 234 Detail ...... 238 Forces ...... 234 Materials ...... 239 Random Seeds ...... 234 Material ...... 239 Randomize All ...... 234 Weight ...... 239 Segments ...... 234 Sync Index ...... 239 Accuracy ...... 234 Displacement ...... 239 Length Style ...... 234 Branch ...... 239 Length ...... 234 Source ...... 239 Radial ...... 234 Mapping ...... 239 Amount ...... 239 Cap rings ...... 234 Offset ...... 239 Spine ...... 235 U Tile ...... 239 Length Style ...... 235 V Tile ...... 240 Length % ...... 235 U Offset ...... 240 Limit Length ...... 235 V Offset ...... 240 Length ...... 235 Cap ...... 240 Start Angle ...... 235 Source ...... 240 Roll ...... 235 Amount ...... 240 Perturbance ...... 235 U Offset ...... 240 Enabled ...... 235 V Offset ...... 240 Disturbance ...... 235 UV Tile ...... 240 Jink Frequency ...... 235 Angle ...... 240 Jink Amount ...... 235 Wind ...... 240 Return ...... 235 Apply ...... 240 Seed ...... 235 Weight ...... 240 Hand Drawn ...... 236 Rotation ...... 241 Toggle Hand Drawn ...... 236 Ambient Occlusion ...... 241 Control Point Style ...... 236 Physics...... 241 Curve Fit Scalar ...... 236 Use Frond Geometry...... 241 Branch ...... 236 Bone Style ...... 241 Radius Style ...... 236 Bones ...... 241 Radius ...... 236 Radius Scalar ...... 241 Intersection ...... 236 Length Scalar ...... 241 Smooth ...... 236 Density ...... 241 Relax Scale ...... 236 Lightmap ...... 241 Upper Spread ...... 236 Scale ...... 241 Lower Spread ...... 236 Cage Generator ...... 242 Texture Pull ...... 237 Generation ...... 242 Texture Density ...... 237 Random Seeds ...... 242 Flares ...... 237 Randomize All ...... 242 Number ...... 237 Balance ...... 237 Subdivision...... 242 Width ...... 237 Level ...... 242 Length ...... 237 Relax ...... 242 Height ...... 237 Leaf Generator ...... 242 Pinch ...... 237 Generation ...... 242 Twist ...... 237 Forces ...... 242 Seed ...... 237 Random Seeds ...... 242 Cap ...... 237 Randomize All ...... 242 Border ...... 237 Placement ...... 242 Offset ...... 237 Weld ...... 242 Lip ...... 237 Unify Orientation ...... 243 Lip Sharpness ...... 237 Surface Adhesion ...... 243 Angle ...... 238 Max Distance ...... 243 Slope ...... 238 Min Distance ...... 243 Texture Coordinates ...... 238 Exponent ...... 243 Base ...... 238 Angle ...... 243 Style ...... 238 Spread Scalar ...... 243 U Tile ...... 238 Cull Scalar ...... 243

Page 14 of 277 Edit Leaf Collision… ...... 243 TREE WINDOW PROPERTIES ...... 248 Leaves ...... 243 Viewport ...... 248 Size ...... 243 Layout ...... 248 Use Actual Size ...... 243 Grid lines color ...... 248 Flip ...... 243 Grid Spacing ...... 248 Type ...... 243 Lightmap View % ...... 248 Cards ...... 244 Background ...... 248 Aspect Ratio ...... 244 Style ...... 248 Jitter ...... 244 Color ...... 249 X Pivot Offset ...... 244 Image ...... 249 Y Pivot Offset ...... 244 Panorama Adjustments ...... 249 Meshes ...... 244 Brightness ...... 249 Orientation ...... 244 Contrast ...... 249 Sensitivity ...... 244 Rotation ...... 249 Parent ...... 244 General Rendering ...... 249 Sky ...... 244 Transparency ...... 249 Alignment ...... 244 Tree Selection Style ...... 250 Hang ...... 245 Anisotropic Filtering ...... 250 Up Rotation ...... 245 3D Icon Scale ...... 250 Out Rotation ...... 245 Manipulator ...... 250 Right Rotation ...... 245 Mode ...... 250 Jitter ...... 245 Coordinate System ...... 250 Lighting ...... 245 Size Scale ...... 250 Global Style ...... 245 Screenshot Safe Frame ...... 250 Global Reference ...... 245 Show ...... 250 Global Anchor ...... 245 Width ...... 250 Global Smoothing ...... 245 Height ...... 250 Local Smoothing ...... 245 User Constant 1 ...... 250 Card Smoothing ...... 245 X ...... 251 Puffiness ...... 246 Y ...... 251 Range ...... 246 Z ...... 251 Ambient Occlusion ...... 246 W ...... 251 Dimming ...... 246 Capture Camera...... 251 Wind ...... 246 Style ...... 251 Scalar ...... 246 Left X ...... 251 Group ...... 246 Left Y ...... 251 Edit Global Wind ...... 246 Middle X ...... 251 Level of Detail ...... 246 Middle Y ...... 251 Growth ...... 246 Light azimuth ...... 251 Season ...... 246 Light pitch ...... 251 Lightmap ...... 246 FORCE ...... 252 Weight ...... 246 Force ...... 252 Proxy Generator ...... 247 Enabled ...... 252 Generation ...... 247 Type ...... 252 Forces ...... 247 Strength ...... 252 Allow Forces ...... 247 Color...... 252 Forces ...... 247 Indicator Scale ...... 252 Random Seeds ...... 247 Mesh ...... 252 Randomize All ...... 247 Include in Model ...... 252 Rotation ...... 247 Mesh ...... 252 Rotation: Up ...... 247 Force action ...... 252 Rotation: Out ...... 247 Collide Action ...... 253 Rotation: Right ...... 247 Keep Action ...... 253 Geometry ...... 247 Obstruction Distance ...... 253 Mesh ...... 247 Max Iterations...... 253 Geometry ...... 248 Max Angle ...... 253 Material ...... 248 Give up Action ...... 253 Weight ...... 248 Ambient Occluder...... 254 Collision ...... 248 Level of Detail ...... 254 Allow ...... 248 Material ...... 254 Global Scale ...... 248 Material ...... 254 Self Scale ...... 248 Color ...... 254 Weight Scale ...... 248 Lightmap ...... 254

Page 15 of 277 Scale ...... 254 Amount ...... 260 Attenuation ...... 254 VFX Frond Motion ...... 260 Type ...... 254 Group 1 ...... 260 Distance ...... 254 Bend ...... 260 Falloff Distance ...... 254 Turbulence ...... 260 Indicator ...... 255 Frequency ...... 260 Container Forces ...... 255 Amount ...... 260 Include ...... 255 Independence ...... 260 Exclude ...... 255 Ripple ...... 260 Animation ...... 255 Gusting...... 260 Start Frame ...... 255 Enabled ...... 260 Duration ...... 255 Frequency ...... 260 Profile ...... 255 Strength ...... 260 Growth ...... 255 Duration ...... 260 Lifetime % ...... 255 Response Scalars ...... 261 Transform ...... 255 Rise ...... 261 Translation ...... 256 Fall ...... 261 X, Y, Z ...... 256 Fan - Lumberyard ...... 261 Reset translation ...... 256 Settings ...... 261 Rotation ...... 256 Enabled ...... 261 Axis X, Axis Y, Axis Z ...... 256 Strength ...... 261 Angle ...... 256 Lumberyard ...... 261 Reset rotation ...... 256 Bending ...... 261 Scale ...... 256 Branch Amplitude ...... 261 X, Y, Z ...... 256 Edges Amplitude ...... 261 Detail Frequency ...... 261 Uniform ...... 256 Reset Scaling ...... 256 LIGHT ...... 262 FAN ...... 256 Environment ...... 262 Preset ...... 262 Fan - VFX ...... 256 Directional ...... 262 Main ...... 256 Color ...... 262 Wind wizard...... 256 Intensity ...... 262 Enabled ...... 257 Ambient ...... 262 Quality ...... 257 Sky ...... 262 Settings ...... 257 Horizon ...... 262 Strength ...... 257 Ground ...... 262 Response Times ...... 257 Intensity ...... 262 Strength ...... 257 Direction ...... 257 Ambient Occlusion (AO) ...... 262 VFX Branch Motion ...... 257 Brightness: Makes the AO brighter/darker...... 262 Contrast: Increases the difference between light Scalars ...... 258 and dark AO values...... 262 Shared ...... 258 Min: Sets the darkest value of AO...... 262 Bend ...... 258 Max: Sets the brightest value of AO...... 262 Turbulence ...... 258 Render: Renders new ambient occlusion...... 262 Frequency ...... 258 Clear: Clears ambient occlusion to white...... 262 Twist ...... 258 Start ...... 258 Shadows ...... 262 Levels 1, 2, 3, and 4 ...... 258 Quality ...... 262 Bend ...... 258 Bias ...... 263 Turbulence ...... 258 Ground Weight ...... 263 Frequency ...... 258 COLLISION OBJECT ...... 263 Flexibility ...... 258 Collision Object ...... 263 Independence ...... 259 Type...... 263 Disable ...... 259 Radius ...... 263 VFX Leaf Motion ...... 259 Height ...... 263 Scalars ...... 259 User data ...... 263 Groups 1 & 2 ...... 259 Transform ...... 263 Bend ...... 259 Translation ...... 263 Turbulence ...... 259 X/Y/Z: Sets the location of the Collision Object...... 263 Frequency ...... 259 Reset Translation: Resets the location to the Amount ...... 259 origin (0,0,0)...... 263 Independence ...... 259 Rotation...... 263 Flutter ...... 259 Axis X/Y/Z: Determines the axis about which to Frequency ...... 259 rotate...... 263

Page 16 of 277 Angle: Sets the angle to rotate around the axis...... 263 "Clear Node Edits" Property Button Crash ...... 268 Reset rotation: Resets the rotation to default LOD Geometry Rendering to the Origin Fixed ...... 268 (1,0,0,0)...... 263 Fronds Can Now Handle the "Simple Leaves" Mesh .... 268 SPEEDTREE MODELER HOTKEYS ...... 264 Cap Generators No Longer Indicate Wind Level in Hiding Nodes ...... 264 the Generation Editor ...... 268 Generator Selection ...... 264 v8.0.2 ...... 269 Focus Controls ...... 264 New Features...... 269 Resolution Controls ...... 264 Timeline Wind Improvements...... 269 Render Mode Selection ...... 265 Velocity Data in Alembic Exports ...... 269 Visibility Controls ...... 265 Edit Map Filenames ...... 269 Capture Camera Works in Sequence Renders ...... 269 Subdivision Controls ...... 265 Bug Fixes ...... 269 Camera Controls ...... 266 Caps on Shells Crash Fixed...... 269 Mouse Controls ...... 266 v8.0.1 ...... 269 Selection Style Controls ...... 266 New Features...... 269 Manipulator Gimple Controls (for Forces and Meshes) 266 Shape Control Distribution Style ...... 269 Other Controls ...... 267 v8.0.0 ...... 269 WHAT'S NEW? ...... 268 ABOUT ...... 269 v8.0.3 ...... 268 New Features ...... 268 GLOSSARY ...... 271 Billboard Rendering Improvements ...... 268 GENERAL TERMS ...... 271 Atlas Packing Improvements ...... 268 MODELING TERMS ...... 271 Better Opacity Handling in Lumberyard Models ...... 268 COMPILER/SDK TERMS ...... 273 Improved Branch Intersection Noise Pattern ...... 268 FILE EXTENSIONS - MESH FILE FORMATS ...... 275 Bug Fixes ...... 268 Cascade Value From Old Models Fixed ...... 268 OTHER FILE FORMATS ...... 275 Frond Normal Spread ...... 268 INDEX ...... 276 Force Mesh Extents Included in AO Rendering ...... 268

Page 17 of 277 T ABLE OF F IGURES

Figure 1: Licensing ...... 27 Figure 29: Metallic - for almost all tree materials, metallic should be left at 0 ...... 53 Figure 2: A Sample Conifer with-out Global Illumination enabled ...... 30 Figure 30: Subsurface light on a sycamore tree...... 53 Figure 3: A Sample Conifer with Global Illumination Figure 31: Subsurface light is controlled by two separate enabled ...... 31 maps - Subsurface Color and Subsurface Amount ...... 53 Figure 4: “Bending” Values ...... 32 Figure 32: Per-vertex ambient occlusion values - use this map to provide effects on a much smaller scale ...... 54 Figure 5: Simple generator hierarchy and corresponding model ...... 33 Figure 33: Gizmo ...... 54 Figure 6: Generator Mode vs. Node Mode ...... 35 Figure 34: Ambient Occlusion ("AO") - Ambient light comes from all directions at once ...... 55 Figure 7: Gizmo ...... 38 Figure 35: LOD Slider ...... 56 Figure 8: Typical Generator property ...... 39 Figure 36: LOD transition - branches shrinking away to Figure 9: The effect of editing the parent curve for length their spine ...... 56 in the images above ...... 40 Figure 37: LOD and leaves ...... 57 Figure 10: Example of various Generators' effects ...... 41 Figure 38: Optimization of segments ...... 57 Figure 11 ...... 42 Figure 39: Changing Resolution ...... 58 Figure 12 ...... 42 Figure 40: Segmental Resolution Curves ...... 58 Figure 13: Example of Curve Editor indicating from where in the curve the resolution levels are sampled ...... 43 Figure 41: Each Curve Point controls the polygonal count for the corresponding resolution ...... 59 Figure 14: Mesh Asset Bar ...... 44 Figure 42 ...... 60 Figure 15: Cutout Editor ...... 44 Figure 43 ...... 60 Figure 16: Mesh Wizard ...... 44 Figure 44 ...... 61 Figure 17: Force manipulating the shape of branch spines ..... 47 Figure 45 ...... 61 Figure 18: "Attenuation" property of Force enabled ...... 48 Figure 46 ...... 61 Figure 19: Mesh Force making vines grow on a fence ...... 48 Figure 47 ...... 62 Figure 20 ...... 48 Figure 48: Node editing mode - editing spine of hand Figure 21: Container Force property ...... 49 drawn branch ...... 62 Figure 22: New physically based renderer (PBR) ...... 50 Figure 49: Control Point Styles ...... 63 Figure 23: Color Maps (Albedo Check) ...... 51 Figure 50: Seasons slider ...... 67 Figure 24: Opacity Mask - white is opaque; black is Figure 51: Material assignment and Season properties for transparent ...... 51 an example model ...... 67 Figure 25: Normal Map - used to provide surface detail by Figure 52: Material Season Curves ...... 68 perturbing the facing direction of each individual pixel...... 51 Figure 53: Model in three different season states ...... 69 Figure 26: Gloss - representation of how rough the surface is at a micro level or "smoothness" ...... 52 Figure 54: Materials and season properties for the leaf generator at each Season state ...... 69 Figure 27: Many "non-glossy" surfaces often have a decent amount of gloss ...... 52 Figure 55 ...... 70 Figure 28: Low Gloss vs. High Gloss ...... 52 Figure 56: Wind Strength and Direction Gizmo ...... 72

Page 18 of 277 Figure 57: Wind Wizard ...... 73 Figure 86: Variance Editor ...... 108 Figure 58: Example of wind Generation Editor enabled - Figure 87: Variance Editor Control Group ...... 109 display of the wind level on each generator where wind is enabled ...... 73 Figure 88: The asset currently shown is set using the combo box in this group ...... 110 Figure 59: Wind curve editing ...... 74 Figure 89: Materials Bar - where you create a material Figure 60: Traditional SpeedTree Wind controls ...... 76 asset that can be applied to different parts of the tree ...... 110 Figure 61: Mesh exporting controls ...... 78 Figure 90: Variations - allows random slight variations of color of materials on different parts of tree ...... 111 Figure 62: Example of grouping by hierarchy ...... 79 Figure 91: Map Editor - dialog presented when texture Figure 63: Export Controls ...... 80 buttons clicked on Material Asset Bar ...... 112 Figure 64: Options to set - shows type of geometry from Figure 92: Color Editor - dialog that lets you pick colors for tree to include: full 3d geometry LODs, billboard LOD, or the various places in the interface ...... 114 all ...... 81 Figure 93: Material Sets Bar - combine a number of Figure 65: Example of a one-draw-call tree where materials into a single group to be applied to the tree all at everything has been placed into the atlas ...... 82 once ...... 114 Figure 66: Exported trees that fit into the Lumberyard art Figure 94: Material set can hold multiple members; Add or pipeline ...... 86 Delete here ...... 115 Figure 67: Tree Window - Main area of SpeedTree ...... 88 Figure 95: Adding, removing, changing the name, Figure 68: Control group for quick access to scene objects .... 89 reordering, and applying mesh assets to the tree ...... 115 Figure 69: Control group available in VFX builds ...... 90 Figure 96: Three (3) main groups of tools found in Cutout Editor - Points, Masks, and Anchors ...... 117 Figure 70: Control group to aid in model creation/editing ...... 90 Figure 97: Points tool ...... 117 Figure 71: Different foci ...... 91 Figure 98: Pivot points ...... 118 Figure 72: Control group that provides access to actions used on a model after it is computed...... 91 Figure 99: Masks ...... 118 Figure 73: Graphical visualization of wind strength and Figure 100: Anchors ...... 118 gusting ...... 92 Figure 101: Displacement Bar ...... 119 Figure 74: ...... 93 Figure 102: Masks Bar ...... 120 Figure 75: Generation Editor ...... 96 Figure 103: Texture coordinates ...... 121 Figure 76: Available generators ...... 96 Figure 104: Render Photo settings ...... 122 Figure 77: List of what icons mean ...... 98 Figure 105: Focus ...... 122 Figure 78: Property Bar ...... 100 Figure 106: Bloom ...... 123 Figure 79: Curve Editor ...... 101 Figure 107: Exporting materials - often used when Figure 80: Components of the curve toolbar, common to creating a Cluster for use in another tree ...... 124 all curves ...... 102 Figure 108: Exporting an image settings ...... 125 Figure 81: Curve Window ...... 102 Figure 109: Timeline Bar - where growth and wind Figure 82: Preset Standard Curve Shapes ...... 105 animation are managed ...... 126 Figure 83: ...... 106 Figure 110: Art Director gizmo ...... 127 Figure 84: Season Curve Presets ...... 106 Figure 111: Parent Curve Edits ...... 128 Figure 85: Resolution Curve Presets...... 107 Figure 112: Variance Edits ...... 128

Page 19 of 277 Figure 113: Node Editing Mode Edits ...... 129 Figure 127: Shape control is enabled on a second tier generator. This will create “puffs” on the branches...... 137 Figure 114: Leaves “colliding” or intersecting with other leaves and branches ...... 131 Figure 128: Adjusting the position and size of shape ...... 138 Figure 115: Collision removal ...... 132 Figure 129: Pruning ...... 138 Figure 116: Mesh anchors specify attachment points on Figure 130: Post-Shape Control Deformations ...... 139 mesh assets ...... 133 Figure 131: Creating a Collection ...... 139 Figure 117: Mesh anchor generator hierarchy for “cluster” technique ...... 133 Figure 132: Contributing to Collections – Select Collections group with the “Generation” properties ...... 140 Figure 118: “Anchors” property – generation restrictions ...... 133 Figure 133: Growing ivy off roots and trunk of a tree ...... 140 Figure 119: Use of Clusters in place of low triangle counts ..... 134 Figure 134: Render modes – capability to see vertex Figure 120: Setup View for viewport camera - XY plane ...... 134 colors on models ...... 141 Figure 121: Leaf Lighting ...... 135 Figure 135: Interval mode ...... 144 Figure 122: Before exporting cluster maps, enable Figure 136: Phyllotaxy Arrangement style settings ...... 146 screenshot safe frame in Tree Window ...... 135 Figure 137: Bifurcation mode generates nodes on Figure 123: Splits ...... 136 curves/bends of parent branch ...... 147 Figure 124: Click generation level that starts split & edit Figure 138: Proportional generation mode ...... 148 "Skin:Splits:Chance" property to increase likelihood of split .... 136 Figure 139: Proportional Steps mode ...... 149 Figure 125: UV Tiling ...... 136 Figure 140: Branch motion – direction and speed ...... 257 Figure 126: Shape control is enabled on the trunk. This will create a round “lollipop” tree...... 137 Figure 141: Collision object ...... 263

Page 20 of 277 T ABLE OF T ABLES

Table 1: New Generators ...... 25 Table 33: Timing style options – growth starting point options ...... 173 Table 2: New Generation Algorithms ...... 25 Table 34: Bone style options ...... 175 Table 3: New Branch Modeling Features ...... 26 Table 35: Leaf anchor point options ...... 177 Table 4: Main Generators ...... 36 Table 36: Second stage leaf orientation anchor options ...... 178 Table 5: Decorator Generators ...... 37 Table 37: Parent Puffiness anchor options ...... 180 Table 6: World Building Generators ...... 37 Table 38: Timing leaf growth options ...... 182 Table 7: Forces ...... 46 Table 39: Red Vertex color options ...... 184 Table 8: Control Points ...... 62 Table 40: Green Vertex color options ...... 184 Table 9: Atlassing in preparation for real-time rendering ...... 82 Table 41: Blue Vertex color options ...... 185 Table 10: Control group - how and what is rendered ...... 88 Table 42: Mesh Asset - how vertex colors stored in the Table 11: Available Generators ...... 97 mesh asset are combined with the computed vertex colors .... 185 Table 12: Mask behaviors ...... 120 Table 43: Collision system for leaves options ...... 185 Table 13: Collision removal options...... 131 Table 44: Leaf anchor point options (no node editing) ...... 188 Table 14: Extend Parent options ...... 144 Table 45: Group control of the second stage of leaf Table 15: Force mesh containers options ...... 144 orientation anchor options ...... 189 Table 16: Align style options ...... 145 Table 46: Parent Puffiness vector options ...... 191 Table 17: Phyllotaxy Arrangement style settings ...... 146 Table 47: Leaf Collision options ...... 193 Table 18: “Align” style options ...... 146 Table 48: Red Vertex color options ...... 193 Table 19: Align Style options ...... 149 Table 49: Green Vertex color options ...... 194 Table 20: “Align style” options ...... 150 Table 50: Blue Vertex color options ...... 194 Table 21: “Align style” options ...... 151 Table 51: Mesh Asset group control ...... 194 Table 22: “Align style” options ...... 152 Table 52: Shape group control ...... 196 Table 23: Alignment options ...... 153 Table 53: Frond collision options ...... 198 Table 24: “New” hand drawn branches style options ...... 158 Table 54: Red Vertex color options ...... 200 Table 25: “Resample” hand drawn branches style options ..... 159 Table 55: Green Vertex color options ...... 200 Table 26: Shape control style options ...... 163 Table 56: Blue Vertex color options ...... 200 Table 27: Shape control distribution style options ...... 163 Table 57: Mesh Asset group options ...... 201 Table 28: Skin style options ...... 164 Table 58: Knot Generator options ...... 201 Table 29: UV Mapping method options ...... 167 Table 59: UV coordinates generation options ...... 203 Table 30: Twist V coordinates computations options ...... 168 Table 60: Core UV coordinates generation options ...... 204 Table 31: V coordinates Anchor point selection ...... 168 Table 61: Fin initial orientation options ...... 207 Table 32: Displacement source options ...... 170 Table 62: Fin growing timing options ...... 210 Table 63: Options for Fin Generator interaction with collision system ...... 211

Page 21 of 277 Table 64: Shell Generator UV coordinates generation Table 84: Control points for Bézier splines options ...... 236 options ...... 214 Table 85: Branch radius options ...... 236 Table 65: Twist V coordinates options ...... 215 Table 86: UV coordinates computation options ...... 238 Table 66: Twist V anchor coordinates options ...... 215 Table 87: Displacement branch options ...... 239 Table 67: Legacy generators used in SpeedTree versions 5.x through 7.x ...... 220 Table 88: Displacement mapping options ...... 239 Table 68: Hand-Drawn Bézier spline options ...... 221 Table 89: Displacement source options ...... 240 Table 69: Segment computational options ...... 221 Table 90: Bone options ...... 241 Table 70: Contour style curve options ...... 224 Table 91: Leaf type options ...... 244 Table 71: Mapping style options ...... 225 Table 92: Leaf orientation options ...... 244 Table 72: Frond geometry flipping options ...... 225 Table 93: Global Smoothing anchor point options ...... 245 Table 73: Z-depth of mesh fronds options ...... 226 Table 94: Background rendering style options ...... 249 Table 74: Branch radius options ...... 226 Table 95: General Rendering options ...... 249 Table 75: Branch blending options ...... 228 Table 96: Selection options ...... 250 Table 76: Branch texture coordinates options ...... 229 Table 97: Capture Camera options ...... 251 Table 77: UV coordinates computation options ...... 229 Table 98: Mesh surface options for influence on branch spines ...... 252 Table 78: U coords corrections options for branch shape ...... 229 Table 99: Branch spine collision with mesh surface Table 79: Branch source displacement options ...... 230 options ...... 253 Table 80: Coordinates for displacement mapping ...... 231 Table 100: Spine/mesh interaction options ...... 253 Table 81:Displacement source options ...... 232 Table 101: “Give up action” options ...... 253 Table 82: Bones computations options ...... 233 Table 102: Attenuation options ...... 254 Table 83: Segment length style options ...... 234 Table 103: Attenuation indicator display options ...... 255

Page 22 of 277

I NTRODUCTION

WHAT IS SPEEDTREE?

SpeedTree is a suite of 3D-modeling tools that combines the efficiency of procedural modeling with the flexibility of hand modeling. Since its launch in 2001, SpeedTree has been used in hundreds of AAA and indie games and more than a hundred movies and television episodes. The software has earned a Scientific and Technical Academy Award and an Engineering Emmy, both in 2015. SpeedTree is available in a variety of forms for game development and VFX, with subscriptions available for 4 (UE4 subscription product only), Unity 5, and Lumberyard. SpeedTree includes these major components: The Modeler

A standalone application that uses a combination of procedural and hand modeling techniques to make a wide range of vegetation, from grasses and flowers to cacti to giant redwoods. The Library

An ever-expanding library of VFX and game-ready models that cover a range of biomes and species. The SDK

Available with SpeedTree for Games only, and meant for developers working with a custom or otherwise unsupported engine who need full integration, the SDK delivers powerful instancing, smooth LOD transitions, and amazing real-time wind animations.

WHAT VERSION OF SPEEDTREE SHOULD YOU USE?

Real-time Applications and Games SpeedTree 8 for Lumberyard

If you’re developing your project with , SpeedTree 8 is available under a free license provided by Amazon and activated through the SpeedTree store. Current Available Version: 8.0.0 SpeedTree for Games

Our suite of products for users of custom and otherwise unsupported engines includes the SDK, Library, and Modeler. Contact us at sales@.com for pricing. Current Available Version: 7 (Docs)

Page 23 of 277

SpeedTree for UE4

SpeedTree for Unreal Engine 4 Subscription is available as a $19/mo subscription that allows UE4 free/academic/subscription developers to create trees from scratch or to edit trees purchased from the SpeedTree store. There are no additional royalties or fees, and all trees can be used after the subscription has ended. Note: UE4 Custom users license SpeedTree under different terms. Contact us for more information. Current Available Version: 7 (Docs) SpeedTree for Unity 5

SpeedTree for Unity 5 is available as a $19/mo subscription that allows Unity developers to create trees from scratch or to edit trees purchased from the SpeedTree store. There are no additional royalties or fees, and all trees can be used after subscription has ended. Current Available Version: 7 (Docs) Visual Effects and Architectural Rendering SpeedTree Cinema

SpeedTree Cinema, recipient of a Scientific and Technical Academy Award and an Engineering Emmy, includes the SpeedTree Modeler and the Model Library. The SpeedTree Cinema version of the Modeler includes advanced features such as Animated Growth. Current Available Version: 7 (Docs) SpeedTree Studio

SpeedTree Studio is meant for film and animation projects where the extensive features of SpeedTree Cinema are not required. Current Available Version: 7 (Docs) SpeedTree Architect

SpeedTree Architect is a cost-effective product that combines precise modeling and rendering of realistic trees/plants with a seamless workflow to 3D visualization applications, including many apps commonly used in architectural visualization. Current Available Version: 7 (Docs)

A QUICK WORD ABOUT SPEEDTREE 8

SpeedTree 8 is a significant upgrade from previous versions. Here are some important things to know whether you're migrating from older versions or trying SpeedTree for the first time. Your old models will load in SpeedTree 8

But, you won't have access to many of the new features until you upgrade at least some of the generators. Spine and leaf generators are now considered obsolete; whenever possible you should use the new generators (they're listed in the next item) to do everything these generators used to do. The new generators compute faster (in some cases hundreds of times faster) and have many new modeling features. Also, be aware that some core bug fixes may change the model slightly and growth and wind are handled differently in SpeedTree 8.

Page 24 of 277 There are many new generators

Our approach going forward is to make each generator focus on exactly one thing, and do that thing very efficiently. For example, the functionality of the Spine has been replaced by Branch, Frond, and Cap. Each has a narrower focus and their own place in the generator hierarchy. Here's a complete list of the new generators:

Branch Creates polygonal and subdivision branches (replaces the branch part of Spine and SubDiv).

Frond Places blade or mesh geometry along a branch (replaces the frond part of Spine).

Cap Caps off the end of open branches (replaces the cap part of Spine).

BatchedLeaf Very efficiently creates mesh based leaf geometry (replaces Leaf, computes hundreds of times faster).

Creates mesh-based leaf geometry (also replaces Leaf, slower than BatchedLeaf, but you can node edit the LeafMesh results).

Knot Adds knots, cavities, gashes, and lumps to branch geometry.

Fin Adds small, planar details like peeling bark and fungi to branches. Table 1: New Generators

Full PBR material workflow

The material system and viewport rendering now utilize a Physically Based Rendering system. This means your models will look more like they will in your final application while you work with them, and the materials you make will plug seamlessly into other PBR renderers. There are three new generation algorithms, and you should almost always use them

For regular branch and leaf placement, at least. These algorithms adapt to the model better than their predecessors and typically result in more natural placement of tree parts. The new algorithms are:

Phyllotaxy Natural leaf placement (alternating, opposite, etc.).

Interval Place children at intervals along their parent starting from the end.

Bifurcation Place children at sharp bends in their parent, simulating splits. Table 2: New Generation Algorithms

A single VFX model now contains multiple resolutions

There is a Resolution group on the main toolbar that allows you to pick between four resolutions (High, Normal, Low, Draft). A series of magenta resolution curve properties on each generator let you do things like lower segment count, knock out leaves and twigs, and even swap out whole generators based on the resolution setting. Pick the resolution appropriate for your scene and go from there.

Page 25 of 277 A single VFX model contains all the season variations too

Each of the models created by SpeedTree will have all of the Seasons modeled. Select the season you want by adjusting the season slider on the toolbar. You can select any season, as well as transitions between seasons. When you export, all of the necessary materials will be created and no special shading networks are required in your target application. There are many new branch modeling features

Too many to list and describe here, in fact. Here are some highlights:

Child branches can now continue any parent that doesn't come to a point. This means you can go from the bottom of Extensions the trunk to the tip of a twig with smooth transitions.

Late noise Gives your branches natural bends and jinks without destroying the overall shape.

Splits Split trunks and branches with no UV seam and independently addressable extensions.

Shape Branch structures can now naturally branch out toward a defining shape or mesh. Control

Pruning Eliminate branches that point too far down or up, cross back into the interior, or touch the ground. Table 3: New Branch Modeling Features

New mesh editor

Creating meshes for your leaf maps has never been easier with the new Cutout Editor. In the new system, just click points to create the mesh you want and use it on your model right away, no need to leave the app. Animated forces

The strength of Forces can now be animated and the results exported as a cache. Use this feature to simulate external events like explosions or scene interactions. Length and radius styles are gone

…at least on the new Branch generator. Length and radius (both values and segments) are now always computed as the absolute value plus the percentage values. New collision system

Leaf collision now happens in the background after every edit. If you load an old model and you have too many leaves, take a look at the new collision settings. New LOD system

The LOD system has changed as well. The new system makes decisions based on the each component's contribution to the model silhouette. This approach means the first shot is usually very close and tweaking the results is much easier. New exporting system

Okay, so now you've got a better model in SpeedTree. Good news! Models Export faster and there are more exporting options than ever before. Exported models integrate seamlessly into dcc apps as well. No more complex shading networks, even for seasons!

Page 26 of 277 LICENSING

. Trial Licenses . Node-Locked . Floating Licenses Licenses

Licensing information can be viewed or edited by choosing the “Edit license data” menu item from the Help menu in the SpeedTree Modeler. The Modeler is either licensed to a single machine (with a node-locked license), or it receives licenses from a license server (with a floating license). Either type of license may be bought in the SpeedTree Store. The SpeedTree Modeler utilizes RLM from Reprise Software, Inc. to manage all licensing. They provide an RLM End-User Manual that may be useful if you are having licensing issues. Also, please contact [email protected] if you are having trouble licensing the SpeedTree Modeler.

Figure 1: Licensing

Trial Licenses

When you first run the SpeedTree Modeler, you will be in trial mode. This mode lets you use the Modeler, but it will only last a few days so you can try out the Modeler before you buy. Exporting meshes is limited by having random polygons removed. Exported animations are also limited to 100 frames. In the event that you have not had adequate time to evaluate the application during its free trial period, it is possible to request an extension. Please contact [email protected] for a trial extension. Node-Locked Licenses

Node-locked licenses are the simplest and quickest way to get the SpeedTree Modeler up and running. A node-locked license will only work on a single machine. Once a license has been bought on the SpeedTree Store, you will need to request a key for use on your machine. Click the “Request a license for this machine” button to submit a license request to IDV. Be sure to fill in all the information, including the order number from the store, for the fastest processing. You will receive an email containing a license string. Paste that string into the box provided and click “Apply License”.

Floating Licenses

Floating licenses work by running a license server on a machine designated to be the host and then having each installation of the Modeler look to that host to get a license. Please have someone from your IT department contact [email protected] to set up a license server. We will walk you through the process, which involves these steps: 1. Select a machine that will be the license server for your company. 2. Download the “End User Bundle” that matches the platform of your license server from Reprise Software (http://www.reprisesoftware.com/support/end-users.php). 3. Run the command “rlmutil rlmhostid”. Email the hostid(s) along with the name of the license server to [email protected]. 4. You will receive two files from IDV: “idvinc.set” and “customer.lic” (where customer.lic is a license file unique to your company). 5. Place these files in the “End User Bundle” folder and run the rlm binary. The license server is now running. 6. Once the license server is running, all that remains is to make each installation of the SpeedTree Modeler know where to get its license. The easiest way to do that is to copy the .lic into the folder where the Modeler executable resides. Alternatively, you can copy the contents of the .lic file into the “Enter license code from IDV here:” box in the Modeler. The Modeler uses the first line of the file to find the license server and check out a license. 7. To administer the license server, open a browser and enter “myhostmachine:5054” in the address bar. This will open the license server's embedded web interface for checking license usage, license server status, and all other administration utilities. A detailed description of license server management can be found in RLM's end- user manual.

Note: To force usage of a specific port on the RLM server, you can do so by adding a port number to the ISV line in the license file. For example:

HOST your_hostname your_hostid ISV idvinc port=specific_port

Page 28 of 277

Q UICK S TART G UIDE

. Activating Your Free License . Preparing Your Lumberyard Scene . How Does It Work? . For More Information

BASIC WORKFLOW FOR LUMBERYARD

The SpeedTree Modeler, which runs separately from Lumberyard, offers procedural and hand modeling tools that allow both efficiency and precision.

Note: SpeedTree for Lumberyard is compatible only with Lumberyard 1.9 and later.

Note: Files exported by the SpeedTree for Lumberyard Modeler (.CGF) will not work in CryEngine.

Activating Your Free License

The SpeedTree 8 for Lumberyard Modeler is available with a free license provided by Amazon. In order to use the Modeler you will need to activate your free license on the SpeedTree Store. To activate your license:

1. Navigate to the SpeedTree for Lumberyard Product Page. 2. Select “Activate License” To add the free product to your account. 3. Complete the checkout process, creating a SpeedTree Store account if you do not already have one. 4. You will now be able to login to the SpeedTree Modeler with your SpeedTree Store Credentials.

Note: Only one license can be activated per SpeedTree account, and only one copy of the Modeler can be used at a time. If your team requires multiple seats of the SpeedTree for Lumberyard Modeler, you will need to create multiple SpeedTree accounts.

How Does It Work?

SpeedTree 8 for Lumberyard can open SpeedTree files (.SPM) and export them in a format specific to Amazon Lumberyard (.CGF). It’s important to note that SpeedTree 8 for Lumberyard will not export meshes outside of the .CGF format and is incompatible with other game engines, including CryEngine.

Page 29 of 277 Using the SpeedTree Modeler is a three step process: 1. Create or purchase a SpeedTree model: Whether you use models from our library or create them from scratch using the SpeedTree Modeler, you’ll need a model to get started. Models consist of the SpeedTree files (.SPM) and the textures and component meshes (.OBJ, .FBX) associated with it. Click here to learn more about creating models in SpeedTree. 2. Export the model as a .CGF: SpeedTree models are exported directly into your Lumberyard project. Once they’ve been exported into the project, the asset processor will recognize the .CGF file and process it accordingly. SpeedTrees can be exported with up to 3 LODs with vertex painted colors for wind added procedurally. Once you’ve opened the model in your scene, you will need to enable the wind on the tree you’ll need to turn bending to a value greater than 0. 3. Place models in your scene: Once imported, SpeedTree models can be placed or painted like any other static mesh. Click here to learn more about placing vegetation in Lumberyard.

Note: Due to a current bug in the Lumberyard Editor, if the tree is re-exported using a different export method (i.e. a change in what is atlassed), Lumberyard will need to be restarted as the .MTL file can't be updated while the Lumberyard Editor is running.

PREPARING YOUR LUMBERYARD SCENE

After exporting your SpeedTree to your project, there are key elements that will help make your scene look great. Lighting

By default, new levels in Lumberyard don't have any global illumination enabled resulting in black shadows. To add diffuse to the shadows in your scene you will need to either enable Voxel Global Illumination or add an environment probe.

Figure 2: A Sample Conifer with-out Global Illumination enabled

Page 30 of 277 To enable voxel global illumination

1. In the Rollup Bar, on the Terrain tab, choose Environment. 2. In the Environment panel, under Total Illumination v2, check the parameter “Active” to Activate voxel GI for the level.

Figure 3: A Sample Conifer with Global Illumination enabled

Enabling Wind

SpeedTree leverages Lumberyard's native wind mechanism for the Lumberyard compatible versions of the Modeler. This wind can be previewed and edited inside of the SpeedTree for Lumberyard Modeler. (Lumberyard Wind) When you export the tree for Lumberyard, all of these settings except “Bending” will be imported. There is no mechanism for importing the main bending value via .CGF file, so you'll need to enter your “Bending” value manually in Lumberyard. “Bending” and other vegetation parameters can be accessed in the Terrain, Vegetation panel in Rollup Bar for a previously selected vegetation object. You can adjust parameters for one or more selected objects. The “Bending” Value can be

Page 31 of 277

Figure 4: “Bending” Values

FOR MORE INFORMATION

. Editing Wind In SpeedTree for . Placing Environment Probes Lumberyard . Voxel-based Global Illumination . Adding Terrain Vegetation (SVOGI)

Page 32 of 277 K EY C ONCEPTS.

MODELING APPROACH

The SpeedTree modeling approach is a blend of procedural modeling and manual editing. Vegetation models are typically too complex to model efficiently by hand, so the backbone of the modeling system is procedural. Once you have the model roughed out using procedural techniques, you can fine-tune it with a combination of curve editing and directly manipulating each part of the model. Procedural Modeling

Models are built by creating a hierarchy of objects that create geometry. These objects are called generators. Each generator creates one or more components of the model based on its properties. These components are called nodes, and each node makes a specific geometry type like branches, leaves, or fronds. The image below shows a simple generator hierarchy and the corresponding model.

Figure 5: Simple generator hierarchy and corresponding model

The hierarchy of generators on the left is created in the Generation Editor. Notice that a single generator may create one node (in the case of the trunk) or many nodes. Now, let's answer some common questions about the procedural aspect of SpeedTree modeling. How does it know how many boughs to make?

Each generator has a group of Generation properties. These properties control how many nodes are made by the generator, and where they go. There are many different ways to do this, and getting these values correct is usually step one when you add a new generator. How does it know to only put roots near the bottom?

Two of the Generation properties are called “First” and “Last.” All nodes appear somewhere between these two percentages on their parent. In this case, “Last” on the roots is a low value.

Page 33 of 277 Why aren't all the leaves the exact same size?

Many modeling properties have a variance value. This value is randomly generated per node and is added to the generator value. In this case, the “Size” property of the “Leaf Mesh” has a value of 2.0 with a variance of 0.5. Can I make branches near the tip of the parent shorter than those near the base?

Sure. That is accomplished by editing the parent curve of the length value. Editing parent curves is the best way to make the geometry changes based on where the branch is in the anatomy of the model. Manual Editing

Editing properties on generators is the best way to make general edits to the model; however, you can switch to node editing mode to select and edit individual components. In this mode, property edits are applied only to the node selected, thus allowing you to fine-tune any property for that node independent of other nodes created by the same generator. Now, let's answer some common questions about manually editing a model. When I select a node, all of the property values are 0.0. Why?

Node edits are offsets to the value it was already given by the generator. So, 0.0 means “just use the generator value”. Any values that aren't 0.0 are added to the generator value before the node is computed. Will I lose my edits if I go back and change the generator value?

No. The edits will remain in place, even if you go back and edit the generator further. The only time you'll lose a node edit is if you reset it yourself or the node no longer exists due to changes to the model. Can I just do everything with node edits?

You can, but the model won't randomize very well and you're losing the power of the procedural tools designed to make modeling faster. You're typically better off to model procedurally as long as you can and save the node edits for the end. Can I place and draw branches by hand?

Sure. Check out the hand drawing page for instructions on how to do that.

GENERATORS VS. NODES

. Generators . Nodes . Editing

There are two primary methods to editing a tree's anatomy: Generators and Nodes. Understanding the distinction between these will help you edit a tree quickly and efficiently. Generators

Procedural modeling involves editing a variety of parameters and their variances that govern the creation of a tree. Generators are the objects that provide this level of . Generators are shown in the Generation Editor. This is where you set up the major hierarchy of your tree. Leaves grow off branches that grow off the trunk, for example. When you select a generator, its properties are shown in the Property Bar. Edit one of these properties, and you are modifying all of the individual pieces of the tree that this Generator makes, all at once. See the Generators section for more information. Nodes

Nodes are what a Generator makes. For example, a Branch Generator can make many branches on the tree, but each branch is a single node.

Page 34 of 277 Editing nodes directly allows you to adjust individual parts of a tree, to fine-tune what the procedural generation accomplished. This makes SpeedTree very “art-directable,” since an artist is able to leverage procedural generation to get close to what they want very quickly, but still be able to modify the tree afterwards in exactly the way that they want. Property edits to Nodes are offsets to the value created by the Generator. Because of this, you can edit a Node but still be able to edit a Generator. For example, you wish one branch to be longer, so you edit the length property of that one branch node. But then you decide you want all the branches to be longer, so you edit the Generator similarly. The one branch you edited keeps its offset and stays longer.

Note: Randomizing parts or all of a tree will wipe out any relevant Node edits.

See the Nodes section for more information. Editing

The distinction between Generators and Nodes is so important that there are two different editing modes in the Modeler for them. You switch between Generator Mode and Node Mode using the appropriate buttons in the Tree Window.

Note: You can also hit the “Tab” key to switch between Generator and Node mode.

In Generator Mode, when you select something in the Tree Window, you are selecting the Generator. In Node mode, you will be selecting an individual Node in the tree instead. This is apparent with how selection is shown in the tree (see below). When you select a Generator in the Generation Editor, you will always be put back into Generator Mode.

Figure 6: Generator Mode vs. Node Mode

Page 35 of 277 Generators

Procedural modeling involves editing a variety of parameters and their variances that govern the creation of a tree. Generators are the objects that provide this level of procedural generation. Generators create and control groups of Nodes, which comprise the geometry of tree model. Editing the values and variances of the Properties of the Generators and controlling their hierarchy creates the procedural generation of the tree. Generation Editor

The Generator Editor is where you edit the basic structure of the tree. Generators are connected here, and the tree's procedural structure can be edited by changing these connections. Generator Types

There are several types of generators that create different types of geometry in the tree.

Main

Tree Generator Every SpeedTree has exactly one Tree Generator, which is where you set global settings for the tree.

Branch Generator The Branch Generator is responsible for generating trunks, branches, and roots. It can also be used for hand-

drawn branches.

Leaf Mesh Generator The Leaf Mesh Generator is responsible for any type of leaf geometry or Cluster.

Batched Leaf Generator On VFX trees with many thousands of leaves, this Generator forgoes individual node editing for orders-of- magnitude faster computation.

Frond Generator The Frond Generator will create a mesh deforms along a parent branch spine. This is useful to make palm fronds or ferns. Table 4: Main Generators

Page 36 of 277 Decorators

Decorators are a way of spawning exterior parts to give a tree interesting and unique features.

Cap Generator The Cap Generator closes off open-ended branches.

Knot Generator The Knot Generator creates an extra piece of geometry attached to a branch, such as a knot, lump, or cavity.

Fin Generator

Fin Generators create a thin flap of geometry that can be used for fungus, moss, or other things that hang off a trunk or branch.

Shell generator

A Shell is a special kind of Branch that sits on top of the parent branch, allowing you to wrap the parent in moss, algae, or low- vines. Table 5: Decorator Generators

World Building

Zone Generator The Zone Generator serves as a parent for other objects to grow off, similar to the Tree Generator.

Proxy Generator The Proxy Generator creates stand-in objects called “proxies” that are placed on a Zone Generator as part of

World Building. Table 6: World Building Generators

Nodes

Nodes are what a Generator makes as part of procedural modeling. Every single individual piece of geometry in the tree is a single node. For example, a Branch Generator can make many branches on the tree. Each branch is a single node.

When to Edit Nodes

Similarly to how you can edit Properties on a generator, you can also edit properties on a node. Editing nodes directly allows you to adjust individual parts of a tree, to fine-tune what the procedural generation accomplished. This makes SpeedTree very “art-directable,” since an artist is able to leverage procedural generation to get close to what they want very quickly, but still be able to modify the tree afterwards in exactly the way that they want. Moving branches around, removing leaves in certain spots, adjusting the segments on a branch, and even overriding materials are different types of node edits you can perform on a tree.

Page 37 of 277 How to Edit Nodes

The distinction between editing generators and nodes is so important that there are two different editing modes in the Modeler for them. You switch between Generator Mode and Node Mode using the appropriate buttons in the Tree Window.

Note: You can also hit the TAB key to switch between Generator and Node mode.

In Node Edit Mode, when you click in the Tree Window to select something, you will be selecting that individual node. The Property Bar will show the properties for that node, not the generator. Types of Node Edits

Property edits to nodes are offsets to the value created by the generator. Because of this, you can edit a node but still be able to edit a generator. For example, you wish one branch to be longer, so you edit the length property of that one branch node. But then you decide you want all the branches to be longer, so you edit the generator similarly. The one branch you edited keeps its offset and stays longer. Gizmo

When a node is selected and the Art Director is shown, you will be presented with a special node editing gizmo that lets you intuitively control major aspects of the thing selected. If you hover the mouse over the various controls, you will be presented with a tooltip of what they do. Branches have controls for position, start angle, radius, length, etc. Leaves can edit position, rotation, and various deformations. Delete

Deleting a node is as easy as selecting it and hitting the DEL or BACKSPACE key on the keyboard. Nodes that are deleted will remain gone even when values on the generator are changed. Offsets

Other Property edits on the node are offsets to the value the generator calculates. For this reason, when you select a node for the first time, you will see that all the property values are . If you change a property, this offset will be added to whatever value the generator calculates before ultimately creating the geometry. For example, you wish one branch to be longer, so you edit the length property of that one branch node. But then you decide you want all the branches to be longer, so you edit the generator similarly. The one branch you edited keeps its offset and stays longer. Curve offsets work similarly for the few properties that show a Profile Curve in Node Figure 7: Gizmo Edit Mode. This curve is added to the generator's before the geometry is calculated.

Clearing Node Edits

You can clear all of the node edits for a particular generator by choosing the "Clear Node Edits" option in the menu when you right click a generator in the Generation Editor. This will also bring back any nodes that were deleted.

Note: Randomizing parts or all of a tree will wipe out any relevant node edits, as well.

Page 38 of 277 PROPERTIES

Selecting an object in the Generation Editor or the Tree Window shows a list of its properties in the Property Bar. These properties are the primary way to edit these objects and where you will make most of your edits while creating a model. Objects like the Light or Fan have regular, single value properties like check boxes and numbers. Number properties will have sliders (if their range is clamped) or thumbwheels (if the range is not) for quick editing. Properties of generators and nodes, however, can be significantly more complex as explained below. Generator Properties

Because generators distribute properties across multiple nodes, they often have more than one value to manipulate. Doing so provides the mechanism by which nodes can do things like be shorter at the top than the bottom or just have slightly different values of a property for the sake of random variation. The following image shows a typical generator property.

Figure 8: Typical Generator property

From left to right the components of the property are the name, the graphical editing device (slider or thumbwheel), the value, the variance, the parent curve, and the profile curve. Node Properties

When a node is selected in node editing mode, the property represents an offset to the value produced by the generator. Similarly, the profile curve on the node (if applicable) is added to the generator profile curve. Use node properties to make node-specific adjustments to individual tree components. These adjustments remain in effect until the node is reset or deleted. Changes to the generator properties do not modify these offsets. Curves

Efficient modeling of trees with the SpeedTree Modeler requires an understanding of curves and how to use them effectively. You can generally think of curves as a “volume control” on your tree properties. The static value of the property, either the default or one you've entered yourself, can be thought of as the maximum volume. The vertical position of the point on the curve then represents the percentage of that maximum, and the horizontal position of the point on the curve determines where that value of the property will be applied. For more information about standard curve shapes and how to adjust curves, please see the Curve Editor page. Below you will find a detailed explanation of each of the several curves that SpeedTree employs. Parent Curves

Parent Curves are the green curves associated with many tree properties. They distribute values based on how far along the parent each child node occurs. This lets the user make parts of the tree behave or appear differently based upon where on they are growing on the tree. This is a simple and powerful mechanism for modeling realistic foliage behavior, as no two branches are ever exactly alike on a real tree. Green curves are special in that they have a setting to fine tune their results: Parent Level. This setting is located on the Curve Editor toolbar. While grasping the concept and importance of Parent Level might be hard initially, once it is figured out the process of tree modeling will seem much more intuitive overall. Note: The Cascade setting available in previous versions of SpeedTree has been abandoned in favor of a more robust calculation of the “Parent Level”.

Note: The effect of editing the parent curve for length in the images below. In the second picture, the curve makes branches near the bottom of the tree longer than those near the top.

Figure 9: The effect of editing the parent curve for length in the images above

Parent Level

Supposing you had a tree with four levels of generators: Tree, Trunk, Big Branches, and Little Branches. (Tree #1) What if you wanted to adjust the length of the little branches so that they are smaller at the ends of the big branches than they are at the base? Then you would merely edit the length curve without changing the parent level, as the automatic behavior of curves is to select the direct parent of the current generator. (Tree #2) But supposing you wanted the branches to get smaller toward the top of the tree rather than toward the end of the branches? You need to change the parent level of the curve to the Trunk rather than the Big Branches, which you do in the combobox in the upper left corner of the curve window. (Tree #3) What if you wanted the Little Branches to get smaller both toward the top of the tree and toward the end of the bigger branches? New in SpeedTree 8 is the ability to compute compound curves. So in the curve editor, you can adjust the curve for multiple parent levels. (Tree #4)

Page 40 of 277

Figure 10: Example of various Generators' effects

Page 41 of 277 Profile Curves

Profile Curves are colored light blue and affect each node in a generator the same way. This makes them work well with parent curves. Parent curves govern the group as a whole while profile curves are applied the same to each member of that group. The Branch Skin Radius property provides a helpful example. If the radius of each branch remained constant, they wouldn't look like natural branches, but instead like logs. In real life, branches on a tree taper from base to tip. Branches are told how to taper in the SpeedTree Modeler with a profile curve. The profile curve in this case is rotated around the center of the branch with the left side of the curve corresponding to the branch base and the right side of the curve corresponding to the branch tip, as in the example below.

Figure 11 Curve set to preset ‘Droop' shape Branch radius reflecting 'Droop' shape

Figure 12

Curve set to custom shape Branch radius reflecting custom

Note: Profile curves work down the length of the node. Each node of that generator will be affected equally.

Resolution Curves

Resolution Curves are curves applied as you change the Resolution of a VFX tree. For instance, you can decrease length segments on branches as you move to lower resolutions. The Curve Editor will look slightly different, indicating from where in the curve the resolution levels are sampled.

Page 42 of 277

Figure 13: Example of Curve Editor indicating from where in the curve the resolution levels are sampled

Distribution Curves

For some properties, instead of a parent curve, there may be an orange “distribution” curve. Like parent curves, distribution curves govern a group of nodes all at once. Distribution curves differ in that they control the spread of a fixed number of nodes. If you look at the example on the right, you can see the effect of a distribution curve. The curve on the bottom has been set so that the fewest level 1 branches will occur around the middle of the tree, packing most of them near the base and tip of the trunk instead of evenly, as is the case with the top curve. Pruning Curves

There is exactly one pruning curve per generator. The pruning curve will remove nodes wholesale based on their positions throughout the tree. LOD Curves

Dark blue curves are LOD (level of detail) curves, and only occur in LOD property groups. LOD curves govern the progression of the LOD sequence for each LOD property. In most cases, a linear progression is best suited, so that each LOD step simplifies the tree about the same amount. At times, however, it is beneficial to force a particular LOD state either earlier or later in the sequence than would occur linearly. This is achieved via LOD curves. With LOD curves, the left side of the curve always corresponds to the highest LOD state (1.0), and the right side always corresponds to the lowest LOD state (0.0). This lets you have some play with the results of LOD. If your LOD step is too aggressive, move the right endpoint up a little bit to soften the effect at lower LOD's. Editing the highest LOD state with LOD curves

Inversely, the left endpoint can be adjusted to alter the highest LOD state. Use this method with care, however, since these kinds of edits can easily convolute a tree setup for users who are not familiar with LOD curves. With that in mind, editing the highest LOD state does hold a great deal of power for advanced users.

MESHES

While the SpeedTree Modeler generates much of the geometry in a tree, using pre-made meshes in certain places can greatly enhance the aesthetics and rendering speed of a tree.

Page 43 of 277 Mesh Assets

Meshes are managed in the Mesh Asset Bar. This is where you can import meshes, create whole new cutout meshes, and modify parameters about meshes, such as orientation and wind information.

Cutouts

A quick and easy way to make a mesh without ever leaving the SpeedTree Modeler is to use the Cutout Editor. This tool can help you make a mesh for a particular material with very little extra, empty space around it. Extra triangles Figure 14: Mesh Asset Bar can be added to make a mesh better suited for deformation. When modeling a low-detail tree, Mesh Anchors can be very useful. This feature of the Cutout Editor lets you pinpoint exactly where children will be attached. This can help you create a very “full” looking model without many

Figure 15: Cutout Editor triangles. Importing Meshes

If you wish to have more control, you can model a mesh yourself in any third-party tool, such as or 3ds Max. The SpeedTree Modeler can import meshes in OBJ or FBX formats. In special cases, you can even export a mesh from SpeedTree, and import it back into a different tree. SpeedTree can be used to make flowers, pine cones, etc. that may then be placed in another tree. Mesh LOD

In many cases, multiple levels of complexity are needed for a single Mesh asset. You can import three mesh levels in the Mesh Asset Bar for use with Level of Detail in a real-time model, or for use with Resolution.

Collections

A more advanced use of meshes is when dealing with Collections. Collections gather parts of the tree that have already been computed, which can then be used as a mesh elsewhere. Getting vines to wrap around the branches of a tree is a great example of when to use Collections. Using Meshes

Meshes can be used in many places on a tree. If you are unsure how to accomplish what you want with a mesh, first try clicking the drag/drop icon in the Mesh Asset Bar and dragging it into the Tree Window. The Mesh Wizard dialog (shown to the right) will appear, asking how you want to use the mesh. Leaves/Fronds

Meshes are very useful when dealing with leaves or fronds. Just making a Cutout around your material's opacity channel can make leaves render more optimally. Even when you use a mesh, each leaf can be deformed individually, so your leaves won't all look the same. Meshes can also be used to make fruit, flowers, buds, thorns, or any sort of small piece of a tree. Figure 16: Mesh Wizard When doing low-poly modeling, Cluster materials with cutout meshes may in fact make up

Page 44 of 277 the bulk of your tree, especially when using Mesh Anchors to place the children. Bushes may be made entirely in this fashion, with no actual branches. Mesh Forces

Mesh Forces are a way to use a mesh to influence a tree. Parts of a tree can be attracted to, repelled by, wrapped around, or cut short by a mesh. Roots can be wrapped around a rock, vines can hang down from a branch, and plants can grow up a wall, for example. Setting a mesh as a container area on another Force lets you influence the Growth of a tree as it moves through these different areas. Props

You can always place a mesh in the scene for use as a prop or background to your tree modeling. This would also be done using a Mesh Force, but you don't have to actually have it affect the tree in any way. You may apply a material to it so it looks like a real object in the scene.

Note: If you want the mesh to be part of the tree and export with it, tick the “Include in Model” property on the Mesh Force.

Zones/Terrains

If you apply a mesh to a Zone, you can have things “grow” off it. The Tree Generator at the base of every tree is a simplified version of a Zone. Terrains for World Building are a mesh terrain applied to a Zone, with Proxies added procedurally to it. Trunks

Creating a tree with a custom-modeled mesh trunk is often done for “hero” trees. This is accomplished using a Zone, as well. You would model your trunk in some other software such as Autodesk Maya or Pixologic ZBrush, import it, create a Zone using it, and then add procedural parts of the tree on top of it. You probably will need to use Mask Assets to control how/where the procedural parts grow off of the trunk.

Page 45 of 277 FORCES Table 7: Forces Forces are an additional level of manual control you can have over the procedural generation of a tree. They are objects that you place into a scene that allow you to manipulate the shape of branch spines. There are many types of forces, each with different actions and capabilities.

Direction Branch spines grow in the direction that the arrow points. Magnet Branch spines converge on a single point at the center of the force. Gnarl Branch spines twist around a world-space vector that is determined by the force's rotation. Twist Branch spines twist along their local up vectors and are altered by the force's rotation. Curl Branch spines curl inward on themselves in a direction determined by the force's rotation. Planar Branch spines grow along a 2D plane determined by the force's rotation. Return Standard and subdivision branches will return to their original growth direction. Use this to keep wildly disturbed, jinked, twisted, curled, or gnarled branches under some control. Season light Leaves change Season sooner based on the how much they are growing toward the position of this force object. Season wind Leaves that fall on the ground due to Season are swept in the direction of the arrow. Knockout

Anything growing in the direction of the arrow will be “knocked out,” or removed. The “Strength” property controls how sensitive it is. Mesh Branch spines grow toward or around an arbitrary mesh object. See Mesh Forces for more information.

Page 46 of 277

Figure 17: Force manipulating the shape of branch spines Adding Forces

To add a force to the scene, right-click in the tree window or use the “+” toolbar button and select “Add force.” Forces can also be added from the Generation Editor's Forces icon. Since forces are world-space objects and not bound to the tree hierarchy, they can be transformed (moved, rotated, or scaled) with the gizmo in the Tree Window. To delete a force, simply select it and press the DEL or BACKSPACE key. Force Types

There are several types of forces available, each having their own unique effect on the tree shape. Any force can have its type changed by selecting a different type on the force's properties. The available types are: Applying Forces

Forces are not always applied to every Generator. The force must be enabled in the Force Properties for it to have any effect. Due to this, one force can be set to act on the trunk (e.g., pull the tree left) and a different force can be set to act only on its child branches (e.g., pull the child nodes right).

Note: If a generator is selected when you add a force, that generator will automatically have the new force enabled.

A generator's force properties also have values and curves that let you adjust how strong a particular force is when it affects the generator. This works in conjunction with the force's "Strength" property. Attenuation

Since forces are world-space objects, they can be freely moved around in the scene with the transform gizmo when they are selected. By enabling the "Attenuation" properties, the area of effect of the force will be limited to a radius around the force object. This lets you have a force effect on only a very specific part of the tree rather than the whole thing.

Page 47 of 277

Figure 18: "Attenuation" property of Force enabled

Note: You can also limit a force to a certain area defined by a mesh by using the “Container force” properties. See the Mesh Force documentation for more information.

Mesh Forces

A Mesh Force behaves like other Forces you add to a scene, except that its shape is a Mesh. This shape can affect the area in which the force is applied, but also what happens when things are inside, are outside, or collide with the mesh. You might use this function, for instance, in making vines grow on a fence, roots growing into a rock, or a tree nestled into a structure.

Figure 19: Mesh Force making vines grow on a fence Adding Mesh Forces

Mesh forces are just a combination of a Mesh and a Force that lets you do more complicated things than would otherwise be possible with a non-mesh force. You can add a mesh force directly through one of the methods for adding regular forces. Or, you can switch an existing force to a mesh force by changing the "Force:Type" property to “Mesh.” To apply the mesh asset you want, change the “Mesh:Mesh” property or drag and drop the asset onto the force in the Tree Window. This can be a normal mesh asset you imported, or it can be a Figure 20 Collection if you want the mesh to be generated by other parts of the tree.

Page 48 of 277 Note: For a shortcut to add a mesh force, drag and drop a mesh asset into the scene. The mesh wizard that pops up has option for creating a mesh force.

Mesh Actions

A mesh force has properties for controlling what effect it has on branch spines, either attracting, repelling, or taking no action. There are also controls for what happens when a branch spine collides, or touches, the mesh force. You can do things such as obstruct the branch, prune it, or even remove it entirely. Including Mesh in Model

Sometimes you may want a mesh to actually be part of the tree. For instance, a tree grows among some rocks that are added as a mesh force, and you wish to export the whole thing as a mesh. For this, you would enable the “Mesh:Include in model” property and set a Material Asset to the mesh force. This mesh force will then render in the Tree Window similarly to other parts of the tree, and it will be included on export. Containers

One additional feature that mesh forces have is they can be used as “containers” for any of the other Forces. You can indicate an area to be included or excluded for a particular force by setting the corresponding properties in the “Container Force” property group to the name(s) of the mesh forces you wish to use as containers. In the picture to the right, there are four forces: two direction forces and two mesh forces with a sphere mesh indicating the area of effect for the corresponding direction force. The branch is affected by the direction forces in a very precise manner. How To . . . Figure 21: Container Force property . . . Wrap Roots Around a Rock

Import a rock mesh and create a mesh force from it. This mesh force should have an attract action and an obstruct collide action. Then, make the root generator(s) of the tree react to the rock mesh force. As you move the rock mesh force around, the roots should dynamically update to wrap around them. If you wish the rocks to be included in the model, enable “Include in Model” and set a material on the mesh force. . . . Grow Vines Up a Tree

Make an empty mesh asset and make it a Collection. Set the trunk and major branches to contribute to this collection. Then, make a mesh force from this mesh and make sure it lines up exactly with the tree (probably by resetting the translation to (0,0,0)). Set the force action to attract and the collide action to obstruct. Enable this mesh force on the vine generator to have the vines wrap around the tree. The addition of a direction force to “push” the vines up the tree may be necessary. . . . Prune a Bush

For complicated pruning, a mesh can be imported. But usually, a flat plane is all that is needed, and this can be created in the Cutout Editor. Make a mesh force from this with no force action and a prune collide action. Enable the force on all of the branches of the bush. As you move, rotate, and scale this plane in the Tree Window, you will be slicing parts of the model off. . . . Avoid Obstacles

A mesh force of a building or other obstacle can be used with an obstruct collide action so the tree grows around it. Sometimes a little attract/avoid force action can get it to look more realistic, depending on the situation. . . . Direct Growth

You may have a plant that you wish to direct Growth on very precisely, to have it grow up a wall, then cascade over the other side, for instance. For this you would use mesh forces as containers on direction forces that push the plant in various directions as it grows longer.

Page 49 of 277

PHYSICALLY BASED R ENDERING

SpeedTree 8 has added a new physically based renderer (PBR) in the Modeler viewport. PBR attempts to more accurately model the way light works in the real world, allowing you to use measured surface values of real-world materials and have them look correct in any lighting situation. With this change, the material settings and lighting setup have been changed from previous versions of SpeedTree.

Figure 22: New physically based renderer (PBR) Additional Reading

The field of physically based rendering is always evolving, and there is much research into making highly realistic, but fast, algorithms. The following pages include information on the ideas behind PBR, why things work the way they do, and how to feed a PBR art pipeline successfully.

PBR Materials

Physically based rendering requires feeding the lighting equation with more real-world values. This means that materials in SpeedTree 8 have different map slots than previous versions. It is also beneficial for these maps to be within specific ranges to accomplish the best reaction of the material in all lighting scenarios. Maps

Color

This defines the intrinsic color of the material, or what it would look like under a white light with no reflected/specular light. You may see this referred to elsewhere as the “albedo.” In terms of simpler lighting models, it is the diffuse color of the material.

Note: To match real-world materials, these values must fall within a range. That is, in the real world there is no such thing as a pure white or pure black material. Thus, we have added a render mode (Albedo Check) that allows you to make sure your values are within range quickly and easily. In this mode, red = too high and blue = too low. Otherwise it shows the luminance.

Page 50 of 277

Figure 23: Color Maps (Albedo Check)

Opacity

This map is the mask, or cut out of your material. White is opaque; black is transparent.

Figure 24: Opacity Mask - white is opaque; black is transparent

Normal

The Normal map is used to provide surface detail by perturbing the facing direction of each individual pixel. SpeedTree expects tangent-space normal maps. Normal maps with higher contrast produce sharper, more pronounced changes in lighting.

Figure 25: Normal Map - used to provide surface detail by perturbing the facing direction of each individual pixel. Gloss

Gloss is the representation of how rough the surface is at a micro level. Sometimes it is also called “smoothness.” If you are used to using roughness, Gloss is the opposite of roughness.

Page 51 of 277 All surfaces in the real word have some sort of glossiness to them. When light bounces off a surface, how much it is scattered is controlled by how glossy it is. With a low glossiness value, the light that is reflected is diffused by the microsurface, and thus the light reflected into the eye/camera (the specular light) will be large, blurry, and dull. With a high gloss, the specular highlights will be smaller, sharper, and brighter.

Figure 26: Gloss - representation of how rough the surface is at a micro level or "smoothness"

Figure 27: Many "non-glossy" surfaces often have a decent amount of gloss Even a very dull bark still has specular light bouncing off the surface. Often, surfaces you think of as “not glossy” still have a decent amount of gloss to them. This light is just diffused a great deal by having a lower gloss value.

Figure 28: Low Gloss vs. High Gloss Specular

The Specular map is used to scale the amount of light reflected off a surface. In the real world, this varies only slightly, so in most cases it should be left at the default value (0.75 gray). On fully metallic surfaces, this map is ignored. Occasionally for very rough surfaces, you can use a “crevice map” in the Specular map to darken the cracks in the surface, as they would not reflect as much light as a flat surface.

Page 52 of 277 Metallic

This map controls how “-like” your surface will be. Non-metals have values of 0, metals have values of 1. Values between 0 and 1 are rare, and reserved for things like rusty or corroded metal. When set to 1, diffuse light becomes black and specular light is now colored with the Color map. The Specular map is ignored on metals. For almost all tree materials, metallic should be left at 0.

Figure 29: Metallic - for almost all tree materials, metallic should be left at 0

Subsurface

Subsurface light is light that passes through the material and exits on the other side, common for leaves and flowers. The thinner, brighter, and more porous a surface, the more subsurface light you will want to have shine through the back side.

Figure 30: Subsurface light on a sycamore tree In SpeedTree, subsurface light is controlled by two separate maps - Subsurface Color and Subsurface Amount. In many exports, these maps are combined into one texture. But, having them separate makes it much easier to edit the color and amount separately.

Figure 31: Subsurface light is controlled by two separate maps - Subsurface Color and Subsurface Amount

Page 53 of 277

Note: Similar to the Albedo Check render mode, there is also a Subsurface Check render mode, which lets you see if your colors are within good ranges for PBR materials. It is normally okay to have values here that are brighter and more saturated than those in the Color map, but keeping it in range allows for more realistic subsurface light.

Ambient Occlusion (AO)

Ambient occlusion helps to simulate the self-shadowing that happens within corners and crevices of a model or surface. Basically, it is a measure of how exposed a point is on a surface. In use, it will darken the ambient light and slightly darken diffuse light.

Note: SpeedTree can render a per-vertex ambient occlusion value. You can use this map to provide the same effect on a much smaller scale. The final AO value used during rendering will be the multiplication of the two, so be sure that this material map is mostly white so as not to cause an over-darkening of the tree.

Figure 32: Per-vertex ambient occlusion values - use this map to provide effects on a much smaller scale

Custom

The Custom map is not used in any of the render modes we supply with the SpeedTree Modeler. However, the Custom map will enable you to write your own render mode. It is also exported with the tree in the mesh formats, and it is available during texture packing when exporting game formats. You can use this map to pack any other extra data you need that can't be placed elsewhere. Lighting Directional Lighting

There is one global light source in the Modeler, which can be assumed to be the sun since you are modeling a tree. Gizmo Figure 33: Gizmo The light object itself sits in the top-right corner of the Tree Window. When you click it, you are presented with a gizmo to rotate it, and thus affect the directional lighting in the scene.

Page 54 of 277 Selecting the light will also show the Light Properties in the Property Bar, where you can edit all the other lighting information. Right clicking on the light will also present a contextual menu with shortcuts to many lighting options.

Note: A shortcut for rotating the light gizmo relative to the current view is to hold the 'V' key and click & drag the mouse in the Tree Window.

Color/Intensity

The color and intensity of the directional light can be adjusted in the Light Properties when the light is selected. Lighting presets are also available to quickly switch between lighting scenarios. Shadows

Directional light will cast shadows. You may change the quality of these shadows in the Light Properties or contextual menu on the light object, but there is a trade-off in rendering speed. Ambient Lighting

Ambient light is light that exists in the scene but is not coming directly from the sun / light source. It is light from the environment around the subject. Without any ambient light, shadows would be completely black. Color/Intensity

The color and intensity of the ambient light can be adjusted in the Light Properties when the light is selected. Lighting presets are also available to quickly switch between lighting scenarios. Ambient light uses three colors to set up the environment: sky, horizon, and ground. These colors are interpolated to form the sky and ground in the background of the Tree Window. Ambient Occlusion

Ambient light comes from all directions at once. But similar to how directional light can cast shadows, parts of the tree should be “shadowed” from ambient light. This technique is referred to as “ambient occlusion” or “AO”. AO will darken crevices and the interior of a tree, giving it much more realistic lighting. You can also use an ambient occlusion map to further refine AO on a per-material basis. Calculating AO is fairly quick, but it is not something that can be done all the time. Figure 34: Ambient Occlusion ("AO") - Ambient You can compute it by clicking the “Ambient light comes from all directions at once Occlusion:Render” button in the Light Properties, or by merely hitting 'O' in the Tree Window. Editing the geometry of a tree will invalidate AO until the next calculation, though AO is computed when the tree is first loaded. With default settings, AO will most likely do a good job. However, you can further refine the effects of AO by modifying the “Brightness”, “Contrast”, “Min”, and “Max” properties. Generally you want the very outside parts of the tree to be fully white. The interior of the tree should be dark but not black. The depth of the dark interior is up to the artist, depending on how dense and enclosed the tree is.

Note: Switch to the “AO” render mode to visualize the computed AO on the tree for easy editing.

Page 55 of 277 LEVEL OF D ETAIL

“Level of detail” (LOD) refers to decreasing the complexity of a model as it moves away from the camera. A model that is far away doesn't need to have as much detail as one that is close. Reducing complexity in this fashion reduces the load on rendering hardware, allowing many more models/trees to be rendered on screen at the same time. Certain SpeedTree products include automatic, dynamic LOD generation. The LOD is “dynamic” because it changes smoothly as the distance to the tree changes, hiding any geometry “pops” that discreet LOD levels would otherwise cause.

Note: Automatic Level of Detail is a feature included only in the SpeedTree products for real-time use (SpeedTree for Games, UE4, Unity, Lumberyard, etc.). SpeedTree products for VFX (Cinema, Studio, etc.) do not include LOD and should instead use Resolution.

Previewing LOD

To turn on LOD for a tree, select the Tree Generator and tick the “Enabled” property in the Dynamic LOD property group. You can also set the number of LOD levels with the “Number” property. When you do this, an LOD control will appear in the bottom-left of the Tree Window, shown to the left. By default, the slider is in “Manual” mode. If you drag the arrow up and down in the LOD control, the tree will dynamically change LOD. You can see the counts update as this occurs. Clicking the “…” button at the bottom of the LOD control allows you to switch the LOD mode from “Manual” to “Screen Area.” This will disable any mouse input on the control, but the tree will dynamically change LOD as you move the camera nearer or farther away. Figure 35: LOD Slider

Global Settings

During an LOD transition, parts of the tree will be removed intelligently to reduce complexity but keep the transition seamless. This is done by analyzing the tree to see which parts are hidden in the interior. A part that will be removed shrinks until it is invisible before the geometry is completely removed in the next LOD level. For example, branches will shrink away to their spine before ultimately going away (see below). Leaves shrink away in a similar fashion, but other leaves also grow to maintain the tree's silhouette.

Figure 36: LOD transition - branches shrinking away to their spine To control how many parts are removed at a global level, use the LOD curves property in the Dynamic LOD property group in the Tree Generator. With these curves, you are controlling the reduction over the course of the tree's total LOD transition. There are a number of these properties, to control the reduction of different geometry types in the tree: branches, leaves, decorations, etc. Leaves

As previously mentioned, leaves not only shrink away, but leaves that stay will also grow. You can control how much they grow with the “Grow Scale” property. Often, leaves in the interior of the tree will be flagged for removal before those on the outside of the tree. This might result in the interior leaves being carved out, leaving just a shell around the tree. This may or may not be what you want. You can add some noisiness to this removal by adjusting the “Jumble” property. Using “Grow Scale” and “Jumble” are key to maintaining the silhouette and keeping the “fullness” of the tree:

Figure 37: LOD and leaves Individual Settings

In addition to the global settings, there are additional settings on each Generator for dealing with LOD. With these you can fine-tune LOD changes to be more seamless, or reduce complexity in a more aggressive manner in places that won't be seen. The “Dynamic LOD:Weight” property is an important one, as it influences what gets removed. When you adjust the global LOD curve for Branches, for example, you are setting how many branches you want at each level. Branches are removed based on their size and how “hidden” they are in the tree. However, modifying the “Weight” property on individual parts of the tree will influence this computation. Branches with higher weight will “win” over branches with lower weights, and will remain in the tree. Segments

Branches and fronds can change their segments with LOD, reducing the complexity of the geometry even if it stays in the tree. This can be done explicitly for length or radial segments, or you can adjust the “Optimization” property so the Modeler will intelligently decide where to remove segments to keep the same overall shape.

Figure 38: Optimization of segments

Note: Too much segment reduction, especially in length, can cause visible pops. Preview the LOD switch to make sure this isn't noticeable.

Page 57 of 277

Mesh LOD

On parts of the tree that can use a mesh (leaves, fronds, etc.), you can switch out this mesh to lower quality versions as LOD changes. Mesh LOD levels are set up in the Mesh Asset Bar. As the LOD curve on the "Mesh Index" property decreases, the lower LOD meshes will be chosen to place in the tree. Similar to segment reduction, mesh LOD can cause visible pops you need to be careful to avoid. This is especially so if you are using mesh anchors to place children. If the mesh anchors move with LOD, the tree might change drastically.

RESOLUTION

Resolution is the mechanism by which you can quickly control the polygonal complexity of a model. A single model now exists in any of four resolution states (High, Medium, Low, and Draft), and you can switch between them simply by clicking one of the buttons on the view-port toolbar. The goal of this system is to allow you to export the model at a polygon count that matches the needs of your shot without making permanently destructive edits or synchronizing edits across several models. There is one model to maintain but you can export it how you see fit.

Note: The best workflow is keeping resolution set to “High” and using the other resolutions for exporting lower detail versions and accelerating complex computations (e.g., wind editing).

Changing Resolution

To change resolution, click on one of the four buttons in the “Resolution” group on the viewport toolbar (pictured below).

Figure 39: Changing Resolution When you change resolution the model will recompute from scratch. Any properties that have a corresponding resolution curve will adjust to the new setting. So, properties like Branch Length Segments, Branch Radial Segments, and Leaf Mesh LOD will all be affected by a resolution change. Resolution Curves

Most properties that affect polygonal resolution have corresponding resolution curve properties. They're marked by their orange color and resolution markings in the curve editor. For example, look at the “Segments” group on the branch generator (pictured below).

Figure 40: Segmental Resolution Curves

Page 58 of 277 The “Segments:Resolution:Length” and “Segments:Resolution:Radial” properties are curves that modify the length and radial segments based on the currently selected resolution. To edit these properties, select the curve and the Curve Editor will open.

Figure 41: Each Curve Point controls the polygonal count for the corresponding resolution Each of these Curve Points controls the polygonal count for the corresponding resolution. You can find multiple curves throughout the generator's properties that control the setting of the resolution triangle count. Some of the curves decrease the segment count, others take away objects (e.g., “Generation:Knockout:Resolution”). There are even properties that enable/disable entire generators.

Hint: Consult the pertinent generator documentation for a complete description of what each resolution curve does.

As an example, let's examine the “Length Segment” resolution curve for the Branch generator pictured above. Every branch created by that generator will compute its length segments based on what is set on the regular segment properties. Then that number will be multiplied by the value of the curve at the current resolution setting. For example, if a branch needed 60 length segments and the resolution was set to “Medium,” the actual segment count used would be 60 x 0.75, or 45.

Note: Resolution curves mean that sometimes the numbers you type in aren't used directly where segments are concerned. If you want exactly 20 radial segments but you're only getting 14, look to the resolution curve for the reason.

You are free to modify any resolution curve as you see fit. If a particular resolution's polygon count is too high or too low you can target individual parts of the model and change them by editing any of the resolution curves. Best Practices

The following list outlines a few things to keep in mind when tuning model resolutions. • If you don't care about changing resolutions, keep it on “High.” All of your segment count numbers will be used directly and not scaled back by any curves. • Models created by SpeedTree are typically saved in “Medium” resolution. This is so you can go up or down in polygon count as you see fit. • Use the “Generation:Shared:Active” resolution curve to swap entire generators in and out based on resolution for radical changes (e.g., going from leaf maps with one leaf on them to leaf maps with five leaves). • Use Draft mode to drastically reduce triangle count when making a series of computationally intense edits (e.g., scrubbing the season slider).

Page 59 of 277

HAND DRAWING

Branches can be drawn by hand using the mouse or a tablet device. After they are drawn they can be manipulated as Bézier splines and even extended by another hand drawing operation. Hand drawn branches can originate from Tree node (the disk on the ground) or any other branch node (hand drawn or not). Procedural generators can be added to hand drawn generators, allowing you to be specific where you need to be and still get the benefits of procedural geometry to fill in the details.

Note: Hand drawing has changed for SpeedTree 8 to reduce misplaced branches and allow for better draw plane manipulation. The new approach is to place stubs and then extend them as much as you'd like as described below.

How to Hand Draw a Branch

Follow these steps to get started with hand drawing. • Make a new scene using the “Blank” tree template. • Hold “Space” and click anywhere on the Tree node disk to place a stub. Your scene should look like the following image at this point. Notice the hand drawing indicator on the new generator.

Figure 42 . Hold “Space” and hover over the stub. A white diamond should appear at the end like this:

Figure 43

Page 60 of 277 . While holding “Space”, click and drag the diamond to draw the branch. Release the left button to complete the action.

Figure 44 . Hold “Space” again and click the trunk in several places to create new stubs. Feel free to rotate the camera around the model to get the stubs where you want them. The stubs will start where you click and point toward the camera. Notice that a new generator is made to house these stubs, again with the hand drawing icon.

Figure 45 . As before, Hold “Space” and hover over any stub or hand drawn branch to reveal the white diamond. Click and drag each diamond while holding space to draw the branches.

Figure 46

Page 61 of 277 . Finally, right-click the Branches generator and select “Add geometry to selected→Bifurcating branches” to add some procedural geometry to the model.

Figure 47 Continue by adding more stubs to the ground or any branches (hand drawn or procedural). You can draw part of the stub, rotate the camera, and continue drawing it to change the direction of the branch. Editing the Spine of an Existing Hand Drawn Branch

Switch to node editing mode and select the hand drawn branch. You should see a series of control points for the spine as pictured below.

Figure 48: Node editing mode - editing spine of hand drawn branch Click and drag any of the control points to move them. Alternatively, you can select a control point and use the standard gizmo to move them. Control points have a number of options to aid in spine editing:

Style Choose from “Linear,” “Smooth,” and “Corner” to control the nature of the spine through the point.

Use these options to modify which control points are selected. Using “Select:To End” and then using Select the Rotate gizmo is a good way to quickly rotate the spine.

Add Control Point Use these options to add a new point before or after the selected point. Table 8: Control Points

Page 62 of 277 It is also possible to change how many control points are on the branch all at once. On every hand drawn generator, a “Hand Drawn” property group exists with two sets of identical functions; Curve fit and Control point style. The options in the “New” group affect only nodes that are created after changing these values. The options in the “Resample” group affect all existing nodes in the generator. Use the options in the “Resample” group if the density of control points is either too high or too low.

Note: The "Resample" group exists as node properties as well. Entering node selection mode will allow you to resample a single hand drawn spline without resampling the entire generator.

Curve Fit

Curve fit is a scalar for the number of control points used to create the spline. A value of 1 results in an accurate spline that may have many control points based on the speed of drawing and other factors. Values less than 0.5 become inaccurate, but have control points that are easier to work with (since each branch is composed of only a few control points). If using a low curve fit value, set the control point style to “Corner” to ensure the best accuracy with only a few points. You can always resample or add more control points later if necessary. Control Point Style

Controls points are generated in either a corner, linear, or smooth style. Both linear and smooth control points have linear handles (each handle points 180° away from its counterpart), but smooth control points have the extra limitation that they must be of the same length. Smooth is best suited for flowing branches without sharp jinks, since jinks are hard to reproduce with equidistant, linear points.

Figure 49: Control Point Styles

Converting Procedural Branches to Hand Drawing

It is possible to convert procedural branches to hand drawn branches (but not the other way around). The entire generator will be converted so be careful. Converting 100,000 twigs on a VFX model to hand drawn branches would likely be prohibitively slow to compute. Use either the “Convert to Hand Drawn” button on the generator or the “Hand Drawing→Convert to hand drawn” option in the Generation Editor menu to make the conversion. Working With Hand Drawn Generators in the Generation Editor

Complex hand drawn models may require extensive work in the Generation Editor to ensure that branches are drawn into the correct generator. Please use the following guidelines to predict and control the hand drawing workflow. New Branches

New branches are placed according to the following guidelines: 1. If no hand drawn generator is present in the target branch level, a new hand drawn generator is created. The template used for new hand drawn generators is located in the “Templates/Hand Drawn” sub-folder of the SpeedTree Modeler install directory. A separate template is used for trunks (branches drawn from the tree radius). 2. If a hand drawn generator is present, new hand drawn branches will be put into that generator.

Page 63 of 277 3. If more than one hand drawn generator is linked from the parent node, one of the hand drawn generators must be designated as the “hand drawn target” in order to receive new branches (see this section below for more). Like all other generators, hand drawn generators can be saved off and loaded as template (STT) files. When a hand drawn template is loaded in the Generation Editor, it is signified by a “drawing hand” icon overlay in the bottom right-hand corner of the generator icon.

Note: Hand drawn templates can be used effectively by linking an entire tree together (i.e. a trunk, level 1, and level 2 branches) made completely of hand drawn templates before drawing a single branch. Paste Into

“Paste into,” accessed via the right-click menu of a selected icon in the Generation Editor, will paste a copied generator's contents into another generator – even after nodes have been drawn. It will paste all of the properties except for the generation components. This is useful for quickly replacing the settings in a hand drawn generator after branches have already been drawn. It is also great to use when there are node edits on child branches that you don't want to unlink and lose. Copying and Pasting Hand Drawn Generators

Hand drawn generators can be copied and pasted the same as any other generator. A pasted copy of a hand drawn generator will contain no branches until you draw them. Resetting a Hand Drawn Generator

Using “Clear node edits” in the Generation Editor menu or unlinking/relinking the generator will reset its contents. After either of these operations there will be no hand drawn branches in the generator until you place new stubs. Hand Drawn Targets

The first hand drawn generator created in a branch level is automatically the designated “target”. The target is indicated with a checkmark ('√') next to the hand drawn icon overlay. However, the target can be manually turned off via the “Hand Drawing→Draw into selected” option in the Generation Editor right-click menu. Once the target has been disabled for a branch level, a new hand drawn generator will be created the next time new branches are drawn on that level. The target can also be moved between existing hand drawn generators, but only a single target is allowed per shared parent at any given time. Locking Hand Drawn Sources

Occasionally you may want to “lock” a generator so that hand drawn branches cannot be generated as children. This may be true with a complex tree where it is difficult to tell which generator a particular branch belongs to. By locking a generator (“Hand drawing→Toggle lock on selected” in the Generation Editor right-click menu), hand drawing new children will be prohibited off of it. Best Practices

The following list outlines a few things to keep in mind when hand drawing branches. The “Spine:Noise:Late” noise works on hand drawn branches. Use this to your advantage! Keep your branch drawing smooth and simple and use noise to rough them up. It's a good idea to use the “Round” preset on the noise profile so that the beginning and end of the branch are right where you put them. All of the skinning properties still work procedurally. Radius, displacement, welding, etc. are all manipulated in the same manner as regular branches. Forces work...if you allow them! They will, however, pull the branch off of the drawn spline. You can move the start position and angle using the Art Director gizmo handles. You can also manipulate the properties directly. Hand drawn branches work in the subdivision surface system.

Page 64 of 277 GROWTH

Animated growth is achieved via a combination of the Timeline Bar and the properties on each of the generators that support growth (Branch, Leaf Mesh, Fin, Frond, Cap, and Knot). Caps and knots grow automatically with their parents, the rest of the generators listed have their growth governed by a series of properties in the “Growth” group.

Note: The legacy generators Spine and Leaf do not support growth in version 8. They must be upgraded before they can be used in the growth system.

The typical workflow for editing growth is to first get the model correct with growth disabled. Then, run the Growth Wizard (described below) to get the basics in place and then fine tune the behavior by editing each generator's growth properties and adjusting the overall speed and timing on the Timeline Bar.

Growth Wizard

Access the Growth Wizard by selecting it from the “Tools” menu or clicking the “Wizard” button in the growth group on the Timeline bar. You will be presented with the following options: . Grow - The model will develop into its final form gradually with branches and leaves beginning to grow once their parents have started growing. . Reveal - The model will appear to be traced out into its final form. This style is commonly used when branches grow around meshes (e.g., vines on a trellis). The first option, “Grow”, is suitable for most applications. It will set up all branches and leaves to start growing off their parent once the parent has grown a little (all “Timing” generator properties are set to “Parent”). The result is a continuous growth look where the tree organically grows into its final form. The “Reveal” option is necessary in any instance where growing branches can't move without causing artifacts in the final production. The best example is any case where branches grow around each other or a mesh used as a stand in for a scene object. All “Timing” generator properties in this case are set to “In place”, which means once the parent reaches the point where the child originates, the child will start growing.

Note: You can mix and match these types after the wizard has finished. Take a look at the "trellis_growth.spm" example. The vines growing around the trellis use "In place" timing, the rest of the model uses "Parent" timing.

Note: Batched Leaf generators do not work with growth (they sacrifice functionality for speed). The Growth Wizard will always convert these generators to Leaf Mesh generators.

Using the Timeline

Once the wizard has finished use the Timeline Bar to control the timing. First make sure your end frame matches the shot. Then use the “Speed” control and corresponding curve to adjust how fast the model grows. All “Speed” properties on the generators are scalars applied to this central speed value. Adjust the value until the model is at the stage you need it to be in on the last frame. Growth computations naturally have a lot of variation and are subject to curve edits and node edits on individual pieces. The only way to ensure your model is at the stage you need it to be in on a particular frame is to edit the speed and speed curve.

Editing Properties

Most generators have a series of growth properties in a group labelled “Growth”. These properties are described in detail on each generator's reference page. Use them to control the timing, speed, orientation, and all other aspects of growth for each component of the model. Exporting

Growth animations must be exported as an Alembic file; point cache formats will not work because the number of vertices changes each frame. You can use “File→Render image sequence…” to render out a sequence of frames for a preview of the animation before exporting and rendering in a third party application. Examples

SpeedTree Modelers that support growth are installed with growth example models. Look in the “Samples” folder in the installation location to find them.

Best Practices

The following list outlines a few things to keep in mind when tuning growth. . Always run the “Growth Wizard” first. It sets up the basics and resets parent and profile curves to make sure you have a solid starting point. . Use “Focus” to single out a section of the tree. This will often make the model compute fast enough to preview a section in real-time using the Timeline Bar controls. . Avoid the model ever coming to stop. Either adjust the “Wobble” properties so there is always a little wobble, extend the “End” frame farther than you need, enable wind, or do all of the above. Growth animations typically look better with at least some motion in the limbs at all times. . Use Draft mode to drastically reduce triangle count when tuning growth.

SEASONS

The Season system allows you to display your model at any point during its season transitions; however, this is only true if the model is set up properly. Each model's season appearance is based on the combination of the settings chosen for the following components: ■ The Season slider position (Located on the Viewport toolbar) ■ The Season property settings for each generator ■ The Season curve settings on each Material/Material set The following sections detail how these systems work together and how to export the model for use.

Note: The Season system allows you to export your model in a single state. It is not suitable for smoothly animating season changes

One more thing… You don't have to use this system! If you just want to put leaves on a model and not worry about seasons at all, that's fine. The default values and curves will just ignore the season slider.

Page 66 of 277 Season Slider

The Season slider is on the Viewport toolbar. Click the Season button to pop up the slider pictured below:

Figure 50: Seasons slider The position of this slider is the driving force behind season changes. When computing, every node looks to this value as the first step in determining the season appearance. The Season slider value ranges from 0.0 to 1.0. This value is used by the season properties described in the next section to compute a “transition value” for each node (nodes are individual branches, leaves, etc.).

Note: Each change of the season slider requires the entire model to compute from scratch. Consider lowering the resolution or using Focus to reduce the computation time when doing season work.

Season Properties and Materials

Each generator has the ability to adapt to Season changes by using the properties in the Seasons group (found in the Property bar on the left hand side) and by the assignment of the materials in the Leaves group. The image below shows the Material assignment and Season properties for an example model.

Figure 51: Material assignment and Season properties for an example model

The probability that any given material will be chosen depends on the season slider position, season property values, and material season curves (described in the next section).

Page 67 of 277 The Season properties use the Season slider position as input to compute a “transition value.” This value is computed per node, which means that each branch and leaf can change independently. Each leaf and branch computes a “transition value” that is a percentage of how far along in the life cycle it is. This value is then used to look up the Season curve set in the Material tab. Main Season Properties

Start offset: Determines when the leaf 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. These values are typically sufficient to get started. You may want to use variance or alter them slightly in conjunction with parent curves to get a more mottled look during transitions or make parts of the model transition sooner (e.g., have leaves turn sooner near the top of the model). For detailed descriptions, please see the Season properties pages for Leaves and Branches. Material Season Curves

Nodes change their appearance by selecting the material most appropriate for the current season from all of the materials assigned to the generator. This means that all of the Season materials must be applied to the generator at all times; the Season system simply changes the probability that each material will be selected.

Figure 52: Material Season Curves Each material has a Season curve (circled in red in the picture above). The chance a material is chosen for a node is multiplied by the value of this curve at the node's “transition value.” So, spring leaves should have high values at the left hand side of the curve and low values at the right to indicate that they have a high chance of being chosen early, while having a low (even 0%) chance of being chosen late.

Page 68 of 277 Putting It All Together

Now we'll examine a model in three different season states and show how the system works. First, here is the model in three different states with the corresponding Season sliders:

Figure 53: Model in three different season states Next, let's look at the materials and season properties for the leaf generator at each state. Notice that nothing changes! All season materials are always assigned to the generator and the properties stay the same. The Season system picks the correct material based on the Season slider position.

Figure 54: Materials and season properties for the leaf generator at each Season state

Page 69 of 277 Finally, let's see how the materials are chosen. The “Season:Start offset” value is 0.0 and the “Season:Time scale” value is 1.0. These values mean the slider position indexes the curves directly.

Figure 55

Using Material Sets

Because you have to assign all the season materials to each generator, organizing them can be difficult. Especially if you're using many transition materials. Material Sets are a good way to mitigate this problem. Material Sets allow you to group materials together and assign them to the model at once. A good strategy is to create a Material Set for each season. Put all of the spring materials into one set, transition materials in another, and autumn materials in another. For example, if you have multiple leaf materials, along with their corresponding seasons, you can create a Material Set for each leaf group and set the Season Curve for each. This way, you have each leaf grouped together and can easily see when each material is assigned to appear.

Note: Use the Season Override feature to set a single season curve for the whole set. This strategy minimizes how many material season curves you need to keep synchronized.

Leaves on the Ground

If you check the “Show Dropped Leaves” checkbox on the season slider, leaves that have reached the end of their lifetime on the model will be displayed on the ground.

Note: You can create a mesh force and assign it to the leaf generator to have the leaves adhere to a mesh instead of the XY plane.

Best Practices

The following list details some strategies for rigging your model for seasons: ■ Use Material Sets to organize your materials. Doing so means fewer materials on each generator and fewer season curves to manage. ■ Add variance to your Season properties to keep the Season transitions naturally varied. ■ Remember that the Season slider does not set materials directly. It simply feeds the algorithm controlled by the Season properties. ■ Use the “Season:Descendant offset” property on branches to make whole sections of the model transition sooner or later together. Putting a little variance on the property on an early branch level often provides very realistic transition states. ■ If you're having trouble, examine one of the sample models. ■ Use Focus to keep computation times low while you're working.

Page 70 of 277 Exporting

To export at a specific Season state, set the Season slider and export a mesh as you normally would. The resulting mesh will have all of the materials assigned appropriately without any extra effort. Use our scripts to import into Autodesk's 3ds Max or Maya to ensure that material assignments are correct in those applications. Please see the Mesh Export section for more information.

Page 71 of 277 W IND

VFX WIND

Wind animation is controlled by editing the properties on the Fan object and the wind properties of each generator in the model (e.g., branches and leaves). The recommended procedure is to run the Wind Wizard (“Tools→Wind wizard…”) and then fine tune the results. When wind is enabled ('8' hotkey or “Enabled” property on the Fan) the model will animate continuously in the window (unless it's under timeline control as described below). If the model is too complex to run fluidly, consider focusing on a section to improve performance. Wind Strength and Direction

When wind is enabled an overlay appears under the Fan object in the upper right section of the window as pictured to the right. Set the direction of the wind by rotating the Fan (hold 'G', press the left mouse button, and drag the cursor as a shortcut for fan rotation).

Set the strength by clicking the blue arrow and dragging it between the “min” and “max” markings. The actual strength is indicated by the blue bar. Notice that it does not react immediately to strength changes. Models do not react instantly to strength changes; rather, they react at a speed governed by their strength response time. Wind strength will gradually reach the desired setting as the model reacts. Direction changes are handled in a similar fashion. Gusting can be controlled by moving the green sections on the overlay. Drag the green arrow pointing left to a location between the “min” and “max” markings to set the frequency of gusts. Drag the green arrow pointing to the right at the gust range box and drag it up and down to set the gust strength. Click and drag in the gust range box (faded green rectangle) to set the limits of each gust. Figure 56: Wind Strength and Direction Note: The blue strength bar will always indicated the effective strength of the wind based on your Gizmo strength setting, the strength response time of the model, and the current gusting state.

Wind Wizard

The best way to get started tuning wind on a new model is to run the Wind Wizard (“Tools→Wind wizard…”). You will see the dialog pictured below.

Page 72 of 277

Figure 57: Wind Wizard Answer the questions on the dialog and press “Ok”. SpeedTree will analyze your model and set wind properties on the generators and Fan object based on your model's structure and your wizard selections. The model will recompute and wind will enabled in the window when the wizard is finished. Feel free to edit the results as described below. Editing Branch Wind

Branch motion is controlled by five groups of properties: one for the motion shared by the entire model (like a tall pine rocking back and forth) and then four groups corresponding to each of the four discrete wind levels in the model. Wind levels are determined by starting from the Tree generator and incrementing the wind level by one for every generator encountered on each path to the leaves that has wind enabled. When you enable wind the Generation Editor displays the wind level on each generator where wind is enabled. Consider the example below:

Figure 58: Example of wind Generation Editor enabled - display of the wind level on each generator where wind is enabled

The “Trunk” has no number indicator because wind is not enabled on that generator (it usually isn't on trunks, “Shared” wind gets it). Similarly, wind is not enabled for the “Roots” generator or its child labelled “Branch”). “Branch 1, 2, & 3” and “Twig 1, 2, & 3” all have wind enabled. Notice how the wind level indicator starts at one, goes up to four, and then sticks at four for the last two twigs. You can only have four discrete wind levels no matter how many generators have wind enabled. It is okay to have fewer than four, and it is okay to have gaps in the number sequence as you see fit (sometimes it is better to concentrate the control near the trunk and twigs and leave middle sections alone).

Page 73 of 277 The wind level indicator corresponds to the levels in the “VFX Branch Motion” group on the Fan. Edit these properties to control the behavior of each wind level. Edit the wind properties on each Branch generator to control weights and weight distribution along each branch. When editing wind curves, the left hand side of the curve corresponds to no wind (“Calm”) and the right hand side corresponds to maximum wind (“Stormy”). The black line indicates the current wind strength is pictured below:

Figure 59: Wind curve editing Use the curve to set low and high wind conditions and control how each level makes the transition. Strength changes and gusts will cause the wind algorithm to look up this curve at various points to define the motion for a given simulation. Editing Leaf Wind

Leaf wind animation is broken into two groups. Assign a group and wind weight by editing the properties on Batched Leaf or Leaf Mesh generators. Typically, leaf group 1 corresponds to the leaves of the model while leaf group 2 corresponds to more rigid things like fruit. Edit the properties in the “VFX Leaf Motion” group to control leaf behavior. Editing Frond Wind

Frond wind is not broken into groups or levels. All fronds share the same wind attributes. Edit the properties in the “VFX Frond Motion” group to control frond behavior in general and edit the wind properties on each frond generator to fine tune behavior. Gusting

Gusting provides a mechanism to have the wind strength periodically rise and fall simulating gusty conditions. Edit the gusting properties of the Fan or use the overlay as described above to control gusting behavior. The “Set conditions” menu option on the fan and wind toolbar menu provide shortcuts for setting common conditions like breezy and stormy. These choices set the nominal wind strength and gusting parameters to best match the named conditions. Use these settings to help guide wind tuning for models that will be in the same scene. The Wind Wizard will attempt to set all wind properties such that the model behaves appropriately under all of the preset conditions. You can force a gust to happen by double clicking on the gust area of the wind overlay.

Note: “Duration” values of 0.0 still have an effect on gusting since the time to rise to the value and fall from it are not counted against the duration. Use 0.0 and low scalars to simulate turbulent conditions.

Page 74 of 277 Exporting

Wind can be exported either as a point cache for FBX files or as an Alembic file. If you're exporting FBX files, simply check “Wind” (and “Wind gusting” if you want it) on the export dialog then select your cache format and select “OK”. Gusting and other randomness in the algorithm mean exporting wind in this manner is not necessarily the same in two separate exports of the same model. If you're exporting to Alembic you have the option to use the Timeline Bar to control the wind. Check the “Wind” box on the timeline and use the strength curve to explicitly control the wind strength. This mechanism disables gusting and provides consistent, controllable wind strength on export.

Note: Wind animation does not loop. You must export enough frames to cover your shot.

Best Practices

The following list outlines a few things to keep in mind when tuning wind. . Always start with the Wind Wizard. It should at least get you close. . Less is typically more - avoid large sweeping branch motions where possible, even in high wind conditions. Medium “bending” and small “turbulences” typically work best. . Most frequencies should not be zero, even at calm wind conditions. It's okay for motion to go to zero, but if anything moves on a tree it's usually moving quicker than you'd think! . Make sure response times for multiple models are in agreement if they're going in the same scene. Small, wispy models should have short response times while large models should have longer ones. . Leaves usually start showing the effects of wind speed increases faster than branches. Make sure your leaf curves reflect this with higher values on the left hand side.

LUMBERYARD WIND

SpeedTree leverages Lumberyard's native wind mechanism for the Lumberyard compatible versions of the Modeler. Lumberyard wind is based on a combination of vertex colors on the model and a few parameters to control the amount and frequency of motion. The procedure for editing wind is as follows: 1. Get the vertex colors correct on the model. 2. Select the fan and enable wind. 3. Tune the fan parameters to get the desired motion. Vertex Colors

There are two ways to set vertex colors for wind in the Lumberyard versions of the SpeedTree Modeler. You can use traditional SpeedTree Wind controls and let SpeedTree set the colors, or you can control them specifically. The latter is typically only necessary for special case models or unusual wind effects. SpeedTree Controls

To let SpeedTree set the vertex colors, do the following: 1. Enable “Wind” on each Branch generator you want to move independently. 2. Edit the “Wind” profile curve to control which parts of the branch bend more. 3. Edit the “Wind” profile curve on Leaf and Frond generators to control which parts of the leaf ripple more. Once you've done that and enabled wind your model should look something like the following screen shot with wind enabled.

Page 75 of 277

Figure 60: Traditional SpeedTree Wind controls The generators with “W” on them indicate generators that have “Wind” enabled on them. The vertex colors are displayed by changing the render mode to “Vertex Colors→Colors.” Similarly you can choose to see red, green, and blue independently.

Custom Vertex Colors

If you want to control the vertex colors directly, do the following: 1. Select the Tree generator and Enable the property “Compute Flags:Vertex colors.” 2. Edit the vertex color properties of each generator directly. You have the option of setting the color directly or setting colors relative to the color they inherit from their parents. Be careful though, it is possible to create vertex colors that cause the model to separate or otherwise behave erratically using this method. A description of how Lumberyard interprets vertex colors can be found here http://docs.aws.amazon.com/lumberyard/latest/userguide/vegetation-bending-detail-intro.html. Here's a quick reference: . Red: Fine detail bending for leaves and fronds (1.0 = bend the most, 0.0 = bend the least) . Green: Timing offset for branch motion (use a different shade of green for a branch and its children to offset branch oscillations) . Blue: Branch motions amount (1.0 = don't move at all, 0.0 = move the most)

Wind Properties

Select the Fan object to reveal the wind properties. Wind direction is a non-normalized vector in Lumberyard; however, in SpeedTree the direction is set by the fan gizmo and the strength value is one of the properties. The direction and strength are for preview purposes only, they are not imported into Lumberyard. The properties in the Lumberyard group match the bending properties in Lumberyard exactly. Edit these properties to tune the amplitudes and frequencies of the wind motion.

Note: The “Bending” value defaults to zero in Lumberyard. You will see no wind on your model in Lumberyard until you enter a value for “Bending” in the “Paint Objects” section of the Vegetation RollupBar.

Page 76 of 277 Exporting

When you export the tree for Lumberyard, all of these settings except “Bending” will be imported. There is no mechanism for importing the main bending value via .cgf file, so you'll need to enter your “Bending” value manually in Lumberyard. Best Practices

The following list outlines a few things to keep in mind when tuning wind. . Custom vertex color editing is typically unnecessary. . SpeedTree mimics Lumberyard's algorithm in the editor but it may behave slightly differently in Lumberyard. . Favor high frequency but small amplitudes for leaves. . Make sure your “Strength” value matches the magnitude of the wind direction vector in your Lumberyard scene for the best match. . Making “Wind” profile curves “Min” curves is a quick way to zero out wind effects, especially when using leaf-on- leaf modeling techniques.

Page 77 of 277

E XPORTING TO…

EXPORTING MESHES

The SpeedTree Modeler can export the trees you create for use in other modeling/rendering applications. Depending on the format selected, these exports can support wind animations, growth animations, mesh unwrapping, and skeletal skinning.

Figure 61: Mesh exporting controls

Note: Not all versions of the SpeedTree Modeler allow mesh exporting.

Formats

Currently, the SpeedTree Modeler can export meshes in Autodesk FBX, Wavefront OBJ, Alembic IO, and a raw XML format. FBX and OBJ are the most well-supported formats in a variety of third-party applications. Alembic is used more for exporting animations, especially growth animations where the topology changes over time. Wind animations can still end up being a smaller size in Alembic than in FBX, if that is a concern. Raw XML files are used only in custom pipelines that require extra vertex data from SpeedTree that is not available in other formats. Group By

On export, the geometry in a tree can be grouped in different fashions, depending on how the final mesh will be used or modified in an external application. Grouping by material or by geometry type is self-explanatory.

Hierarchy

Grouping by hierarchy sets the level in the tree under which the tree will be split apart. For example, a level of 0 means the entire mesh in one group. A level of 1 means the trunks of the tree will each be in different groups with their children (in most cases of simple trees, this will be identical to level 0 since there is only one trunk). With a level of 2, the trunk will be in one group and then each major branch will be in a group with all of its children.

Page 78 of 277

Figure 62: Example of grouping by hierarchy

When grouping by hierarchy, the pivots and bounding boxes will be set accordingly. Because of this, you can move and rotate a single branch and all of its children easily if you export grouped by hierarchy at level 2. Material

Grouping by material will do just that, group the geometry by the material it uses. Unwrapping the mesh and using variations may change the final material associations, and thus the grouping. Geometry Type

Grouping by geometry type will make mesh groups based on the type of tree geometry it is - branch, leaf, mesh, etc. Include

There are a variety of extra thing you may include in the mesh during export. The availability of these changes depending on the format chosen.

Branch seam blending

Includes the blending pieces used to hide branch intersections

Bones/Skeleton (FBX)

Includes the skeleton created in the SpeedTree Modeler and smoothly skins the vertices to the correct bones.

Note: Enabling bones with hierarchy grouping will move the origin of each group to the origin. This is to prevent errors occurring with skeletal in some 3rd party applications.

Page 79 of 277 Leaf references (FBX, ABC)

This option includes null references in the correct position and orientation for each leaf. These can be used to populate the leaves with higher quality meshes at runtime. Branch spines (FBX, ABC)

Includes a spline down the center of the branch, useful in some kinds of skinning. Transform

These options modify the output geometry, such as flipping and rotating it for a particular coordinate system. Textures

These options control the format and size of the exported textures. No matter the format chosen for export, many of the same steps occur when dealing with textures. All needed textures are exported, per-material, and all the texture adjustments made in the Modeler are baked into the final texture. Material variations are handled by baking new versions of the maps into a new material used on the tree, so nothing additional needs to be done elsewhere to support them. Additionally, a SpeedTree material file (.stmat) is saved next to the exported mesh that contains all the information about the materials coming from the SpeedTree Modeler. Different formats have different ways of specifying materials, and some do not have the options to fully recreate SpeedTree materials elsewhere. To combat this, importer scripts for Maya, Max, Houdini, etc. read the stmat file and use that information to recreate the materials as closely as possible. Animation

In formats that support it (FBX for wind, Alembic for wind and growth), you can include animation. This animation is saved as a point cache file. Depending on your tree's complexity and length of animation, computing these caches may take a long time and create large files on disk. Cache Options

When exporting an animation, different cache formats have options that will appear in this section.

EXPORTING TO GAME F ORMATS

In some versions of the SpeedTree Modeler, you have the option of exporting to a simple “” format that is normally used for importing to specific game engines. This will show a different export dialog with more options specific to real-time rendering and games. Currently, the exporters for UnrealEngine4, Unity3D, and Lumberyard all use this dialog.

Figure 63: Export Controls

Page 80 of 277 LOD

These options set which type of geometry from the tree to include: the fully 3d geometry LODs, the billboard LOD, or all of it. Geometry LODs are what you are editing when you make a tree. You can adjust the number of LODs, how the tree changes as it goes down in LOD, and the smoothness of these changes. Please see the Level of Detail section for more information. If you enable billboards to be exported, one new LOD is added at the end of the LOD transition. This LOD is a very simple mesh made of pictures of the tree rendered from different views. These billboard pictures are all placed into a billboard atlas. All the same material maps that are exported for regular geometry are exported for billboards, so it can fit into your normal rendering pipeline. The game engines handle removing the views that are not facing the camera, and you are left with a simple picture of the tree in the distance. With this method, you can have very dense forests at real-time speeds.

Figure 64: Options to set - shows type of geometry from tree to include: full 3d geometry LODs, billboard LOD, or all

Include

This section of the dialog features options for extra things that may be included during export. Variations

Variations may be set up in the material. This option enables the processing of variations on export. Instead of requiring the final to have shader code that does the variation, the exporter will simply make new materials and textures with the variation information baked in.

Note: Variations should be used sparingly on real-time SpeedTree models to avoid too much extra texture space being used. If atlassed, the variations of a material will take up multiple places in the atlas. If not, additional textures will be made.

Seam Blends

Seam blends are the small piece of geometry that hides the intersection of a branch to its parent by blending the parent material over top of the child branch. This is done using vertex alphas to fade it out. If the engine does not support per-vertex alphas, or if z-buffer problems are causing the seam blends to flicker, then you may disable this. Even without per-vertex alphas (and thus a hard line where the material changes), the blend pieces usually add to the realism of the tree by hiding the actual branch intersection.

Page 81 of 277 Atlas

Atlassing is the most important aspect of preparing a tree for real-time rendering. Putting multiple materials into the atlas allows the geometry that uses them to be merged, resulting in fewer draw calls. With aggressive merging, you can make an entire tree that renders in one draw call. Table 9: Atlassing in preparation for real-time rendering

None This option does not make an atlas. Each material will export its textures separately

This option looks at the geometry using each material. If the UVs on the geometry fit within 0-1, then its Non- Wrapping material will be put into the atlas. Geometry that uses wrapping UVs or otherwise has UVs outside of 0-1, such as branches, will be exported as separate textures

This option puts every material in the entire tree into the atlas. Any geometry that has UVs outside 0-1 will be unwrapped before going into the atlas. Without being cognizant of this, you could end up with a suboptimal Everything atlas layout. Enabling V- wrapping (see below) helps branches to not take up so much of the atlas when their UVs are outside 0-1.

V-Wrapping

When geometry has UVs outside 0-1, they need to be unwrapped in order to be placed in the atlas. If they aren't, these UVs may start referencing the textures surrounding its material in the atlas. . If they aren't, these UVs may start referencing the textures surrounding its material in the atlas. However, some things may wrap UVs a lot, such as branches. If these were unwrapped and placed in the atlas, they would be so much bigger than everything else, it would result in a suboptimal atlas layout. Also, since you have a maximum billboard atlas size, you may lose a lot of texture resolution as the whole UV space is squeezed into the atlas. This is where the V-Wrapping option can help. When enabled, anything that wraps in the V direction will get placed in the atlas such that its top and bottom edge touch the top and bottom of the atlas. Thus, V-wrapping UVs will work just fine and you keep much more of the texture resolution. You still need to be cognizant of U-wrapping, but since branches wrap a lot in V and not so much in U, this is a great feature when putting branches into an atlas. See the picture below for an example of a one-draw-call tree where everything has been placed into the atlas, utilizing V- Wrapping so as not to lose texture resolution on the branches.

Figure 65: Example of a one-draw-call tree where everything has been placed into the atlas

Separate Materials

When placing materials into an atlas, these materials get merged together. While they use the same textures, sometimes you may want to split the materials based on a number of factors. For example, a common situation is that leaves need to be two- sided but branches should cull backfaces. Enabling “Separate Materials” will split up the materials based on the things that do not get written into the textures. For now, this is just the two-sided flag.

Page 82 of 277 Transform

These options modify the output geometry, such as flipping and rotating it for a particular coordinate system. In most of the game-specific exporters, these are either disabled or pre-filled with the most common values for that particular engine. Textures

These options deal with the creation and writing of all the textures needed for the tree during export. Format

This option sets the format of the exported textures. For some game engine, this format is locked to the commonly-used format (usually PNG or TGA). Size

With the size options, you can set the size of the atlas, the size of the billboard atlas, and the max size of any other texture written. Packing

This option lists the various forms of texture packing available. These change on a per-engine basis. For example, a particular engine may expect color and opacity in one RGBA texture and the normal and gloss in another. But another engine may expect metallic and gloss to be in a different texture, etc.

Advanced: If you wish to add a new method of packing or change how texture packing is performed, you can edit the and xml descriptions of each packing type in the application bin directory texture_packing. Note that you will also need to update whatever importers are being used in the game engine to match. Please contact SpeedTree Support if you need more information.

Page 83 of 277

I MPORTING TO…

IMPORTING TO MAYA

After exporting a mesh from the SpeedTree Modeler, you can use the included Maya plugin to load it into Maya and recreate the materials as closely as possible. To install it, in Maya, open the Windows→Setting/preferences→Plug-in Manager menu item. Select the “Browse” button along the bottom and select the script, which can be found at /scripts/Maya/SpeedTreeImporter.py.

Note: For the plugin to auto load on the next run, you will need to also check Auto Load next to it in the Plug-in Manager and make sure that you add a line to your Maya.env file similar to the following, so Maya can find it again: MAYA_PLUG_IN_PATH=/scripts/Maya

Importing

Once the plugin is installed, you will now have new file types available for import in Maya: SpeedTree, SpeedTree for V-Ray, and SpeedTree for Mental Ray. When one of these file types is chosen, it will load a SpeedTree Material (.stmat) file. You don't need to worry about the format of the actual mesh exported from the SpeedTree Modeler, as that information is stored in the stmat file. The only difference between the three importers is the type of materials made after the mesh itself is imported. Extending the Script

If you wish to change how the materials are created, or add completely new material types, the plugin's python script has been designed to be easily extensible in this manner. All you need to do is add or change one of the classes that inherits from SpeedTreeImporterTranslatorBase. You will need to have a “description” member and a CreateMaterial() function that does the actual creation of the material and returns a shading node, based on the information in the SpeedTreeMaterial class that is passed in. Hooking the material up in the correct place on the mesh is all handled for you elsewhere. For examples, please see the SpeedTreeImporterTranslator, SpeedTreeImporterVRayTranslator, and SpeedTreeImporterMentalRayTranslator classes in SpeedTreeImporter.py.

IMPORTING TO 3DS MAX

After exporting a mesh from the SpeedTree Modeler, you can use the included MAXScript to load it into Max and recreate the materials as closely as possible. To install it, go to the Utilities tab and select MAXScript“. Select “Run Script from the ensuing rollout and browse to the script, which can be found at /scripts/3ds Max/SpeedTreeImporter.ms. Importing

Once the MAXscript has been run, you will have a new rollout with buttons for “Import”, “Import for V- Ray”, and “Import for Mental Ray”. When one of these buttons is clicked, it will ask to load a SpeedTree Material (.stmat) file. You don't need to worry about the format of the actual mesh exported from the SpeedTree Modeler, as that information is stored in the stmat file. The only difference between the three importers is the type of materials made after the mesh itself is imported.

Page 84 of 277 Interface

Each of the importers has also been declared a macroScript, enabling you to attach the importer(s) to a button in the toolbar, a menu item, or a keyboard shortcut in the Customize User Interface dialog of 3ds Max. Please see the 3ds Max documentation on macroScripts for more information.

Extending the Script

If you wish to change how the materials are created, or add completely new material types, the MAXScript has been designed to be easily extensible in this manner. You will need to make a MAXScript function that creates and returns a material (StandardMaterial, VRayMtl, etc.) based on the information stored in the passed-in STMaterial struct. Hooking the material up in the correct place on the mesh is handled for you elsewhere. You will also need to make a button in the utility rollout at the very bottom of the MAXScript, and you can add a macroScript declaration as well. For examples, please see the MakeSpeedTreeMaterial, MakeSpeedTreeMaterialVray, and MakeSpeedTreeMaterialMentalRay functions in SpeedTreeImporter.ms.

IMPORTING TO HOUDINI

After exporting a mesh from the SpeedTree Modeler, you can use the included Houdini OTL to load it into Houdini and recreate the materials as closely as possible. To install it, in Houdini, install the digital asset found at /scripts/Houdini/SpeedTreeImport.otl.

Note: If you are on the bleeding edge of Houdini and for some reason the OTL provided does not load, the python script that does the actual loading is also provided in the same directory (script.py). However, you will need to recreate the materials needed, or change the script to create some other type of material (see below).

Importing

Once the OTL is installed, you will now have a new SpeedTree Importer obj node. When you instantiate one of these, it will ask to load a SpeedTree Material (.stmat) file. You don't need to worry about the format of the actual mesh exported from the SpeedTree Modeler, as that information is stored in the stmat file. Once chosen, it will ask you the type of materials to make for it, Principled or Mantra. You can also add your own material types by editing the script (see below). Extending the Script

If you wish to change how the materials are created, or add completely new material types, the importer's python script has been designed to be easily extensible in this manner. All you need to do is add or change one of the classes that inherits from SpeedTreeMaterialCreator. You will need to have a “description” member and a CreateMaterial() function that does the actual creation of the material and returns a shop node, based on the information in the SpeedTreeMaterial class that is passed in. Hooking the material up in the correct place on the mesh is all handled for you elsewhere. For examples, please see the SpeedTreeMaterialCreatorPrincipled and SpeedTreeMaterialCreatorMantra classes in the python script inside the SpeedTreeImport.otl file.

IMPORTING TO C4D

After exporting a mesh from the SpeedTree Modeler, you can use the included Cinema4D python script to load it into Cinema4D and recreate the materials as closely as possible.

Page 85 of 277 You can run the script by choosing the Script / User Scripts / Run Script menu item. Or you can load it into the Script Manager and run from there.

Note: For the plugin to automatically be available in the User Scripts menu, you can place it in your script folder. Cinema4D can open this folder for you by choosing the Scripts / User Scripts / Script Folder menu item.

Importing

When the script is run, it will prompt you to load a SpeedTree Material (.stmat) file. You don't need to worry about the format of the actual mesh exported from the SpeedTree Modeler, as that information is stored in the stmat file. The script will load the appropriate mesh as best it can, and replace the materials with new ones based on the material information from the SpeedTree Modeler stored in the stmat file. Extending the Script

If you wish to change how the materials are created, or add completely new material types, the script has been designed to be easily extensible in this manner. All you need to do is change the MakeMaterial function in the python script, and the rest of the script will handle connecting it to the model appropriately.

IMPORTING TO LUMBERYARD

SpeedTree 8 has the ability to export directly to Amazon Lumberyard. These exported trees fit into the Lumberyard art pipeline and can be used as individual brushes or in the painted vegetation system, complete with wind bending.

Figure 66: Exported trees that fit into the Lumberyard art pipeline Export

Exporting to Lumberyard is accomplished with that option in the File menu. This will show the standard Game Export Dialog, though a few options will be set for you to facilitate a smooth export to Lumberyard.

Note: Be sure to export directly into your Lumberyard project directory! Texture paths in the materials need to be relative to the root of your project. If you export elsewhere and then copy it in, you will most likely need to update the texture paths in your materials.

Lumberyard

Once you export the tree to your Lumberyard project directory, the asset processor will prepare it for use in Lumberyard.

Page 86 of 277 Brush

The easiest way to add a single tree is to place it in the scene as a brush. Drag it from the available brushes and into the scene. These trees will be completely static (no wind), however. Vegetation

A better method for adding trees in bulk is to use vegetation painting. You can paint trees, or groups of trees, with variances on scale and rotation. Bending

When adding trees to the Lumberyard scene as vegetation, you have the option of enabling bending, or wind motion. Global bending is applied on the tree in the vegetation settings. This just bends the tree over. When active, however, you will also get detail bending, which is enabled on materials where necessary. Detail bending includes smaller branch and leaf motion. The SpeedTree Modeler makes it very easy to tune and preview the wind effects for Lumberyard.

Page 87 of 277

U SER I NTERFACE

TREE WINDOW

The Tree Window is the main area of the application, where the model is displayed and manipulated. It can be divided into up to four viewports, navigated using the mouse, and used to manipulate the model in a manner similar to many applications. The sections below detail the use of the Tree Window including the toolbar, which is in several cases the only way to access certain SpeedTree functions.

Figure 67: Tree Window - Main area of SpeedTree The Tree Window is the large, central area in the middle of the application in the image above. There will be a unique Tree Window for each open model (accessed by tabs along the top). Toolbar

The toolbar provides access to common modeling operations, rendering control, scene objects, and post processing operations. Consult the images and the corresponding sections below for details about each toolbar group. View

The options in this group (pictured below) control how the model is rendered and what about it is rendered.

Table 10: Control group - how and what is rendered

Render

This menu allows you to select the current render mode. The menu is populated based on the render mode files located in the “/render modes” folder, so it may vary slightly from version to version. In general, you will have a realistic PBR render mode by default (“Standard”), “Scribed” for polygon viewing, and many others for examining all aspects of the material system including ambient occlusion, vertex colors, and raw material values.

Page 88 of 277

Note: You can write your own render mode! Take a look at the files in the "Render Modes" folder and make one of your own. The shading language is glsl and most of the input data you would need is passed in to the function you'll need to write (RenderMode( )).

Show

This menu controls what is rendered. Use the top section to quickly hide any of the geometry types. The next section allows you to control the rendering of “extra” scene objects that may be helpful during the modeling process. Options include: . Bones: If bones are being computed, use this to see them. . Hints: Some generator/node types have hint renderings. Parent sensitivity on Leaf Mesh generators, and Shape Control on Branch generators are examples. . Normals: Toggles the display of vertex normals (blue), tangents (red), and binormals (green). Disable two- sided rendering: Toggles whether two-sided rendering works on the entire model. Turn this off to help aid in leaf/frond orientation before turning it back on for the final export. . Cages: Toggles the display of subdivision surface cages (if they are present). The “Selection style” submenu controls how selected objects are rendered. Options include: . Toggle highlighting: Toggles selection rendering. Use this to remove selection indicators for close inspection of the model while still being able to edit it. . Outline, Wireframe, Solid, Box: “Outline” is the default, and “Wireframe” is often used for polygon inspection. The remaining options toggle the display of the named Tree Window components. Zoom

This button zooms the camera (along its current view direction) far enough out to see the entirety of the selected object; or the whole model, if nothing is selected. Scene

The options in this group (pictured below) provide quick access to scene objects.

Figure 68: Control group for quick access to scene objects

Forces

The first two entries in this menu provide options for toggling the display of all Forces, and quickly selecting them all. The remaining entries provide mechanisms for selecting existing Forces or adding new ones. Collision Objects

The first two entries in this menu provide options for toggling the display of all Collision Objects and quickly selecting them all. The next two sections provide mechanisms for selecting existing Collision Objects or adding new ones. The final option, “Generate Collision Primitives,” pops up a dialog that allows you to automatically add Collision Objects to the model.

Note: Collision objects are available/applicable only in versions of SpeedTree intended for games or other real-time applications.

Page 89 of 277 Wind

This menu provides access to the following wind options: . Edit Wind Properties…: This option selects the Fan object and displays its properties in the Property Bar. . Edit Selected Object's Wind Properties…: If an object with wind options is selected, its wind properties will be shown in the property bar. . Enabled: Toggles wind on and off. . Gusting: Toggles gusting on and off. This option is not available for all wind types. . Wind Wizard…: Launches the Wind Wizard utility to help set reasonable wind values on your model automatically. . Set Conditions: This submenu provides a list of preset strength and gusting amounts/frequencies to match common environmental conditions. . Copy/Paste: Use these options to transfer Fan settings from one model to another. . Show Fan: This submenu sets when (and if) the Fan is rendered in the Tree Window.

Light

This menu provides access to the following lighting options: . Edit Light Properties…: This option selects the Light object and displays its properties in the Property Bar. . Presets: This submenu quickly changes all of the lighting colors/intensities to one of several predetermined environments. . Shadows: Use this submenu to set the shadow quality. . Ambient Occlusion: Provides options to render and clear per-vertex ambient occlusion.

Resolution

This group (pictured below) is available in VFX builds and enables you to quickly change the polygonal resolution of the model.

Figure 69: Control group available in VFX builds Edit

The Edit group (pictured below) contains controls to aid in model creation/editing.

Figure 70: Control group to aid in model creation/editing Generators/Nodes

These buttons select which editing mode the application is in. These are very likely the most important buttons on the toolbar, if not in the whole application! Understanding the difference between these modes is essential to the SpeedTree process. Season

This button pops up the season timeline slider for changing the current season.

Page 90 of 277 Add

Use this button to add new generators to the model. For a more complete description for what this means please look at the “Adding New Generators” section of the Generation Editor. Visibility

The options in this menu control which parts of the model structure are visible. Use these options to make it easier to see/edit the model. . Hide/Unhide Selected: Toggle the visibility of the selected generator(s) or node(s). . Show All: Shows all of the hidden generators and nodes. . Focus: Focus operates on the last node clicked in the window. Use these options to isolate parts of the model based on its anatomy as shown in the image below. Standard focus hides everything but the clicked node, its ancestors, and its descendants. “Focus siblings” hides descendants but ancestors remain visible. “Focus ancestors” shows only the clicked node and its ancestors. Batched leaves that are the children of focused objects will always be shown.

Figure 71: Different foci . Conceal/Expose: These options show/reveal the deepest level of generators. Use “Conceal” repeatedly to gradually hide generators down to the selected generator level. Use “Expose” to gradually reveal hidden generators.

Post

The Post group (pictured below) provides access to actions to be used on a model after it has been computed.

Figure 72: Control group that provides access to actions used on a model after it is computed

AO

Press this button to compute per vertex ambient occlusion on the model. Collision

Use this menu to set leaf collision options for the model. Export

Press this button to export the model as a mesh.

Page 91 of 277 Collapse

This button toggles whether names appear with the icons on the toolbar. Use these options to save room on smaller displays. Viewports

These are the 3D and 2D regions where the tree is rendered. The tree window can show a single viewport, two viewports (horizontal or vertical), or four viewports. Layout

By default there is only a single viewport visible (perspective). To enable other views, right-click in the tree window and select the pull-right menu “Layout.” Other configurations can be found there. You can change the active viewport from the right-click menu as well. Isolating a Single Viewport

A shortcut for isolating a single viewport is double-clicking the middle mouse button inside any viewport. Double-Middle-Click again to go back to the previous viewport arrangement. Projection Types

There are four projection types to choose from per viewport: perspective, XY plane, XZ plane and YZ plane. The perspective projection is the default view, and the other three are orthographic projections from the appropriate axis. Extra types are added when importing cameras from an FBX file. Splitters

Splitters are the horizontal and vertical lines that divide the viewports. Sizing the Viewports

The viewports can be resized by adjusting the splitters. Left-click and drag the horizontal splitter up and down to change the height of the viewports. Left-click and drag the vertical splitter left and right to change the width of the viewports. Left-clicking and dragging the region where the splitters cross allows width and height to be changed simultaneously. The splitters can be reset via the “Layout” portion of the right-click menu. Tree Window Overlays

There over several instances where extra controls and data are shown over the window contents. Fan

The Fan displays the directional influence and strength of the wind. Rotate the Fan by either clicking on it and using the rotate manipulator, or by holding down the "G" key and dragging the left mouse button. Control wind strength by holding down "G" and dragging the middle mouse button. Right click in the Fan area for quick access to wind functions, such as copy/pasting wind, or disabling gusting. Wind Indicator

When wind is on, a graphical visualization of wind strength and gusting is displayed below the Fan icon. The wind indicator has three sections: Strength

The lower left, blue triangle represents the current wind strength setting. Change the constant wind strength here, if desired. Gust Strength/Variance

The higher left cyan triangle represents gust strength. When a gust occurs, wind strength will reach this value, give or take the variance. The gust variance is visualized with a cyan bar extending up and down Figure 73: Graphical from the gust strength. visualization of wind strength and gusting

Page 92 of 277 Gust Frequency

The right cyan triangle indicates gust frequency. The higher this value, the more often a gust will occur. Light

The Light displays the directional light rotation, the light color, and the light intensity. The Light is a screen-space object that rotates with the camera, making light rotation relative to the current view. The Light can be rotated either by clicking on it and setting the manipulator mode to rotate, or by holding down the “V” button and dragging the left mouse button (side-to-side orbits the Light while up and down movements alter the slope of the Light angle). LOD Indicator

If LOD (level of detail) is enabled and the preview style is set to “Manual,” (both are tree generator properties), the LOD Indicator (bottom left corner of the tree window) is exposed and is able to control the current level of detail state. Drag the point from highest LOD to lowest LOD to preview LOD transitions at a fixed distance (or hold the CTRL key while dragging the left mouse button up and down). If the preview style is set to “Use Screen Area,” the LOD Indicator is still visible, but it is disabled from editing. Zoom the camera away from the tree to see it transition between the near and far LOD property values (another tree generator property). Lines are displayed on the LOD Indicator for the level of detail count and transition ranges. Axis Indicator

The Axis Indicator is representation of the major axes (X, Y, and Z) from the perspective of the current camera. Toggle its visibility via the tree window properties. Navigation

There are three modes of navigation: “Standard,” “Trackball,” and “Traveler.” To switch between navigation modes, right-click in the window and select the pull-right menu “Navigation.” Figure 74: Representation of axes X, Y, and Z from perspective of current camera

Standard

Standard navigation mode allows users to manipulate the scene as though it were surrounded by an imaginary trackball whose “up” vector is always aligned with the global 'Z' axis. This navigation type makes use of a pivot point to control where the camera is looking and to define the point of rotation. Panning

Start panning by pressing and holding the middle mouse button anywhere in the viewport. Move the mouse left, right, up, and down to move the viewpoint. Release the middle mouse button to stop panning. Panning moves both the viewpoint and the pivot point simultaneously. Rotating

Start rotating by pressing and holding the left mouse button anywhere in the viewport. Move the mouse left and right to rotate the viewpoint around the 'Z' axis of the pivot point. Move the mouse up and down to rotate the viewpoint above or below the pivot point. Release the left mouse button to stop rotating. Only the viewpoint changes during rotations. Zooming

Start zooming by pressing and holding the left and middle mouse buttons anywhere in the viewport. Move the mouse up to back away from the pivot point. Move the mouse down to move closer to the pivot point. Release both buttons to stop zooming.

Page 93 of 277 An alternative to dragging the mouse with both buttons down is to roll the mouse wheel. Roll the mouse wheel up to back away from the pivot point. Roll it down to move closer. It is sometimes desirable to move both the pivot point and the viewpoint at the same time while zooming (i.e., “push” the viewer and pivot point through an object to another one so that future pivots will be around the new object). To do so, hold the SHIFT key down while performing a typical zoom operation. Alternative Control Schemes

Some people prefer to use control schemes familiar to them from other applications. Below is a table of the available control schemes. The control scheme can be changed on the Application Preferences dialog. Autodesk® Maya® Maya-style controls will be used:

Rotate - press and drag alt+LMB Pan - press and drag alt+MMB Zoom - press and drag LMB+MMB, scroll wheel, or alt+RMB

Autodesk 3ds Max® 3ds Max-style controls will be used:

Rotate - press and drag alt+MMB Pan - press and drag MMB Zoom - press and drag alt+CTRL+MMB or scroll wheel

Trackball

Trackball navigation mode allows users to manipulate the scene as though it were surrounded by an imaginary trackball (this time, without an up vector restriction). This navigation type makes use of a pivot point to control where the camera is looking and to define the point of rotation. Panning

Start panning by pressing and holding the middle mouse button anywhere in the viewport. Move the mouse left, right, up, and down to move the viewpoint. Release the middle mouse button to stop panning. Panning moves both the viewpoint and the pivot point simultaneously. Rotating

Start rotating by pressing and holding the left mouse button anywhere in the viewport. Move the mouse left, right, up, and down to rotate freely around the pivot point. Release the left mouse button to stop rotating. Only the viewpoint changes during rotations. Zooming

Start zooming by pressing and holding the left and middle mouse buttons anywhere in the viewport. Move the mouse up to back away from the pivot point. Move the mouse down to move closer to the pivot point. Release both buttons to stop zooming. An alternative to dragging the mouse with both buttons down is to roll the mouse wheel. Roll the mouse wheel up to back away from the pivot point. Roll it down to move closer. It is sometimes desirable to move both the pivot point and the viewpoint at the same time while zooming (i.e., “push” the viewer and pivot point through an object to another one so that future pivots will be around the new object). To do so, hold the SHIFT key down while performing a typical zoom operation. Traveler

Traveler navigation mode allows users to navigate a scene as though they were a participant in it. Unlike the previous navigation modes, there is no pivot point. Instead, mouse motions are mapped to actions that move an imaginary traveler through the scene as follows:

Page 94 of 277

Walking

Start walking by pressing and holding the left mouse button anywhere in the viewport. Move the mouse up to walk forward and down to walk backwards (faster mouse moves result in faster walking). Move the mouse left and right to change direction. Release the mouse button to stop walking. Only the viewpoint changes during rotations. Walking motion is typically parallel to the 'XY' plane. To move in the direction the traveler is looking, hold down the SHIFT key while performing a regular walk action. Strafing

Strafing is the act of stepping sideways without changing the direction the viewer is looking. Start strafing by pressing and holding the middle mouse button anywhere in the viewport. Move the mouse left to strafe left and right to strafe right. Release the middle mouse button to stop strafing. Changing Height

It is possible to change the height of the imaginary traveler (distance along the 'Z' axis of the viewpoint). Change the height by pressing and holding the middle mouse button anywhere in the viewport. Move the mouse up to make the traveler taller and down to make the traveler shorter. Release the middle mouse button to stop changing the height. Looking Up and Down

Start looking by pressing and holding the left and middle mouse buttons anywhere in the viewport. Move the mouse left, right, up, and down to look around without changing the position of the viewpoint. Release both buttons to stop looking. Window Properties

There are a number of properties that control the viewports, background images, and other aspects of the Tree Window. Access these properties via the Window pulldown menu or selecting the "Window Properties" on the Property Bar when nothing is selected.

GENERATOR EDITOR

The Generation Editor is the area where models are constructed at the highest conceptual level. Generators are added to represent the branches, roots, fronds, leaves, and every other component of a tree. The structure of a tree is defined by how the generators are linked. The following image shows a notional tree model and the generator hierarchy used to make it.

Page 95 of 277

Figure 75: Generation Editor

Adding Generators

Creating and managing the generator hierarchy is the most fundamental task of the Generation Editor. The following generators are available to use:

Figure 76: Available generators

Page 96 of 277

Tree Root of the hierarchy and houses global model properties (cannot be added, deleted, or moved).

Branch Creates polygonal and subdivision branches.

Cap Caps off the end or beginning of open branches.

Shell Puts a whole or partial shell around a branch (this is a special mode of the Branch generator).

Knot Adds knots, cavities, gashes, and lumps to branch geometry.

Fin Adds small, planar details like fungi and peeling bark to branches.

LeafMesh Creates mesh based leaf geometry.

BatchedLeaf Very efficiently creates mesh-based leaf geometry (but you can't node edit the results!).

Frond Places blade or mesh geometry along a branch.

Zone Grow geometry from a mesh or circular region. Table 11: Available Generators

Now, let's take a look at the three main ways to add a new generator: 1. Click the Add icon in the Generation Editor toolbar. 2. Right-click a generator and select an option from the “Add geometry to selected” menu. 3. Click the Add icon in the Tree Window toolbar. All three of these options bring up the same menu of options to add. Each entry is one of a series of templates designed to look like common vegetation components. Each template is one or more of the generators listed above, with its properties set to commonly used values. For example, when you add “Trunk” geometry a Branch generator is added with values already set to look like a typical trunk.

Note: You can use the Default Generator submenu to add a single generator of any type and modify it as you see fit.

When any of these methods are used to add a generator, the new generator is placed in one of two locations in the hierarchy: . If nothing is selected, the new generator will be made a child of the Tree generator. . If a generator is selected, the new generator will be made a child of that generator.

Note: The Tree generator is always present and cannot be deleted or moved. It acts as the root of the hierarchy and houses many of the global model properties.

The fourth way to add a new generator is to copy an existing generator and then paste it. Generators placed this way will not be in the hierarchy until you explicitly link them.

Page 97 of 277

Note: Any generator that cannot trace links back to the Tree generator will be ignored and will not affect the model in any way.

Select a generator and press “F2” to rename it. Linking Generators

Generators are linked together in a hierarchy that represents the anatomical structure of the model. Each generator can have exactly one parent and each generator can have multiple children. Here are the two ways to create a link between generators: . Add a new generator via the three main ways listed in the previous section. When you do, a link is automatically created. . Drag a generator and drop it on another one. When you do this, any old link is deleted and the new one is created. To delete a link, select it and press the Delete key. Icon Overlays

Generators and links will frequently have context-sensitive hint icons applied to them. Consult the image below and the following list for a description of what the icons mean.

Figure 77: List of what icons mean . A - Messages: Indicates that at least one error, warning, or note messages is available for this generator. Messages can be viewed by selecting the generator and opening the message pane on the Property Bar. . B - Selection Tag: Indicates that a scene object that concerns the generator is selected (usually a force that is used on the generator or a node created by the generator). . C - Hand Drawing: Indicates that the generator is hand drawn. . D - Node Count: Relays the number of nodes made by the link. In this example, there are 555 frond nodes. . E - Hidden Generator: Hidden generators are slightly grayed out. . F - Shape Control: Generators under shape control are indicated by the blue highlight.

Note: The "Forces" and "Mesh Forces" icons near the Tree generator provide quick access to force selection and creation.

Page 98 of 277 Toolbar

The Generation Editor toolbar offers three options, Add, Action and Randomize:

Add

Use this button to add generators as described above. Actions

This button is the same as the right-click menu and changes based on whether something is selected or not. If nothing is selected: . Add geometry: Add generators as described above. . Organize: Automatically arrange generators and control whether the generators are displayed in portrait or landscape mode. . Zoom all: Zoom out to see all of the generators (double clicking empty space is a shortcut for this operation). . Paste: Pastes and copied generators. If a generator is selected: . Add geometry to selected: Adds generators as described above. . Save selected as template…: Saves any generator arrangement you make as a template and uses it later via the “From file…” option on the add menu. . Organize: Automatically arranges generators and controls whether the generators are displayed in portrait or landscape mode. . Zoom all: Zooms out to see all of the generators (double clicking empty space is a shortcut for this operation). . Hand drawing: Converts procedural generators to hand drawn generators where applicable and assigns hand drawing targets and lock states. . Toggle visibility: Shows/Hides selected generators. Hidden generators will still compute if any of their descendants are visible. . Clear node edits: Removes any node edits made to the nodes created by this generator. It does not affect deleted nodes (unlink and relink the generator to bring back all deleted nodes). Select nodes with edits: Switches to node editing mode and selects all of the nodes that have been node edited. . Select and reveal hidden nodes: Switches to node editing mode and ensures all of the nodes are no longer hidden. Any that were hidden will now be selected. . Randomize selected: Randomizes only the selected generators. You'll need variance on some properties for this to work! . Variance: Quickly clears all variances or quickly sets all of their types to the same thing. Select: Quickly selects all generators of the same type currently selected. This is useful to make broad changes like making all of the leaves bigger. . Cut: Copies a generator to the buffer and delete it. . Copy: Copies a generator to the buffer. . Paste: Pastes the contents of the buffer (new generators are created). . Paste into: Pastes the contents of the buffer into the selected generator (no new generators created). . Duplicate: Instantly makes a copy of the selected generator(s). . Rename: Pops up a dialog box where you can type in a new name for the generator. . Delete: Deletes the currently selected generators and links.

Randomize

Randomizes the whole model if no generators are selected or only the selected generators otherwise. You'll need variance on some properties for this to work!

Page 99 of 277 PROPERTY BAR

Most things that you actually edit in SpeedTree are objects with properties. Whenever anything is selected, its properties will show up in the Property Bar. When multiple things are selected, the Property Bar will show only those properties that are common between them. Editing properties with multiple things selected will apply the edits to everything that is selected. Navigation

When there are more properties than can be shown on screen at once, you can scroll through them with the scroll bar or scroll wheel on your mouse. Every major property group will “stack” as a button at the top or bottom of the Property Bar. If you click one of these group headers, the Property Bar will scroll to show that group. Many objects you can select will also show tabs at the top of the Property Bar. These tabs group similar properties that are often edited together. Clicking a tab will allow you to focus on just the properties in that group. Click on the “All” tab to go back to showing all the editable properties.

Group Menu

Each major property group has a menu button on the right that looks like an arrow. Clicking this will reveal a menu with Copy, Paste, and Help options. Copy and Paste allow you to copy the values of the properties within that group, to be pasted into a different object, generator, or node with the same group of properties. Choosing Help from the group menu will open a web browser to the documentation for that group of properties. Message Pane

If the object selected has generated any errors, warnings, or information during tree compute, these will be listed in the message pane at the top of the Property Bar. Normally this pane is collapsed, but you can open it manually if you wish. Errors and warnings will also open it automatically when they occur. Editing Properties Figure 78: Property Bar

Properties can be of different types: numbers, combo boxes, colors, etc. Some properties have curves that can be edited in the curve editor when they are clicked. Similarly, some have variances that can be edited in the variance editor.

Curve Editor

The SpeedTree Modeler incorporates curves in the majority of its properties, which allow for easy and detail-oriented modifications to static property values. The curve editor is the interface feature that allows you to view and edit curves. Most properties can be controlled by one or more curves. When you click on a curve in the properties window (below, left), the curve editor appears (below, right). The curve editor is an interactive window that gives you a detailed view of the curve, and options for shaping it. For specific details about the different types of SpeedTree curves and their functions, please see the Curves page.

Figure 79: Curve Editor Toolbar

Components of the curve toolbar, common to all curves, are as follows: . Parent Level - A drop-down menu that allows the user to select the curve associated with each parent level of the current property on the currently selected generator. . Curve Preset - A drop-down window that allows quick selection of the most commonly used curve shapes. See below for a brief description of each preset. . X - Displays the horizontal coordinate of a point on the curve. The general range of X is 0 to 1. With the exception of the terminal points, on any other existing point you can directly enter a value for precise point placement. . Y - Displays the vertical coordinate of a point on the curve. The general range of Y is 0 to the maximum value entered for the property. You can directly enter a value for precise point placement. . Pin - The default behavior of the curve editor is to close when you click outside the editor. Toggling the pin keeps the curve editor from closing when making edits in the Modeler outside the curve editor.

Page 101 of 277

Figure 80: Components of the curve toolbar, common to all curves Curve Window

The lighter gray area in which the curve is contained. The range is (0,0) to (1, Max). This is where you can directly edit and modify the curve shape. . To edit the curve shape simply click and drag any of the green points. You can select more than one point on the curve by pressing CTRL and clicking each point you want selected or by clicking and dragging a box around the points. . To add a point to the curve, double-click anywhere on the curve where you’d like another point to appear. . To delete a point, click the point to select it and hit delete. . Bézier handles can be added to any existing green point on the curve by double-clicking it. This allows you to create true Bézier curves in the curve editor. To remove the Bézier handles from a point, double-click it and it will revert to a standard point.

Figure 81: Curve Window Note: The curve can be edited in such a way as to exceed the vertical range and exit the light gray portion of the window into the darker gray area. However, this is not generally recommended as it can cause undesirable model behavior. You can increase the range by modifying the property's numerical value.

Page 102 of 277 Preset Curve Shapes

Standard Curve Presets

Page 103 of 277

Page 104 of 277

Figure 82: Preset Standard Curve Shapes

Note: The preset shapes pictured below are designed to be used with Season Curves and Resolution Curves. That doesn't prevent their use with other curve types, but as the shapes are highly specialized, they are not likely to be of much use elsewhere.

Page 105 of 277 Season Curve Presets

Figure 83:

Figure 84: Season Curve Presets

Page 106 of 277 Resolution Curve Presets

Figure 85: Resolution Curve Presets

Page 107 of 277 Variance Editor

Many generator properties have a variance value. This value describes the range in which the generator value can vary for each node. Variance can be applied using several algorithms; for example, let's examine the following image.

Figure 86: Variance Editor

Here we have four identical, simple trunks, each one generating 23 simple branches with an absolute length of 10.0. The only difference is the amount and type of variance on the “Spine:Length:Absolute” property. Trunk "A"

Length variance is set to 0.0. All branches are exactly 10.0 units long. Trunk "B"

Length variance is set to 3.0 and the distribution algorithm is “Uniform (random).” Each of its 23 branches has a length between 7.0 and 13.0 chosen at random. Trunk "C"

Length variance is set to 3.0 and the distribution algorithm is “Gaussian (bell curve).” Each of its 23 branches has a length between 7.0 and 13.0, chosen based on a Gaussian distribution. Notice that the lengths are more closely clustered around 10.0 than in the purely random example. Trunk "D"

Length variance is set to 3.0 and the “Cohesion” slider is set to “Cohesive,” meaning branches closer together will exhibit less variance than branches further apart. Each of its 23 branches has a length between 7.0 and 13.0, chosen using a noise function based on the branch's position on its parent. Editing Variance

Click on the variance button of any generator property that has variance to bring up the Variance Editor (pictured below). The button will be a gray “+/-” when the variance is 0.0; otherwise, the variance amount will be rendered with a pink background.

Figure 87: Variance Editor Control Group

Edit the values on this dialog according to the descriptions below: Variance

This is the amount by which the property can vary. Distribution

This option controls how the amount of variance is computed per node. “Uniform (random)” chooses a random amount of variance per node. “Gaussian (bell curve)” uses a bell shaped distribution where most of the variances are small amounts. Cohesion

The elements in this group control the degree to which neighboring nodes will have similar variance values. Use this option to create clusters of similar objects in your model. . Cohesive Use this slider to set how cohesive the variance pattern is, where higher cohesiveness means branches closer together will exhibit less variance than branches further apart. Scale Increase this value to tighten the noise pattern used to compute variance. Offset Modify this value to shift the noise pattern used to compute variance. Best Practices

Here's a short list of things to keep in mind when editing variance. . You need variance on at least some of the properties or “Randomize” won't do anything! . Use “Gaussian (bell curve)” when you want most of the values to be similar but with a few outliers. . Use cohesion to make very noticeable properties appear coordinated. A good example is “Season:Descendant offset” on branches. Adding cohesive variance to this property makes season changes in large sections of the tree appear varied, but related to where they are on the model.

ASSETS

Much of modeling a tree in SpeedTree is done with various asset files that are imported and used in the tree. The asset bars in the Modeler provide assets like textures or meshes to use in the tree. All of the asset bars have a common interface for adding, removing, and applying these assets to the tree. Common Asset Settings

Each of the asset bars has a common group at the top. The asset currently shown is set using the combo box in this group.

Page 109 of 277

Figure 88: The asset currently shown is set using the combo box in this group Assets can be added, removed, renamed, and reordered by clicking the +/- button. The “add special” button available on some tabs (+…), will open a file selector and create a new named asset for the chosen file. The clipboard button allows assets to be copied and pasted. Drag and Drop

Dragging and dropping is the easiest method to assign assets to parts of the tree. You can drag assets either onto the generators in the Generation Editor or onto the actual parts of the tree in the Tree Window. When dropping an asset onto the tree in the Tree Window, the Modeler will attempt to figure out exactly what you wish to replace. For instance, if a leaf generator has 3 materials assigned, and you drop a different material onto one of those leaves in the Tree Window, then only that asset in the generator will be replaced. However, if you drop an asset directly onto a generator with multiple assets already assigned (such as a leaf generator with two leaf materials), then all of the assets will be replaced with the one that you dropped. If you hold the ALT key while doing this, then the asset will always be added to the end of the list, instead of replacing what is currently there.

Materials Bar

The Materials Bar is where you create a material asset that can be applied to different parts of the tree. You can set textures, colors/values, and other settings pertaining to the rendering.

Figure 89: Materials Bar - where you create a material asset that can be applied to different parts of the tree Managing Material Assets

Adding, removing, changing the name, reordering, and applying material assets to the tree is done the same way for all of the assets. This process is described in Common Asset Settings.

Page 110 of 277 Settings

This section contains general settings for the material. Two-Sided

This option allows this material to be seen from both the front and back. Season

When working with Seasons, the season curve controls the weight of this material depending on the season slider. Max resolution

This option can override the app-wide setting for the maximum resolution of textures uploaded to the graphics card. The “default” setting uses the app-wide setting from the preferences. Unwrapping scale

This scale is applied to the size of this material when exporting an unwrapped mesh, exporting an atlassed tree for real-time rendering, and creating lightmapping UVs for game engines. User data

This string is available through the SpeedTree SDK for specialized material data SpeedTree doesn't otherwise provide. Variations

Variations allow you to randomly vary the color of a material slightly on different parts of a tree. For example, you create one leaf material, but you use variations to alter the color slightly, making it look like there are multiple kinds of leaves on the tree. Variations are very helpful when making cluster models intended for export material and used on another tree.

Figure 90: Variations - allows random slight variations of color of materials on different parts of tree

You can change your color palette by clicking on one of the three color tabs, which will open the Color Editor. You get one variation per color, plus the original texture, which makes 4 variations in total. The slider controls the intensity of the color applied per variation. On export, a new texture is created with your variation color/amount baked in, so nothing additional needs to be done in an external app to support it.

Note: Be wary of using variations in trees intended for real-time rendering. Each variation results in an additional texture, or more space used in the texture atlas. Often using two wildly different textures has a better effect than two variations with slight color shifts.

Mesh

This section allows you to set or create a mesh cutout that will be used with this material wherever it is used on the tree. You can choose a previously created/imported mesh asset. Clicking the Edit button is a shortcut to the Mesh Cutout Editor for either the currently selected mesh or, if no mesh is currently selected, a new cutout mesh. Maps

The maps of a material are the data used during rendering. This can be a color/value, a texture, or both. See the explanation of PBR Materials for what each map controls in the SpeedTree standard render mode.

Page 111 of 277 For each map, you may set a color or value, depending on the map type. If you wish to use a texture, click the texture button below the map's color/value and you will be presented with the Map Editor dialog. Ticking the checkbox in the top left corner of the texture button allows you to disable the texture quickly without losing any edits you have made on the texture itself.

Note: The final map value used on the tree is the color/value multiplied by the texture. The texture button illustrates this combination, while the Map Editor only shows the texture itself.

You can view each map type on the tree itself by selecting the appropriate render mode in the Material submenu of the Render Mode menu in the Tree Window. Doing this is often very helpful to see, at a glance, if there are any problems when you have many materials in one tree. Map Editor

The Map Editor is the dialog presented when you click the texture buttons on the Material Asset Bar. The controls at the top of the dialog allow you to browse for a texture, reload a texture, or remove s texture.

Figure 91: Map Editor - dialog presented when texture buttons clicked on Material Asset Bar

Adjustments

All adjustments can be done in real-time. Any adjustments made to the loaded textures will be baked in when the tree is exported. Channel This option is available only for grayscale maps, such as Opacity or Gloss. A texture file may have multiple channels: red, green, blue, and possibly alpha. This option lets you choose which channel to use for this map. Luminance, which is the grayscale version of RGB, is also an option. sRGB to Linear All rendering in the SpeedTree Modeler is done in linear space. That is, with no gamma adjustment applied. Enabling this option converts a texture from sRGB (the most common image gamma) into linear space for rendering. If your texture is already in linear space (which is rare), then disable this option.

Page 112 of 277 Normalize This option is available only for grayscale maps, such as Opacity or Gloss. Normalize will rescale the texture data so that it uses the entire black to white range. Invert This inverts the texture. White becomes black, and vice-versa. Invert RGB These options let you invert individual channels of your texture. This is very useful on normal maps, which may be in a different space than the Modeler expects. For instance, normal maps with a flipped green channel are pretty common. Brightness This option makes the texture brighter or darker. Contrast This option can increase or decrease the contrast (the difference between the light and dark parts) of the texture. Saturation This option can increase or decrease the saturation of the texture, which is how “colorful” the texture appears. Red This option modifies the texture to be more or less red. Green This option modifies the texture to be more or less green. Blue This option modifies the texture to be more or less blue. Minimum Adjusting the minimum, along with the maximum, allows you to rescale the texture luminance into a certain range. This is especially useful when bringing the color map into the right range for PBR rendering. Maximum Adjusting the maximum, along with the minimum, allows you to rescale the texture luminance into a certain range. This is especially useful when bringing the color map into the right range for PBR rendering. Color Editor

The color editor is a dialog that lets you pick colors for the various places in the interface where you need to set them, such as in the Materials Asset bar. The basic idea is that anywhere you click will set the color to what you see. The large bars let you adjust the current color along the Hue, Saturation, Vibrance, Red, Green, or Blue spectrum. The smaller bars at the top let you choose a fully vibrant color along the hue spectrum, or a grayscale value.

Page 113 of 277

Figure 92: Color Editor - dialog that lets you pick colors for the various places in the interface

You can click undo to go back to the color that was selected when the dialog was opened. Also, you can click the eyedropper button to sample a color from somewhere on your desktop.

Material Sets Bar

The Material Sets Bar is where you create a material set asset that can be applied to different parts of the tree, allowing you to combine a number of materials into a single group to be applied to the tree all at once. This is useful when setting up the changes between Seasons, or just keeping your materials organized in general. When applied to the tree, material sets work exactly like materials, and they in fact show up in all the same places as materials. When generating parts of the tree, however, the weights and season curves are used to pick the appropriate material that actually gets applied.

Figure 93: Material Sets Bar - combine a number of materials into a single group to be applied to the tree all at once

Managing Material Assets

Adding, removing, changing the name, reordering, and applying material assets to the tree is done the same way for all of the assets. This process is described in Common Asset Settings. Settings

This section contains general settings for the material set.

Page 114 of 277 Override season

Each member of a set has a weight curve to control its behavior in regards to Seasons. When enabled with the checkbox, this curve will be used instead of (and disable) all the individual member controls. Members

A material set can hold multiple members, each one pointing to a material in the Material Bar. You can add an empty member with the Add button, or delete a current member with the X button. The material for each member is chosen in the combobox. A preview of this material is shown on the right.

Note: Clicking on the preview image will take you to that material on the Material Bar.

Figure 94: Material set can hold multiple members; Add or Delete here Weight

With multiple members, you may wish to influence how often a particular one is picked. You do this with the Weight setting. Members with higher weights will be chosen more often.

Season

Like the Weight setting, the Season curve allows you to influence the weight at certain points along the Seasons timeline. Meshes Bar

The Materials Bar is where you create a material asset that can be applied to different parts of the tree. Use it to set textures, colors/values, and other variables pertaining to the rendering.

Figure 95: Adding, removing, changing the name, reordering, and applying mesh assets to the tree

Page 115 of 277 Managing Mesh Assets

Adding, removing, changing the name, reordering, and applying mesh assets to the tree is done the same way as all of the assets. This process is described in Common Asset Settings. Geometry

In this section, you may import mesh files for use in this asset. The SpeedTree Modeler can import OBJ and FBX meshes. You have the option of importing different meshes for “high,” “med,” and “low.” Which mesh is used on the tree in a particular situation is controlled by your Resolution settings and LOD settings. For resolution, you also have the option of switching the mesh to a simple plane when in Draft quality. Orientation

Changes the orientation of the mesh. The most applicable settings are “Z-up Right-handed” and “Y- up Right handed.” Set this value to the coordinate system used to create the model. For instance, a model made in Maya should be set to “Y-up Right Handed.” Arbitrary rotation orders can be applied as well. Flip

Inverts one or more axes of the mesh. Flip normals

The vertex normals are flipped and the mesh faces will light in the reverse direction. Match winding

If necessary, this corrects triangles whose face normal is different from their vertex normals. Collection

When a mesh asset has Collection enabled, it becomes a collection rather than a reference to a mesh file on disk. Parts of the tree can be set to contribute to this mesh collection, and then this mesh can subsequently be used as a mesh force in the scene. This is a great way to, for example, grow vines around the branches of a tree. Spines

You can choose whether branches, fronds, or both are collected into this mesh. Pivot

This option sets the pivot point of the collection mesh. When set to “Origin,” the scene origin (0,0,0) is used as the collection's pivot. When set to “First,” the pivot of the first contributing node is used. This option is useful if the collection contributors are already growing off the tree somewhere. Wind Direction

The properties in the Wind Direction group affect the way that leaf meshes react to wind. These settings apply only to meshes that have been assigned to leaf generators. Growth

A vector determining the direction the mesh is “growing.” This is necessary for correct wind behavior on meshes, such as Spanish Moss, that hang down. Depending on the way the mesh was originally modeled, this value may need to be changed to match the intended growth direction prior to being imported into the Modeler. Ripple

This value determines the ripple style used with this mesh asset.

Page 116 of 277 Proxy Collision

The settings in this group apply only to mesh assets that have been assigned to a proxy generator during proxy collision detection. Scale

This scales the bounding box of each mesh asset for proxy collision purposes. This scalar can be used to bring in or out the neighboring trees. Mesh collision scale can be further edited on a generator level (e.g. collision volumes can be scaled again per proxy generator). Weight

Proxies are sorted by weight before proxy collision occurs, favoring the higher weight when culling. Collision weight can be further edited on a generator level (e.g. weight can be scaled again per proxy generator). Edit

Clicking the Edit button will show the Cutout Editor dialog, where you can create or edit meshes that correspond to particular materials.

Cutout Editor

The Cutout Editor is a tool that allows you to create your own meshes for a material without having to use an outside program. In the Cutout Editor, there are many controls that can help you achieve high-detail meshes as well as optimized meshes for game assets. You can access this editor by clicking the “Edit” button in a particular mesh asset. If you have applied a mesh to a material (or wish to create a new mesh for a particular material), you can also use the shortcut “Edit” button in that material asset. There are three main groups of tools found at the top of the Cutout Editor: Points, Masks, and Anchors.

Figure 96: Three (3) main groups of tools found in Cutout Editor - Points, Masks, and Anchors Points

The Points tools allow you to add, move, and delete vertices in the mesh. Triangulation between these points is automatic. If you are editing a mesh for a material with an opacity channel, any completely transparent triangles will be removed automatically. Add/Move Add points by clicking in empty space. You can also move existing points by clicking/dragging them. Remove Delete points.

Reset Figure 97: Points tool Reset the points to the default layout (a square).

Page 117 of 277

Figure 98: Pivot points Pivot Point

The pivot point is a special point in the mesh that is displayed as white. This point cannot be deleted, but it can be moved. Its position is used as the origin of the mesh.

Masks

Transparent triangles will be automatically removed, but your material may not have an opacity channel. Or, you may just want to have a little more control over triangles that are removed. For this, you would paint a mask. Anywhere the mask is painted will have triangles removed. Paint Paint a mask. Erase Erase parts of the painted mask. Reset Figure 99: Masks Reset the mask to default (empty). Anchors

The Anchors group allows you to add/edit mesh anchor points for where children will grow.

Add/Move Add mesh anchor points by clicking in empty space. You can also move existing points by clicking/dragging them. Each anchor point has a white line coming from it that indicates the growth direction of anything placed there. You can drag the white dot at the end of this line to set this direction. Remove Delete mesh anchor points. Figure 100: Anchors Reset Reset the anchors to default (none).

Page 118 of 277 Options

Show Material This option sets the material shown in the preview, and affects the aspect ratio of the mesh created (to match the material). If you edit a new cutout mesh by clicking the “Edit” button in the material asset bar, this option will already be set to the correct value. Tessellation If you wish to have more triangles in the mesh so it will work better for fold, curl, or other deformations, you can add them using the tessellation control. It will intelligently subdivide the existing triangles. Double-Sided Occasionally you will want a double-sided mesh, which can often light better on things like palm fronds. This option will duplicate the mesh and flip the new one to face the other way. Angle If your texture/material isn't quite aligned with the Y-axis, use this option to rotate the final mesh after creation. The new y- axis is indicated by the orange line. Saving

Once you have created a mesh, you still need to “save” it to the mesh asset. You do this by clicking the “High,” “Med”, or “Low” buttons to store the mesh data in the corresponding mesh level. “High” is the regular place to save the mesh data, but you may want to make lower quality meshes for use with LOD or Resolution as well. Displacement Bar

The Displacement Bar is where you create displacement assets that can be used to displace the surface of branches, caps, and fronds.

Figure 101: Displacement Bar

Managing Displacement Assets

Adding, removing, changing the name, reordering, and applying displacement assets to the tree is done the same way for all of the assets. This process is described in Common Asset Settings.

Page 119 of 277 Settings

Filename

The image file used as the displacement source. Use the browse and reload buttons to change or reload the image. Channel

The channel source of the displacement map. This can be set to grayscale, red, green, blue, or alpha. Smoothing

The smoothing parameter will blur on the displacement map to remove high frequency changes. Often, a blurry displacement will work much better than one with tiny details. Brightness

This parameter lets you raise or lower the brightness of the whole displacement map, effectively adjusting the offset of the final displacement. Contrast

This parameter lets you increase the separation between light and dark parts of the displacement map. Masks Bar

The Masks Bar is where you create mask assets that are used on children of zones to control growth, for things such as world building.

Figure 102: Masks Bar Managing Mask Assets

Adding, removing, changing the name, reordering, and applying mask assets to the tree is done the same way for all of the assets. This process is described in Common Asset Settings. Masks can also be assigned in the “Generation” group of every generator. Masks can be stacked on top of each other, allowing for both simple and complex rule sets governing the placement of nodes off a generator's parent. Common Settings

These settings at the top of the bar are common to all types of mask assets: Behavior

The action this mask causes.

Inclusive This mask will determine where growth is allowed.

Exclusive This mask will determine where growth is not allowed. Table 12: Mask behaviors

Page 120 of 277 Fuzziness

Fuzziness relaxes the results of this mask when it is applied. Type

The type of mask can be set to Image, Terrain, or TexCoord. See further explanation below. Image Masks

Image masks are grayscale images (or a single channel from a color image), often used to mask growth off zones. While the mask itself is applied to the children of the zone, the mask is mapped according to the texture coordinates of the parent zone. Filename

The image file on disk used as the mask. Channel

The channel source of the image mask. This can be set to grayscale, red, green, blue, or alpha. Terrain Masks

Set a range for min/max elevation and slope. This type of mask could be used to push conifers up higher on a mountain or keep wide trees off steeper slopes. Slope

The angle range allowing growth. A 0.0 slope is a completely flat area. A 1.0 slope is vertical. Relative Elevation

The percentage range of the height of the parent zone where growth is allowed. 1.0 equals the top of the parent zone while 0.0 equals the bottom of the parent zone. Absolute Elevation

An absolute elevation range in scene units.

Note: if your parent zone is not tall enough to fall in this range, no nodes will survive the mask.

TexCoord Masks

Generation can be limited to a subset of texture coordinates on the parent node. For instance if your source object has texture coordinates greater than 1.0, you could allow growth only from areas of the mesh with texture coordinates in this range. U and V

The minimum and maximum texture coordinates range of the parent zone allowing growth.

Figure 103: Texture coordinates

Page 121 of 277 RENDER PHOTO

Render Photo allows you to create very high quality images of your tree by rendering with depth of field (DOF), bloom, exposure, and various image enhancements. You can save these to files, or use the “To Clipboard” button to put the final image right in the clipboard for pasting elsewhere.

Figure 104: Render Photo settings Size

These controls allow you to set the size of the final rendered image. The “x2” and “÷2” buttons are quick ways to scale the image by 2 and one-half, respectively. The Current button will reset the width and height to the current size of the Tree Window. Keep aspect ratio

When enabled, any changes to width and height will maintain the original ratio between them. Width/Height

These options set the size of the final rendered image. Focus

An important aspect of Render Photo is that it simulates the effects of a lens focusing. Distance

This option sets the distance where the lens will be focused and is used to simulate a depth of field effect: The farther away something is from this distance, the blurrier it will become, whether it is nearer to or farther from the camera. Figure 105: Focus You can also set the focus distance by clicking in the preview window. Whatever you click on will become the subject that is in focus.

Page 122 of 277 Aperture

The way things are blurred is influenced by the shape of the aperture on the camera lens. A circle shape is basically a “perfect” aperture, while other shapes can be used for effect.

Note: When a bright light is out of focus, you may actually see the shape of the aperture in the image. This effect is called "bokeh." Range

You can adjust the range in which things are in focus with this option. A value of 1 will make the entire tree in focus, and 0 will be an extremely tight range around the focus distance. Blur

This option sets the maximum amount of blur on something that is very out of focus. More blur can exaggerate the depth of field effects, but will also take longer to render. Shadow Sharpness

Similar to how the tree can be in or out of focus, this property controls the focusing of the shadows. The further a shadow is away from the thing that casts it, the blurrier it can become. A value of 1 will cause the shadows to be fully sharp, just like in the Tree Window. Bloom

Depth of field can cause bright light to bleed on top of surrounding darker objects. And when taking photos with a very bright light source visible (or a reflection of a bright light), the light may spread out, or “bloom” around it due to dust, smudges on the camera lens, etc. When used sparingly, bloom can add some extra realism to an image. Amount

How much of the bloomed light to add back into the image. Cutoff Figure 106: Bloom

This option sets the threshold of “bright” lights that will be bloomed. Anything below the cutoff will not bloom. Blur

This option controls how much to blur the bright lights before adding them back into the image. Image Effects

These effects are applied after the image has been rendered. They can do many quick edits that you would otherwise need an external image editor for, which is useful especially when you are copying the image straight to the clipboard. Exposure

This scales the raw image data, increasing or decreasing the brightness of the whole image before tone-mapping is performed, similar to keeping a lens aperture open for a longer or shorter time. Brightness

This option pushes the whole image brighter or darker. Contrast

This option increases or decreases the difference between light and dark parts of the image.

Page 123 of 277 Saturation

Saturation controls how “colorful” the image is. Setting this to 0, or “desaturating” it, will make the image grayscale. Vignette

Lenses can cause less light to reach the sides of an image, darkening them. This darkening is called a “vignette.” This option simulates that darkening. Sepia

Some very old kinds of film used chemicals that created a desaturated, brownish image. This option can simulate that effect. Sepia color

When using the Sepia effect, the image is pushed towards this color.

EXPORT MATERIAL/SEQUENCE

Both the Export Material and Export Image Sequence options in the File menu open the same image rendering dialog, just with different default values. This dialog lets you choose the Render Modes used for the RGB and Alpha channels, for as many images as you want to concurrently export. Exporting Materials

Exporting a material is often used when creating a Cluster for use in another tree. By default the images in the dialog will include the maps needed for a SpeedTree Material: Color, Opacity, Normal, Gloss, AO, Subsurface, and Subsurface Amount. If you need more, fewer, or different maps, you can change the maps exported.

Figure 107: Exporting materials - often used when creating a Cluster for use in another tree

Note: When exporting a material, you need to be wary of too much empty space. You can use the safe frame to visualize the area in the Tree Window that will actually be exported, and line up the model accordingly.

Exporting Image Sequence

Exporting an image sequence is often used when previewing wind and/or growth effects on a tree that would be too slow to accomplish in real-time, or when making an image sequence to composite into a shot directly in another video compositing application. The length and framerate of the image sequence can be set explicitly, or the total number of frames can be linked to the Timeline Bar to achieve growth or animated force effects.

Page 124 of 277 Settings Options

Keep aspect ratio

When enabled, this option keeps the width and height in the same ratio to each other. Width/Height

These options set the size of the images to be exported. If "Keep aspect ratio" is ticked, the width or height is changed to maintain the original ratio. Override bkgd

You can override the background rendered behind the tree to a specific color, per image. This is useful when exporting a material. Shadows

Enable/disable shadows when rendering the tree. Streak colors

If this export is meant to be used as a material with opacity, then streaking the colors is important. This feature examines the opacity channel and blends or Figure 108: “Exporting an image” settings "streaks" the opaque colors out into the transparent parts. Doing this prevents the surrounding background color from encroaching on the actual texture due to the effects of mipmapping. Ground

This option indicates whether the ground (and the tree's shadow on the ground) should be drawn. Clip below ground

When enabled, this option causes all geometry under the ground to be clipped out. Sequence

Use timeline

This option will lock the total number of frames to whatever has been set up on the Timeline Bar. Thus any change to “Length” or “Frame rate” with this enabled will adjust the other to keep the same total number of frames. Include wind

Enable wind during export with this option. Length

This option sets the total length, in seconds, of the sequence export. Frame rate

This option sets the frames per second, or framerate, of the sequence export. Frames

This is not editable, but it shows the total number of frames that will be rendered. Image

You can add new images with the add button, or delete existing ones with the X button on the image.

Page 125 of 277 Suffix

This sets the string appended to this image file when it is saved to disk. RGB

This sets the render mode used when creating the RGB channels of this image. The color to the right lets you set the background color used when “Override bkgd” is ticked. Alpha

This sets the render mode used when creating the alpha channel of this image. Since most render modes create color images, this data will be converted to grayscale before it's inserted into the image. The color to the right lets you set the background used when “Override bkgd” is ticked.

TIMELINE B AR

The Timeline Bar (pictured below) is where growth and wind animation are managed. Use the controls along the top row to specify the length of the animation in frames (“End”) and select the current frame either by typing it in or using the slider. Rewind, stop, play, loop, and step forward/step back buttons are provided for controlling the animation.

Figure 109: Timeline Bar - where growth and wind animation are managed Playback

Use the combo box in this window to control the frame rate of playback in the window. This frame rate will apply to both wind and growth. If the model can't compute or draw fast enough to achieve the selected frame rate the Modeler will skip frames to keep the overall sequence close to the correct length. Use “all frames” to force each frame to show regardless of compute/draw speed.

Note: This setting applies only to playback in the window. All exporting is based on frames and the ultimate timing/speed will be controlled by the target DCC application.

Wind

Wind animation in the window typically runs continuously when wind is enabled on the Fan object. Previewing wind in this manner makes it easier to tune and test; however, it does not give you control of wind strength during the export process. Enabling “Wind” on the Timeline Bar overrides the normal wind preview and puts it under control of the Timeline and the corresponding wind strength curve. The curve represents wind strength as a function of the percentage through the animation represented by the current frame. Use this method of wind control to explicitly animate wind strength for exporting.

Note: You can still edit wind parameters by selecting the Fan in when Timeline wind is enabled. Gusting, wind strength, and response times from the normal mode will be overridden by the curve, but all other wind properties still function.

Growth

Check this box to enable animated growth. Scrub the timeline to preview the growth animation based on the current growth property settings on each generator and the values entered for the properties in this group:

Page 126 of 277 Speed

This value sets the overall speed of the growth. All of the generator's speed properties are scalars applied to this value. Curve

Use the curve to accelerate or decelerate certain areas of the growth animation. A linear curve from 0 to 1 means the timeline sets the growth time directly. Keep in mind that individual generators can also use curves to control their growth speeds directly. Wizard

Press this button to run the Growth Wizard.

ART DIRECTOR

The Art Director is a gizmo located on the model designed to allow quick, graphical access to the commonly edited properties of each generator. For new users, the Art Director gizmo provides an easy mechanism to begin shaping a model. For expert users, it provides quick access to properties for rough shaping work. Hover the pointer over one of the handles to indicate which property it will edit. Drag the handle by holding down the left mouse button. The model will update interactively and the corresponding property will be highlighted in white on the Property Bar. The Art Director can make edits in both Generator and Node editing modes as described in the following sections.

Note: Use the “Show” menu on the Tree Window Toolbar or the hotkey 'A' to show or hide the Art Director.

Generator Editing Mode Edits

When in generator editing mode, the Art Director gizmo is rendered in translucent white to indicate that generator values will be edited. In the picture below, notice that the gizmo is placed on the branch with the dotted outline; however, all nodes created by that generator are selected. Art Director edits in this mode will edit the generator's value, thus affecting all nodes created by that generator.

Figure 110: Art Director gizmo

Note: You must click on the model in order for the Art Director gizmo to appear. It is always placed and oriented based on the node selected, regardless of the editing mode.

You can use modifier keys to make two additional types of edits while in generator editing mode.

Page 127 of 277 Parent Curve Edits (CTRL)

Hold CTRL while making an edit to the parent curve instead of the value. Only the first parent curve will be edited. The portion of the curve nearest the anchor point of the clicked node will get the full effect of the edit and will fall off gradually. This feature is typically used for edits like making branches shorter near the tip of their parent. The gizmo will be rendered in green when CTRL is down, as pictured below.

Figure 111: Parent Curve Edits

Note: Use the Curve Editor to make custom edits and to access higher parent levels.

Variance Edits (Shift)

Hold “Shift” while making an edit to edit the variance instead of the value. This feature is used to increase the randomness of the value across the generator. The gizmo will be rendered in mauve when “Shift” is down as pictured below.

Figure 112: Variance Edits

Page 128 of 277 Node Editing Mode Edits

When in node editing mode, the Art Director gizmo is rendered in translucent orange to indicate that node offset values will be edited. In this mode, only the selected node is modified. Use this mode to fine tune individual components of the model.

Figure 113: Node Editing Mode Edits

Note: Notice the appearance of two additional handles near the base of the branch. For some node types, extra handles appear in node editing mode that are better suited for editing individual components.

Page 129 of 277 A DVANCED T ECHNIQUES.

UPGRADING OLD MODELS

Models created prior to SpeedTree 8 comprise mostly Spine and Leaf generators. These models will open and look the same in 8 (with a few, minor exceptions), but they do not make use of many of the new features. Please see the sections below for why you should consider upgrading old models and how to go about it.

Note: Upgraded models will not be an exact replica of the old model. They will, at best, appear to have been randomized, and, at worst, require some editing to restore them to something resembling their previous state.

Why Should I Upgrade Leaf Generators?

Leaf generators have been superseded by two new generators: Batched Leaf and Leaf Mesh. The two new leaf generators are identical in their properties but differ in how they are computed. Batched Leaf generators compute very fast but do not allow node editing of individual leaves. Leaf Mesh generators compute much more slowly but each leaf can be edited as necessary. Batched Leaf generators are preferred and used in the automatic upgrade process. Here's some of what you gain when you upgrade: . Significantly faster leaf computation (up to 1000 times faster than v7 models) . Easier leaf orientation . Leaf deformation (fold, curl, noise) . Resolution control . Improved collision (leaf-leaf and leaf-branch) . New season system Why Should I Upgrade Spine Generators?

Three generators now do the job of the Spine generator: Branch, Frond, and Cap. The new approach requires an explicit entry in the Generation Editor for each type of geometry you want to appear. Frond and Cap generators must be the child of a Branch generator in order to work. Here's some of what you gain when you upgrade: . Branch extensions (child branches “continuing” their parent) . Spine noise . Context sensitive pruning . Aspect ratio correct UV mapping . Shape control . Improved welding . Blending between different branch materials . New vertex displacement (noise, shape, flares) . Resolution control . Easier control over caps and fronds How Do I Upgrade a Model?

Open any old model and look at the tool bar in the Generation Editor. If any generators that can be upgraded are detected, the “Upgrade” button will appear. Select any eligible generator and press “Upgrade.” The selected generator will be swapped out for a new one (or several as appropriate) that has its properties set to a close approximation of the original values. It is possible to convert the entire model at once; however, it is not recommended. The best approach is to upgrade generators one at a time, making corrections as you go to ensure the final result is an acceptable conversion.

Page 130 of 277

LEAF COLLISION

When a tree is generated procedurally, it may end up with leaves “colliding,” or intersecting, with other leaves and branches. The SpeedTree Modeler has features to detect these collisions and remove them.

Figure 114: Leaves “colliding” or intersecting with other leaves and branches Removing Collisions

Leaf collision removal is enabled in the toolbar of the Tree Window. You have a few options for the kind of collision tests performed:

None No action. Low Most leaf-leaf collisions are eliminated. Leaf-branch collisions are ignored (fastest). Medium All collisions are eliminated by a rough intersection test (intermediate speed, but this option can remove too many leaves). High All collisions are eliminated by an exact intersection test (slowest). Table 13: Collision removal options Collision removal works as a background process to prevent you from having to wait to continue editing your tree. Once it is finished, the results will pop in. Every time the leaves are changed, collision removal will re-run automatically. An example of the results of leaf collision removal is shown below:

Page 131 of 277

Figure 115: Collision removal When Using Clusters

On real-time trees that use Clusters, collision detection becomes a little trickier. Cluster geometry, such as that made with the Cutout Editor, often contains a lot of transparent parts, since the map includes many leaves and twigs. Exact tests on this geometry may remove a lot more leaves than you would want, since parts of the geometry that are touching may not matter so much. In this case you can enable “Use spherical tests on leaves.” This will replace the exact geometry tests with a spherical test. It will be faster, and it will leave behind more leaves. You can adjust the size of the spheres that are tested by changing the "Sphere threshold" property on the leaf generators. When Making Clusters

Similarly, when making the clusters, a different type of collision detection is warranted. Cluster maps often work better on a tree if they have fewer overlapping leaves. The collision detection options listed in the "Cluster plane overlapping" submenu are similar to the main options. However, they apply only to intersection tests done in the top-down (XY) plane. In this way, you can be sure your cluster maps have few overlapping leaves. Refining Collision Behavior

To further refine the results of leaf collision removal, individual generators such as the Leaf Mesh Generator and Batched Leaf Generator have additional properties pertaining to collision. These properties can influence which leaves "win" in a collision fight, which leaves are tested against which other leaves, and what happens to leaves (and possibly their parent nodes) when they lose.

MESH ANCHORS

Mesh anchors specify attachment points on mesh assets. These anchors can then be used to generate meshes as children of other meshes. The most common use for this technique is for building image-based branch and leaf structures for low polygon models. The image below shows mesh anchors in use on a model and the meshes as they appear in the Cutout Editor.

Page 132 of 277

Figure 116: Mesh anchors specify attachment points on mesh assets The only 3D branch in this image is the one protruding from the lower left. The rest are meshes with branch and leaf structure maps created using the cluster technique. Notice the green dots and white orientation lines in the mesh cutouts. These are the anchor points and the direction the “Y” axis of their children will face by default. Mesh anchors are always assigned in the Cutout Editor. Now let's examine this image of the generator hierarchy for this model.

Figure 117: Mesh anchor generator hierarchy for “cluster” technique The last 3D branch is selected. The remainder of the model comprises fronds and leaf meshes. When a generator that uses meshes is applied to another generator that uses meshes, standard generation properties do not apply. Instead, they are replaced by a single generation property called “Anchors,” pictured below.

Figure 118: “Anchors” property – generation restrictions

Page 133 of 277 Each mesh anchor is given an integer ID from 1 to 5. Use the “Anchors” property to restrict generation to a particular anchor number, if desired. Anchor numbers are assigned by right-clicking the anchor in the Cutout Editor. The “Shared” generation properties like “First” and “Last” still apply. Best Practices

The following list contains some tips to keep in mind when using mesh anchors. . The only place to edit mesh anchors is the Cutout Editor – they cannot be assigned to meshes created in other applications. . The cluster technique is often the easiest way to create the maps needed for this technique. There are cluster models in the samples folder to help get you started. . Mesh anchors work even if the parent mesh has been folded, curled, flipped, or otherwise deformed. . When stacking leaves on leaves it may be necessary to zero out the wind (or at least carefully tune the profile curve) on the base leaf to avoid separation when wind is enabled. . If your meshes have multiple LODs, mesh anchors must be assigned to each LOD. They can also be in different places, which may help when using multiple mesh LOD levels to control the polygon count at the highest LOD. . This technique is far more commonly used in real-time models than it is for VFX models.

CLUSTERS

While low triangle counts are essential in real-time trees, maintaining visual aesthetics is also important. Instead of using individual leaf maps on many pieces of leaf geometry in a real- time tree, it is often better to use a texture that includes many leaves with their branch/twig structure to capture the same fullness with much lower triangle count. This is a “Cluster”. Watch a video demonstrating the creation and use of Clusters, previously known as Leaf Map Makers, in real-time trees.

Figure 119: Use of Clusters in Note: The term “Cluster” can refer to the many-leaf texture maps or the SPM place of low triangle counts file used to create those maps.

Making a Cluster

Making a Cluster is similar to making any other tree, but you are only concerned with a single branch structure. You can start one of these from scratch, or you can isolate a branch from a previously-made tree as a starting point. You can isolate parts of the tree by hiding Generators in the Generation Editor, or use Focus.

Setup View

You will ultimately be exporting textures that will be wrapped on a piece of geometry used in another tree. It is better to model this using an orthographic, or flat, view so it will work well in this scenario. Change the viewport camera in the Tree Window from Perspective to XY plane, which Figure 120: Setup View for viewport will give you an above/looking down view of the isolated branch structure. You may camera - XY plane have to move the camera and rotate the main branch around the trunk so the branch is centered in the middle of the viewport. Also make sure the base of the branch touches the bottom of the viewport, as this will be the “origin” of the Cluster in the other tree.

Page 134 of 277 Leaf Lighting

Having correct normals is very important in order to have a cluster map that lights correctly. Many nuances of individual leaf lighting, such as specular highlights from different angles, can be easily lost when creating a cluster due to texture resolution and mipmap filtering. Leaves that more or less face the camera and have bold normals (where each leaf mostly lights from the same direction) tend to work better.

Figure 121: Leaf Lighting Use “Local Orientation:Unification:Global” property on leaves and fronds to make them mostly face out. You can tick the “Disable two sided rendering” option in the “Show” menu of the Tree Window to ensure they are facing the correct way. Limiting the amount of deformations, such as fold and curl, you apply to the leaf can also make it stand out more and have a broader specular highlight. The “Lighting:Unify” property can be used to minimize the variance of normals across that leaf, resulting in larger, more pronounced specular highlights. Don't be afraid to push the normals around a little bit, as well. A bit of variance on the Lighting Adjustments properties can make each leaf light slightly differently. Collision

Too many overlapping leaves can cause a cluster to look more like a solid color from a distance. You can fix this manually by controlling the generation of the branches and leaves, but Collision is an easy way to help to alleviate it. Overlapping geometry is automatically removed. A special form of Collision called "Cluster plane overlapping can be enabled in the Collision menu of the Tree Window. When this is enabled, any leaves that share the same camera space (not 3D space) will be tested for removal. This ensures that no leaves are overlapping specifically in the view from which you will be rendering the Cluster. Texture Adjustments

Once the cluster is exported and brought back in as a material, it will be difficult to do texture adjustments. This is because you will be editing a map that has many things (leaves, branches, twigs, etc.) that may not all adjust in the same way. For this reason, be sure to do all your texture adjustments before exporting. If you follow the guidelines for making good PBR Materials in the cluster file, the final material exported will also work well with PBR. Exporting the Cluster

Before exporting the cluster maps, enable the screenshot safe frame in the Tree Window. This will draw a red guide box in the Tree Window, indicating the exact shape of what will be exported. Set the “Width” and “Height” properties to the size you will be exporting. Then line up the tree within the shape, minimizing extra empty space. Figure 122: Before exporting cluster maps, enable screenshot safe The cluster can then be exported by choosing the option frame in Tree Window “Export Material” in the File menu. This will generate all the texture maps you will need to use this cluster in another tree. Using a Cluster

Switch to your actual tree and import the cluster maps into a Material Asset the same way as any other material. You will most likely also want to create a Cutout mesh for it to minimize empty space while keeping the triangle count manageable.

SPLITS

Trees that split into two parts as they grow upward are common in nature. In SpeedTree Branch Generators can add a configurable split to add realism to your tree models

Page 135 of 277 Note: In older versions of SpeedTree, there was a similar feature called “bifurcation.” That term is still used in SpeedTree 8 but means something else. See Bifurcation for its current meaning.

Figure 123: Splits How to Split

You'll do your editing for splits between two generators. The starting generator, for example a trunk, will be the control for whether or not there are splits. The generator that follows (as an extension of the parent) is where the new post-split branches are placed.

Step 1: Click the generation level that will start the split. Step 2: Edit the "Skin:Splits:Chance" property to increase the likelihood of a split. Step 3: In the generator that is splitting, make sure "Extend

Parent" is enabled. Figure 124: Click generation level that starts split & edit "Skin:Splits:Chance" property to increase likelihood of split Step 4: Edit the other "Splits" properties to control the actual split geometry. You can control the thickness of the splitting branches, the balance between them, and the smoothness of the “crease.” UV Tiling

When you split a branch, the texture wrapping around it must also split cleanly. This means your U tiling must be divisible by two, so it can accommodate being halved. For example, if your trunk has UVs that tile twice in the U direction, each of the splits will then be able to tile once. For more information on editing branch UVs, please see the UV Mapping section of the Branch Generator.

Figure 125: UV Tiling

Page 136 of 277 Different Extensions

In the “Extend Parent” property, there are options to extend one side of the split and not the other. This allows you to have entirely different style branches growing off of either side of the split.

SHAPE CONTROL

Shape Control is a feature of the Branch Generator that lets you quickly confine your tree within a shape that is anchored somewhere in the tree's hierarchy. Shape control serves as an alternative to using a Mesh Force to create a tree shape, but offers the additional benefit of being able to control the distribution of branches as they fill the shape. Shape

A sphere is the default shape used for shape control, and you can do many things with it. However, you may use any shape mesh to guide the growth. You set this by choosing the appropriate mesh asset in the "Shape Control:Style" property. Position

Where you place your shape is an important part of shape control that determines its effect on the tree. Shape Control can be set to any level of your tree structure. Once applied, it will automatically include all of the generators after it in the hierarchy, until you manually turn off the levels you don't want to include by changing the "Spine:Stop shape control" property.

Figure 126: Shape control is enabled on the trunk. This will Figure 127: Shape control is enabled on a second tier create a round “lollipop” tree. generator. This will create “puffs” on the branches.

Adjusting the position and size of your shape can result in very different effects.

Page 137 of 277

Figure 128: Adjusting the position and size of shape

Note: Turning on hints in the Tree Window allows you to see the shape's position and size.

Distribution

Once enabled, shape control will override the length settings on any affected branches to fit within the correct shape. The total “length” is divided among the branches that will follow. You can affect this with the “Shape Control:Distribution” property. For example, sliding distribution to the right will create longer lengths in the first set of branches and shorter ones in the last set.

Note: All of your edits for branch distribution are done in the generator in which you have started shape control.

Sometimes shape control can result in some errant branches extending in directions you don't want. Pruning, especially “down” pruning on most trees, can be very helpful to get rid of these to clean up the shape of the tree. See below.

Figure 129: Pruning

Page 138 of 277

Post-Shape Deformations

Deformations done to the branch spine, such as noise, gravity, and forces, all happen after shape control. Because of this, they are capable of pulling your branches outside the desired shape, as shown below. The easiest modelling method while working with shape control is to keep your generators free of these deformations until you've gotten your shape control working correctly. Then, you can proceed to the other deformations.

Figure 130: Post-Shape Control Deformations

COLLECTIONS

Collections allow tree geometry to be collected in a mesh asset during tree model compute. This gathered geometry can then be used by generators and forces just as any other mesh asset would be. Creating a Collection

Collections are created via the Mesh Asset bar. Use the “+/-” button to add a blank mesh asset and check the box marked “Collection.” Collection Properties (Mesh Asset bar)

The two properties in this group allow you to control how the collection is created. The Figure 131: Creating a Collection “Spines” property controls what geometry types can be contributed from Spine nodes. The “Pivot” property determines how the pivot point for the collection is determined. “Origin” uses the world coordinate (0.0, 0.0, 0.0), and is appropriate for capturing tree geometry for growth or collision purposes. “First” uses the pivot point of the first object that contributes to the mesh as the pivot point for the collection. This option is useful when creating collections that may later be used as leaf or frond meshes. "Create Collection from Selection" Tool

Use this tool under the menu item “Tools→Create collection from selection” to automatically create a collection from the current selection. The process creates the mesh asset and assigns the correct checkbox to all contributors.

Page 139 of 277 Contributing to Collections

To make a generator contribute to a collection, look for the Collections group with the “Generation” properties (depicted to the right). There will be a check box for each collection asset. Check each collection that the selected generator should contribute to. Repeat this for each generator whose geometry should be Figure 132: Contributing to Collections – Select in the collection. Collections group with the “Generation” properties

Note: Order matters. Generators that contribute to collections should precede generators that use them during tree model computation. This means contributing generators should be on lower levels and to the left of using generators when the Generation Editor is oriented vertically.

Mesh forces can also contribute their geometry to collections. The Collections group in the “Mesh” properties of the force object works in the manner described above.

Note: The "Collections" group will be present only if at least one collection has already been added to the scene.

Examples Example 1: Ivy growing on a zone

A good example where collections are useful is growing ivy off of the roots and trunk of a tree (see image to the right). The brute force way to do this is to use two nearly identical leaf generators, one linked to the roots generator and another to the trunk generator. The problem with this approach is that it is hard to get an even distribution or to use masks to uniformly control the areas where the ivy can grow. A better approach is to create a collection that captures the root and trunk geometry as it computes and then use that collection in conjunction with a zone generator to grow the ivy leaves. This approach provides the best way to get even, controllable growth off of the trunk and roots, even when the trunk and roots change shape. Example 2: Self-colliding branches

Collections can be used to prevent branches from colliding with each other as they grow. For example, collect the roots of a tree into a collection and create a mesh force that uses that collection. Set the Force Action, Collide Action, and Keep Action properties as desired and then apply that force to the root generator (the same generator that contributed to the collection). Now, as each new root computes, it will collide with the Figure 133: Growing ivy off roots and roots computed before it. trunk of a tree Example 3: Vines growing over a trunk

Another good use of collections is when vines are growing over trunk geometry. In order to be able to change things about the trunk after the vines have been added, a collection of the trunk must be created first. Then, the vines can collide with a mesh force that has been assigned the collection, which is self-updating.

VERTEX COLORS

Vertex colors are red, green, and blue values stored for each vertex in the model. Generators that create geometry can compute vertex colors if requested. Each generator has a set of “Vertex Color” properties that either set the color directly or modify a color they inherit from their parent. Modifying inherited colors provides a mechanism for smoothly transitioning colors across nodes and generators.

Page 140 of 277 Note: Vertex colors are only computed when the “Vertex Colors” compute flag is enabled on the Tree generator.

Viewing Vertex Colors

Render modes have been provided to see the vertex colors on the model. Select “Color,” “Red,” “Green,” or “Blue” from the “Render” button on the toolbar to preview vertex colors as shown below.

Figure 134: Render modes – capability to see vertex colors on models Mesh Assets

Mesh assets that are imported from .FBX files will retain vertex colors if they are present in the model. These colors can be added to or used to replace the procedurally-computed vertex colors.

Page 141 of 277 R EFERENCE

GENERATION PROPERTIES

Each generator has a group of properties called “Generation.” These properties control how many nodes are created by each generator, where each one is on its parent, and which direction each node is facing. Modes

Under the “Generation” group on each generator, there are several different modes to choose from. The first sets of properties are unique to the selected mode. The next sets are shared by all of the modes. These shared properties are documented at the end of this page. Generators “generate” new nodes for each node made by its parent generator. Nodes are generated based on the selected “Mode” and its associated properties.

Note: Some modes use the size of the parent, some adapt to the shape of the parent, and some just set the children directly. Choose the mode most appropriate for each generator in your model.

Interval

Interval mode creates nodes at regular intervals along the parent and is suitable for use in a wide variety of modeling situations. Phyllotaxy

Phyllotaxy is the scientific word meaning “the arrangement of leaves on a stem.” The Phyllotaxy generation mode provides access to many common styles of leaf growth. Bifurcation

Bifurcation mode places nodes on spots where the parent bends, simulating a split in the branch. Bifurcation is often the easiest way to get an organic look to your models. Proportional

Proportional mode creates nodes based on the size of the parent. This mode is useful for randomly distributing nodes on a parent based on the size of the parent. Proportional Steps

Proportional Steps mode creates a series of steps with each step containing several nodes. This style of generation is commonly seen on pine trees. Absolute

Absolute mode creates an exact number of nodes. Use this mode sparingly since it does not adapt to the size of the parent at all. Specifying exactly one trunk or switching over to this mode to periodically reduce node counts are common uses for this mode. Absolute Steps

Absolute Steps creates an absolute number of steps with each step having several nodes. This mode does not adapt to the size of the parent and should be used sparingly. Classic

Classic mode exists solely to support legacy models and should be avoided on new models.

Page 142 of 277 Shared

The properties in this group apply to all generation modes. Boundaries

First

The lowest point on the parent where nodes can occur. Last

The highest point on the parent where nodes can occur. Clip

When enabled, this option removes any nodes that are pushed past the 'First' and 'Last' value range (usually by “Spread” or “Position” variance). Rotation

Rotates all nodes around the parent spine as a group.

Note: Use variance to jumble up the rotation of all of the nodes.

Position

Shifts all nodes up or down the parent.

Note: Use variance to jumble up the position of all of the nodes.

Size Scalar

Scales not only the size of the nodes themselves, but also the size of their children. Pruning

This curve removes branches based on their position on their parent (left side corresponds to nodes near “First” and the right side corresponds to “Last”). Nodes are removed where the curve value is below 0.5 and kept otherwise. Sink

Adjusts the starting position of all nodes, allowing them to “sink” into (or be pushed away from) their parent. This property is commonly used to push trunks slightly below the ground plane for easier placement in scenes.

Extend parent

This option forces an extra node (or nodes) to be generated at the end of the parent branch, regardless of how many were generated by the selected “Mode.” If a Branch generator extends another Branch there will be a seamless transition between the nodes. This can be used successively to go from the trunk to the tip of a twig with no transitions. Caps are always generated in this fashion. Options include:

Page 143 of 277 None No extension nodes will be generated. Any A node will be generated for each open end of the parent (branches can split into two openings). Split 1 A node will be generated off the first split (or only open end) of the parent. Split 2 A node will be generated off the second split (if it exists) of the parent. Skinny A node will be generated off the skinnier of the two splits on the parent. Fat A node will be generated off the fatter of the two splits on the parent. Breaks only A node will be generated only if the parent is broken. Bottom A node will be generated that extends the bottom of the parent. Table 14: Extend Parent options

Note: Multiple generators can extend a single parent. Use this with splits and the styles “Split 1,” “Split 2,” “Skinny,” and “Fat” to distinguish and target each part of a split parent.

Knock Out

Removes nodes randomly after the “Mode” has created them but before they are computed. Use the parent curve to target this feature based on the model's structure. Force mesh containers

These are containers that control where in 3D space nodes can be generated. By typing the name of a force mesh in the box, generated nodes will determine if they are inside the box and then act according to these options:

Include Nodes that fall inside the specified force mesh will be created, others will not.

Exclude Nodes that fall inside the specified force mesh will not be created, others will. Table 15: Force mesh containers options

Masks

Assign mask assets here to limit the placement of generated nodes.

Interval

The Interval mode places children in groups at intervals along the parent node. In the image to the right, the branches coming off the trunk use this mode of generation. The first group is always at the point specified by the “Shared:Last” property. More groups are added based on the “Frequency” property until the point specified by “Shared:First” is reached (there is no guarantee there will be a group at “First”). This is one of the most common generation modes. It adapts to the size of its parent so it randomizes well and generates reasonable placements when the generator's parent has varying sizes. Each of this generation mode's properties is described below. Figure 135: Interval mode

Page 144 of 277 Frequency

This property controls how often a group of nodes is generated. Decrease the profile curve to reduce the space between groups, increase it to increase the spacing. Count

This value sets the number of nodes in each group. Spread

Use this value to apply a random up or down offset to the nodes in each group. A value of 0.0 means each node in the group are placed at the same position along the parent. A value of 1.0 means each node might spread out as far as the next or previous group placement. Spiral

Each group (starting with the one at the end) is rotated by this amount more than the previous group, creating a spiral pattern down the parent. Limit

This value sets the maximum number of groups (not nodes) that can be generated. For example, you can use this value to ensure there is a single group at the end, like flower petals, or a single group near the beginning, for roots. Align style

When “Align” is enabled, generated nodes attempt to roll their initial orientation skyward as much as they can, according to the following options:

Individual Each node rolls skyward independently.

Group All of the nodes in the group roll skyward together. Table 16: Align style options Align

This option toggles the skyward rolling behavior described above. Balance

Balances the branch nodes by rotating each group to fill the empty spaces left by the previous group. Shared

The “Shared” properties are common to all generation modes and are documented here. Phyllotaxy

Phyllotaxy is a scientific term that means “the arrangement of leaves on an axis or stem.” The Phyllotaxy generation mode provides access to common leaf arrangements based on botanical classifications. This mode is primarily used when modeling high detail plants targeted for VFX applications. Groups of leaves are placed at intervals starting at the position specified by “Shared:Last” and moving toward the position defined by “Shared:First.” Groups are separated by a distance specified in world space coordinates, (“Nodes:Internode length”) so this generation mode works well in situations where the model is randomized or the parent generator has varying lengths.

Note: While the term phyllotaxy refers to leaf placement, you are free to use this generation mode to generate twigs or any other SpeedTree geometry.

Page 145 of 277 Arrangement

The properties in this group control the placement and orientation of each group of leaves. Style

Use this setting to specify how each group of leaves is arranged according to the image and descriptions below:

Figure 136: Phyllotaxy Arrangement style settings

Opposite (distichous) Two nodes are placed opposite one another in each group. The groups are aligned down the parent.

Two nodes are placed opposite one another in each group. Each group is rotated 90 degrees from the Opposite (decussate) previous group.

Opposite Two nodes are placed opposite one another in each group. The orientation of each group is random.

Alternating A single node is placed in each group. Each group's node is on the opposite side of the parent from the (distichous) node in the preceding group.

Alternating A single node is place in each group. The orientation of that node is random.

Whorled Each group gets the number of nodes specified by the “Children per node” property. Table 17: Phyllotaxy Arrangement style settings Children Per Node

Sets the number of nodes that appear per group when “Whorled” is the selected “Style.” This property is ignored otherwise.

Align style

When “Align” is enabled, generated nodes attempt to roll their initial orientation skyward as much as they can, according to the following options:

Individual Each node rolls skyward independently.

Group All of the nodes in the group roll skyward together. Table 18: “Align” style options

Page 146 of 277 Align

This option toggles the skyward rolling behavior described above. Nodes

The properties in this group control the placement and orientation of the leaf groups. The term “nodes” in this context refers to the scientific term analogous to what we've referred to as groups. This is not to be confused with a SpeedTree node, which is our term for a single component created by a generator. The terms “Node” and “Internode Length” are presented that way here to be consistent with common phyllotaxy terminology. Internode Length

This property specifies the length of the intervals on the stem between the nodes. The higher the value, the bigger the space between nodes, so there will be fewer nodes on a spine. The lower the value, the smaller the space between nodes, so there will be more nodes on a spine. Nodes are placed from the end of the parent towards the beginning. Spread

Use this value to apply a random up or down offset to the nodes in each group. A value of 0.0 means each node in the group is placed at the same position along the parent. A value of 1.0 means each node might spread out as far as the next or previous group placement. Spiral

Each group (starting with the one at the end) is rotated by this amount more than the previous group, creating a spiral pattern down the parent. Limit

This value sets the maximum number of groups (not nodes) that can be generated. For example, you can use this value to ensure there is a single group at the end, like flower petals, or a single group near the beginning, for roots. Shared

The "Shared" properties are common to all generation modes and are documented here. Bifurcation

Bifurcation mode generates nodes on the curves/bends of the parent branch. In the image to the right, all of the branches attached to the main branch use this generation mode. So do each of their children. Placing nodes at the natural junctions of the parent branch simulates branches splitting, or bifurcation. Use this mode to automatically place nodes in the best places to produce organic structures. This mode is prevalent in large broadleaf models. Each of this generation mode's properties is described below. Threshold

Specifies how much the parent has to bend before the bend point is eligible for a child node. Figure 137: Bifurcation mode generates nodes on curves/bends of parent branch

Page 147 of 277 Spacing

This value represents the minimum spacing between child nodes. This feature means not every bend will get a child if it is too close to another bend. Balance

This property balances the placement of nodes so that they are evenly generated around the spine. A value of '0' means no balance, and a value of '1.0' means completely balanced. Align

When enabled, all generated nodes are placed in a plane as parallel to the ground as it can.

Shared

The "Shared" properties are common to all generation modes and are documented here.

Proportional

The Proportional mode generates nodes for each parent relative to the parent's length. Nodes are generated in random locations with random orientations. This mode adapts to the size of the parent, making it suitable for randomization and cases where parents are of varying sizes. In the image below there is a series of trunks of varying lengths. The branches all use the Proportional generation mode. Notice how short trunks have fewer branches than long ones. Also notice that every trunk gets at least one branch, no matter what.

Figure 138: Proportional generation mode

Note: "Interval" mode is almost always a better choice than “Proportional” mode.

Page 148 of 277 Each of this generation mode's properties is described below. Number

Sets the number of nodes generated on a parent of average length (longer parents get more, shorter parents get less). Jumble

A variance is placed on each node's orientation in order to achieve a more natural and random appearance. Sweep

Specifies an arc around the parent node where nodes are eligible. Roll

Each node is rotated this absolute amount from its computed angle. Favor Splits

Positions the generated nodes on major bends or jinks.

Hint: This is useful when trying to recreate the natural look of a branch splitting. Align style

When “Align” is enabled, generated nodes attempt to roll their initial orientation skyward as much as they can, according to the following options:

Individual Each node rolls skyward independently.

Group All of the nodes in the group roll skyward together. Table 19: Align Style options Align

This option toggles the skyward rolling behavior described above. Shared

The “Shared” properties are common to all generation modes and are documented here. Proportional Steps

The Proportional Steps mode generates nodes in groups (or steps) for each parent relative to the parent's length. Steps are generated at regular intervals and each step has a user controlled number of nodes. This mode adapts to the size of the parent, making it suitable for randomization and cases where parents are of varying sizes. In the image to the right there are three trunks of varying lengths. The branches all use the Proportional Steps generation mode. Notice how short trunks have fewer steps than long ones. Also notice that every trunk gets at least one step, no matter what.

Note: "Interval" mode is almost always a better choice than “Proportional Steps” mode.

Figure 139: Proportional Steps mode

Page 149 of 277 Each of this generation mode's properties is described below. Steps

The number of steps (each step has one or more nodes) assigned to a parent of average length (longer parents get more steps, shorter parents get fewer). Per Step

The properties in this group control the nodes at each step. Number

Sets the number of nodes in a step. Offset

Use this value to apply a random up or down offset to the nodes in each step. A value of 0.0 means each node in the group are placed at the same position along the parent. A value of 1.0 means each node might spread out as far as the next or previous step. Roll

Each node is rotated this amount from its initially computed angle. Jumble

A variance is placed on each node's orientation in order to achieve a more natural and random appearance. Sweep

Specifies an arc around the parent node where nodes are eligible. Roll

Each node is rotated this absolute amount from its computed angle. Align style

When “Align” is enabled, generated nodes attempt to roll their initial orientation skyward as much as they can, according to the following options:

Individual Each node rolls skyward independently.

Group All of the nodes in the group roll skyward together. Table 20: “Align style” options Align

This option toggles the skyward rolling behavior described above. Shared

The “Shared” properties are common to all generation modes and are documented here. Absolute

Absolute mode generates a user specified number of nodes. Each node is given a random rotation around the parent and a random position between “Shared:First” and “Shared:Last.” Use this mode to create an exact number of nodes. Trunks and roots are good typical uses for this generation mode. Each of this generation mode's properties is described below.

Page 150 of 277 Number

The number of nodes generated. Jumble

A variance is placed on each node's orientation in order to achieve a more natural and random appearance. Sweep

Specifies an arc around the parent node where nodes are eligible. Roll

Each node is rotated this absolute amount from its computed angle. Favor Splits

Positions the generated nodes on major bends or jinks.

Hint: This is useful when trying to recreate the natural look of a branch splitting.

Align style

When “Align” is enabled, generated nodes attempt to roll their initial orientation skyward as much as they can, according to the following options:

Individual Each node rolls skyward independently.

Group All of the nodes in the group roll skyward together. Table 21: “Align style” options Align

This option toggles the skyward rolling behavior described above. Shared

The "Shared" properties are common to all generation modes and are documented here. Absolute Steps

The Absolute Steps mode generates a fixed number of groups (or steps) for each parent. Steps are generated at regular intervals such that the specified number fits between “Shared:First” and “Shared:Last.”

Note: "Interval" mode is almost always a better choice than “Absolute Steps” mode.

Each of this generation mode's properties is described below. Steps

The number of steps created. Per Step

The properties in this group control the nodes at each step.

Page 151 of 277 Number

Sets the number of nodes in a step. Spread

Use this value to apply a random up or down offset to the nodes in each step. A value of 0.0 means each node in the group is placed at the same position along the parent. A value of 1.0 means each node might spread out as far as the next or previous step. Roll

Each node is rotated this amount from its initially computed angle. Jumble

A variance is placed on each node's orientation in order to achieve a more natural and random appearance. Sweep

Specifies an arc around the parent node where nodes are eligible to be generated. Roll

Each node is rotated this absolute amount from its initially computed angle. Align Style

When “Align” is enabled, generated nodes attempt to roll their initial orientation skyward as much as they can, according to the following options:

Individual Each node rolls skyward independently.

Group All of the nodes in the group roll skyward together. Table 22: “Align style” options Align

This option toggles the skyward rolling behavior described above. Shared

The “Shared” properties are common to all generation modes and are documented here. Classic

Classic mode exists to support legacy models. It should not be used on current models. Favor Interval, Phyllotaxy, and Bifurcation instead. Style

Absolute

For Generation: Frequency and Steps: Number, the exact value you enter will be set.

Example: If Generation: Frequency is 3, then 3 nodes will appear. If you then change the Step: Number to 3, you will get 3 steps on the spine with 3 nodes in each step.

Page 152 of 277 Relative

Generation: Frequency and Steps: Number values are computed based on the length of the parent node.

Example: If Generation: Style is set to relative, this integer becomes a float and the actual number of nodes generated is computed based on the length of the parent. So, if both the Generation: Frequency and the Step: Number is set to 3, you will get 3 steps on the spine with 3 nodes in each step for the spine length value you have set. However, if the branch are shorter or longer, the node amount for Generation: Frequency and Step: Number may vary: fewer nodes for a short spine length and more nodes for a longer spine length.

Frequency

Sets the number of nodes generated

Orientation

Alignment

Specifies how the local up axis aligns with the global up vector from the following options:

None Nodes have a random orientation.

Align The first node in each step is centered vertically on its parent.

Center Align Each step is re-aligned so the Sweep range is centered vertically on its parent. Table 23: Alignment options

Note: If 'Steps' are disabled, the initial generation angle is centered vertically on the parent node instead.

Balanced

Nodes can be balanced (equally spaced) radially by enabling this property.

Note: Changing the Generation: Frequency or Generation: Step: Number properties will result in positional shifting in order to maintain equal spacing. Offset

The computed angle for each node is offset [+/-] between 0 and this amount. Sweep

Defines the arc around the parent node where nodes are eligible.

Note: Balance is applied after the sweep arc is defined.

Page 153 of 277 Roll

Each node is rotated this absolute amount from its computed angle. Steps

Enabled

When enabled, nodes are grouped into lengthwise “steps” along the parent node. Balance, angle offset, and other properties will be applied per step. Each step contains approximately (Generation: Frequency ÷ Generation: Step: Number) branches. Number

Determines the number of steps to distribute the computed frequency among.

Note: If Generation: Style is set to relative, the actual number of steps generated is computed based on the length of the parent node.

Spread

The maximum amount of lengthwise node spacing allowed from the center of each step to its extents. Roll

The amount each step is rolled relative to the previous step. Per Step Frequency

The number of nodes from the Generation: Frequency value is created per step, rather than the frequency value being distributed among all the steps. Shared

The "Shared" properties are common to all generation modes and are documented here.

TREE GENERATOR

Every model created in SpeedTree will have a Tree Generator. The Tree Generator provides a base node to upon as well as being the source for the model's global properties. Generation

The properties in this group affect the computation of the entire model. Shared

The only property in the “Shared” group that applies to the Tree generator is “Size Scalar.” It always generates exactly one node at the origin. That node cannot be node edited. Size Scalar

This property scales the model; however, it does not scale the position of forces or size of force meshes. Only the geometry computed by the generators is scaled.

Page 154 of 277 Geometry

The properties in this group specify the type of geometry computed by the generators. Branches/Caps

This feature selects either triangles or quads for branch and cap geometry. Leaves/Fronds/Meshes

This feature selects either triangles or quads for leaf and frond geometry. Subdivision

Cages are always computed as quads. Use this property to select either triangles or quads for the geometry generated when cages are subdivided. Shape

The properties in this group influence the shape and position of the Tree Generator disk. This disk is where all geometry will originate. Radius

Determines the radius of the area on the ground plane from which tree geometry can grow. Sink

Controls the distance of the disk below or above the ground plane. Positive values will sink the model, negative values will raise it. Roll

Controls the rotation of the disk on the ground plane. Subdivision

The Tree Generator acts as the default cage when subdivision surfaces are enabled on any branch generator. Level

This property controls how many times the mesh is subdivided. Relax

Averages the vertices around the intersection between parent and child nodes in order to smooth out junctions. This property works in conjunction with the “Relax Scale” property on branch generators. Dynamic LOD

The properties in this group govern the behavior of the Dynamic LOD system. Enabled

When this property is checked, lower LOD versions of the model are automatically computed. Number

Determines the number of discrete LODs computed for the model. Branches

This curve specifies how much branch geometry to keep at each successive LOD state. The left side of the curve corresponds to the highest LOD. The right side corresponds to the lowest LOD state.

Page 155 of 277 Decorations

This curve specifies how much decoration geometry to keep at each successive LOD state. Decorations include Knots, Fins, and Caps. The left side of the curve corresponds to the highest LOD. The right side corresponds to the lowest LOD state. Leaves

This curve specifies how much leaf geometry to keep at each successive LOD state. The left side of the curve corresponds to the highest LOD. The right side corresponds to the lowest LOD state.

Note: batched leaves do not work with the LOD system.

Fronds

This curve specifies how much frond geometry to keep at each successive LOD state. The left side of the curve corresponds to the highest LOD. The right side corresponds to the lowest LOD state. Leaf Settings

Adjusts behavior of leaf meshes through LOD transitions. Grow Scale

Leaf meshes that are kept during the LOD process are scaled up to fill in the empty space left by those that are removed. The scale point is computed automatically by the LOD system. This value controls how much bigger the surviving leaves get. Jumble

This value randomizes which leaves are kept and which are removed during the LOD process. Seed

This value is a random seed that governs the “Jumble” property (described above). Use these two properties to shuffle which leaves are kept during the LOD process. Lightmap

The properties in this group govern the lightmap coordinate generation.

Note: lightmap UVs are generated only for UE4 and Games versions of the Modeler.

Target resolution

Controls the resolution for which the lightmap UVs are computed.

Note: It is important to not use a lightmap smaller that specified here in UE4. Our algorithm accounts for many factors related to how UE4 computes , including texel boundaries. Using a smaller lightmap will produce artifacts.

Display multiplier

Use this option to see what the lightmap density will look like at different multiples of the target resolution. Use this option to pack the lightmap UVs into a small resolution (useful for lightmapping painted instances) and then see how different

Page 156 of 277 resolutions in the target application will affect the density. You can never go lower than the target resolution without artifacts, but you can go higher. Compute Flags

The properties in this group enable/disable the computation of specific types of geometric data. These properties could be computationally expensive and unnecessary in many applications. Vertex Colors

Enables/disables vertex color computation. Computing vertex colors can be expensive on large models and should be disabled when they aren't necessary.

Note: In the Lumberyard version of the Modeler, disable this property to use the default Lumberyard wind data computed by the Modeler. Enable this property to bypass that system and control the vertex colors directly.

Note: There are render modes that enable you to see the vertex colors in the Tree Window.

Vertex Color

Sets the vertex color for the Tree Generator. This color can be inherited throughout the model. Red

Sets the amount of red in the vertex color. Green

Sets the amount of green in the vertex color. Blue

Sets the amount of blue in the vertex color. Proxy Collision

The properties in this group control the system whereby proxies that are too close to each other are eliminated. Automatic

Toggles automatic culling of proxies. Scale

Scales the area considered for proxy collisions. Cull

Manually culls overlapping proxy nodes. Restore Culled

Manually restores all culled proxy nodes.

Page 157 of 277 BRANCH GENERATOR

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. Forces

The properties in this group control the behavior of forces on this generator. Allow Forces

When enabled, all forces that are checked will act on the generator. Forces

Each 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.

New

The properties in this group apply to newly drawn branches in this generator. Control Point Style

Controls the types of control points that are used to form the Bézier spline.

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. Table 24: “New” hand drawn branches style options

Curve Fit

Assists with the accuracy of the Bézier spline that is created for newly drawn branches in this generator. Higher values result in the creation of more control points. Once drawn, a spline can be resampled with the Curve Fit Scalar. Resample

The properties in this group restructure all of the branches in the generator. Control Point Style

Manages the types of control points that are used to form the Bézier spline.

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. Table 25: “Resample” hand drawn branches style options Curve Fit Scalar

Assists with the accuracy of the Bézier spline that is created after hand drawing. Higher values result in the creation of more control points. Random Seeds

Properties that have 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).

Page 159 of 277 + 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 Resolution. Radial

Scales the number of radial segments for each 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.

Note: Favor “+ % of parent” wherever possible. Doing so allows for more organic and adaptable models.

Page 160 of 277

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 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). Shape

The properties in this group (along with 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.

Page 161 of 277 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. 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.

Page 162 of 277 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 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 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. Table 26: Shape control style options

Position

Determines placement of the spheres or mesh 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 in to the shape control algorithm.

Every generator that is a descendant of the generator initiating shape control influences the length of All descendants branches under shape control. Table 27: Shape control distribution style options

Page 163 of 277 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 or meshes used for the Shape Control.

+ % of Size

Using the amount set, this property re-computes the size of the spheres or meshes based on the length of the spine, so a spine that is longer will have a larger sphere or mesh.

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 A rectangular hole is cut into the parent and the branch is treated as part of a subdivision surface (Rectangular cage. Attachments)

SubD Surface Arbitrarily cuts out a hole in the parent, taking only the quads it needs, and the branch is treated as (Arbitrary part of a subdivision surface cage. Attachments)

Spine Only No mesh is applied to the spine. Use this option to provide the stems for fronds. Table 28: Skin style options

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.

Page 164 of 277 + % 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 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. 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.

Page 165 of 277 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.

Page 166 of 277 Splits

It is possible to 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]. Table 29: UV Mapping method options

Page 167 of 277 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.

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 V tiling is computed based on the U tiling and branch radius in such a way that the aspect ratio of Ratio) the applied material is maintained.

Relative V tiling is computed based on the length of the branch. Table 30: Twist V coordinates computations options 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. Table 31: V coordinates Anchor point selection

Page 168 of 277 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 Materials Bar, a named set from the 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 Materials Bar, a named set from the 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).

Page 169 of 277 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 displacement asset as the displacement source. Table 32: Displacement source options

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.

Page 170 of 277

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 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 Resolution, which is designed to set the polygonal resolution of a model exported for VFX use.

Page 171 of 277 Weight

This value influences how likely nodes in this generator will be kept during 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 LOD state. Use this to dynamically reduce length segments based on curvature. Length Segments

Scales back the amount of length segments for each successive LOD. Radial Segments

Scales back the amount of radial segments for each successive 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 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.

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 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.

Page 172 of 277

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 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. Timing

Style

Sets the conditions under which the branch will start growing. The Start % property works according to the option selected here. Options include:

The branch will start growing exactly when the parent is long enough to reach its starting point in the fully In Place 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.

The growth of this branch will be based on the growth of the parent. A Start % of 0.0 means start when Parent the parent starts, 1.0 means start when the parent ends.

Parent's Start and The growth of this branch will start and stop in perfect synchronization with its parent. Start % has no End effect. This option is good for features like roots. Table 33: Timing style options – growth starting point options

Start %

Causes branches to start early (0.0) or late (1.0) according to the “Style” property as described above.

Page 173 of 277 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.

Page 174 of 277 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. Table 34: Bone style options 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 float 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.

Page 175 of 277 LEAF MESH GENERATOR

The Leaf Mesh generator is responsible for generating leaves based on materials and mesh assets. Leaf Mesh generators (along with Batched Leaf generators) are the primary mechanism by which season transitions occur. Generation

The properties in this group control how many leaves are generated and where they are placed. Forces

The properties in this group control how forces affect the nodes created by this generator. Forces affect only the orientation, not the position, of leaf meshes. Allow Forces

When enabled, all forces that are checked will act on the generator. Forces

Each 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 have no effect on leaves.

Note: Click on the force name to edit the force's properties.

Random Seeds

Properties that have 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. Leaves

The properties in this group control the type, size, and initial placement of the leaf nodes. Size

This property sets the size of the leaf nodes. By default, mesh assets are treated as unit meshes and then scaled by this amount when placed on the model. Use Actual Size

When enabled, the size parameter is ignored and the mesh is used at exactly the size at which it was modeled. Flip

When enabled, randomly selected leaf nodes are flipped over the Y axis. Weld

When enabled, leaves will be placed directly on the skin of their parent (as opposed to being anchored on their spine). Cross

When enabled, leaves are rotated so that they are perpendicular to the original leaf placement. This is a short cut for creating crossed, intersecting meshes that have the same position.

Fix Ending

When enabled, the face winding of the polygons in the final mesh is adjusted to match the direction of the surface normals. This correction is applied after vertex deformation and lighting adjustments. Type

The properties in this group specify the materials and meshes for the leaf. Meshes must be assigned to the material on the Material Bar to be used on the leaf. Materials are chosen based on their weights and season settings. Material

This property specifies a named material from the Material Bar. If “None” is selected or the chosen material has no assigned mesh, a simple square will be used as placeholder geometry. Weight

Sets probability that a node will receive this material (this weight ÷ sum of all weights). Resolution

The properties in this group influence the resolution of the mesh. Size Increase %

This curve controls the increase in size of the leaf nodes as the resolution changes. It is often desirable to increase the size of the leaves at lower resolutions to make up for a lower number of leaves. Mesh LOD

This curve sets which mesh version (“High”, “Medium” or “Low” detail on the mesh asset) is used based on the active resolution. Mesh LOD Offset

When set to a value other than 0, the mesh currently assigned will go up or down in mesh resolution (“High”, “Medium” or “Low” detail on the mesh asset). Use this property (especially in conjunction with its parent curve) to adjust mesh resolution throughout the model.

Note: "Mesh LOD" and "Mesh LOD Offset" both require meshes assigned in at least two of the three mesh asset LOD slots.

Local Orientation

The properties in this group are the first stage of orienting the leaf. The orientation actions are performed in the order in which the properties are listed. Unification

Uses the anchor to orient itself “out” before the rest of the orientation adjustments are performed. The “Out” direction is considered to be the vector from the anchor point through the node's attachment point. Anchor point placement options are as follows:

Global The anchor point is located where the node's highest ancestor hits the ground.

Deep The anchor point is the base of a node very near (and sometimes exactly on) the root of the node's ancestors.

Intermediate The anchor point is somewhere in the middle of the node's ancestors.

Local The anchor point is very near where the node is attached.

None No anchor point is computed, and no unification is done. Table 35: Leaf anchor point options

Page 177 of 277 Sky Influence

Controls how much the leaves point toward the sky. Higher numbers result in the 'Z' axis of each mesh pointing straight up. Fold

Rotates leaves up or down around the parent's growth direction. Align

Rotates the tip of the leaves toward or away from the parent's growth direction. Use this property to point leaves in the direction the parent is growing. Face

Spins leaves around their stem so that their “up” vector points in the direction of the parent's growth. Use this property to make the leaves face out relative to their parent.

Note: Interval and Phyllotaxy generation modes work best with these properties. These modes give each leaf an idea of which side they're on. Doing so makes a positive value for "Align," "Face," and "Fold" all work the same, regardless where the leaf was generated.

Sensitivity

The properties in this group control the second stage of leaf orientation. Parent

Parent sensitivity refers to orienting the leaf based on where it is positioned relative to its ancestors. Amount

Sets the amount that the bottom of the leaf is turned to face the point set by Anchor. Anchor

This property picks a spot on one of the leaf's ancestors according to the following options:

Global The anchor point is located where the node's highest ancestor hits the ground.

Deep The anchor point is the base of a node very near (and sometimes exactly on) the root of the node's ancestors.

Intermediate The anchor point is somewhere in the middle of the node's ancestors.

Local The anchor point is very near where the node is attached.

None No anchor point is computed, and no parent sensitivity is added. Table 36: Second stage leaf orientation anchor options

Sky

Rotates the mesh around its central axis to get its “Z” axis as close to up as it can. Think of it as the leaves rotating around their stem to face the light.

Page 178 of 277 Final Adjustments

These edits are applied to the leaf meshes as a group, after Local Orientation and Sensitivity are computed. Up

Rotates each mesh around its local X axis. Right

Rotates each mesh around its local Y axis. Out

Rotates each mesh around its local Z axis. Deformation

The properties in this group alter the shape of the leaf mesh. It is important to remember that these properties work best when there are enough vertices in the mesh to reveal the changes.

Note: Using these properties on low resolution meshes can produce undesirable results. You should always have at least one vertex near the center of the mesh for the best results.

Fold

Folds both sides of the leaf, length wise, along the Y axis of the mesh. A negative value bends down, while a positive value bends up. Curl

Curls the leaf around the mesh's X axis. Twist

Twists the leaf around the mesh's Y axis. The farther away a vertex is from the X axis, the more it is rotated. Vertex

The properties in this group perform a noise-based deformation of each vertex in the mesh. Amount

This property controls the amount of noise applied to each vertex. Noise

This value controls the tightness of the noise pattern. Higher values result in more localized deformations. Seed

Vary this parameter to randomize the noise pattern. Scale

The properties in this group scale the mesh. The scale is performed in each leaf's local orientation. X

Scales the mesh by this amount in the X axis. Y

Scales the mesh by this amount in the Y axis.

Page 179 of 277 Z

Scales the mesh by this amount in the Z axis. Lighting

The properties in this group modify the vertex normals to change the lighting behavior of the mesh.

Note: These properties are not typically necessary for high detail VFX models but they can significantly improve the lighting on meshes that represent clusters of leaves in real-time models. Parent Puffiness

Amount

Value scale that controls how much the normals on each individual leaf should face “out” depending on the assigned anchor point. A value of 1.0 makes each normal line up with the vector that goes from the anchor through the vertex. Anchor

This property picks a spot on one of the leaf's ancestors according to the following options:

Global The anchor point is located where the node's highest ancestor hits the ground.

Deep The anchor point is the base of a node very near (and sometimes exactly on) the root of the node's ancestors.

Intermediate The anchor point is somewhere in the middle of the node's ancestors.

Local The anchor point is very near where the node is attached.

None No anchor point is computed, and no parent puffiness is added. Table 37: Parent Puffiness anchor options Puffiness

After all normal adjustments have been performed, this value “sphere-izes” the normals around the center of the mesh, making the geometry have a more puffy appearance. Unify

This property causes all vertex normals to point in the average direction of all of the vertex normals. Use this property to align the normals to help localize specular effects. Adjustments

The properties in this group rotate the normals of each leaf without rotating the geometry. These properties are commonly used when creating clusters.

Hint: Apply variance to these properties to make leaves in a cluster appear jumbled when lit in the final model. Up

This property rotates vertex normals around the local X axis. Right

This property rotates vertex normals around the local Y axis.

Page 180 of 277

Out

This property rotates vertex normals around the local Z axis. Wind

The properties in this group influence how leaves are animated in wind simulations. Scalar

Use this property to scale how much the leaf moves during wind simulations. The amount and frequency of motion is set on the Fan object. The left hand side of the profile curve corresponds to the pivot point. The right hand side corresponds to the vertex farthest away.

Note: The left hand side of the profile curve must be zero to avoid disconnections from parent. Group

In many wind styles, multiple wind groups are available. Use this property to specify which group the leaves belong to. The most common use of this feature is to have separate animation parameters for leaves and fruit. Seed

Vary this parameter to randomize wind characteristics. 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 leaf will grow is set on the Timeline Bar. Use this property to scale that value. The profile curve scales the speed relative to the leaf's total growth time. For example, ease in and out of the growth animation by using an “S-curve.” Smoothing

Leaves 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 leaf motion during growth. This is especially useful for leaves growing off of a twisted or gnarled parent. Transitions

Size

This curve control how the size increases over the course of the leaf's growth time. Orientation

This value controls how much to rotate the leaf about its local X axis at the start of its growth period. The profile curve controls how it transitions to the final orientation. The rightmost point of the profile curve must be at 1.0 to match the model as it appears when growth is disabled. Curl

Adds additional curl to the leaf at the start of the growth. The profile curve sets how much of the additional curl is added during the growth cycle of the leaf. Fold

Adds additional fold to the leaf at the start of the growth. The profile curve sets how much of the additional fold is added during the growth cycle of the leaf.

Page 181 of 277 Timing

Style

Sets the conditions under which the leaf will start growing. The Start % property works according to the option selected here. Options include:

The leaf will start growing exactly when the parent is long enough to reach its starting point in the fully grown In Place model. “Start %” has no effect. This style makes the animation appear to trace out the model.

The growth of this leaf will be based on the growth of the parent. A Start % of 0.0 means start when the parent Parent starts, 1.0 means start when the parent ends.

Parent's Start The growth of this leaf will start and stop in perfect synchronization with its parent. Start % has no effect. and End Table 38: Timing leaf growth options Start %

Causes leaves 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 leaves.

Note: It is almost never a good idea to go negative with this value (leaves 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 leaf 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 leaf 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.

Page 182 of 277 Frequency Increases or decreases the frequency of the noise pattern used for speed. Seed Change this value to vary the noise pattern. Season

The properties in this group control how leaves transition in the seasons' system. Start Offset

Leaf transitions are determined by looking up season curves based on the position of the season slider. This value provides an offset on that curve lookup. Use variance on this property to randomly shift when neighboring leaves begin their transition. Time Scale

Scales how fast time passes relative to a single leaf. Higher values make leaves transition faster. Drop Time

Controls how long the leaf will remain attached. A leaf can drop no matter what material is assigned. Droop

Use this value to make leaves droop as they transition. Curl

Use this value to make leaves curl as they transition. Fold

Use this value to make leaves fold as they transition. Fallen

When “Show dropped leaves” is checked on the Season Slider, the properties in this group influence the behavior of leaves on the ground (or ground mesh). Ground duration

The amount of time the leaves stay on the ground before disappearing. Spread

Controls how far from the point directly under the tree the leaf may travel before hitting the ground. Flatten

Determines the amount of deformation removal (“Season:Curl” and “Season:Fold”) applied to the fallen leaves. Jumble

Randomizes the orientations of leaves on the ground. Slope Limit

If you have a force mesh applied to the leaf generator, fallen leaves will adhere to it instead of the ground. In that circumstance, use this property to keep leaves from gathering on slopes.

Page 183 of 277 Dynamic LOD

The properties in this group control the LOD behavior of the leaves. Weight

Use this value to increase or decrease the likelihood that leaves in this generator will survive the LOD process (vs. leaves in other generators). Use the parent curve to target specific areas of the model. Scale Factor

Leaves that survive the LOD process grow to fill the vacated space. The amount is set in the Tree generator's LOD section. This property scales that amount for leaves in this generator. Mesh Index

This curve controls which mesh LOD (if present) is used for each LOD state. The left side of the curve corresponds to the highest LOD. The right side corresponds to the lowest LOD. Vertex Color

The properties in this group control how vertex colors are computed.

Note: “Vertex colors” must be enabled on the Tree generator for these properties to work. Red

The properties in this group control how the red component of the color is computed. Style

This property controls how the red portion of the color is computed from the following options:

Set Sets the color directly using the “Value” property (parent colors are ignored).

Offset from parent The “Value” property is added to the vertex color inherited from the parent. Table 39: Red Vertex color options Value

This property adds to, subtracts from, or directly sets this color component. Green

The properties in this group control how the red component of the color is computed. Style

This property controls how the red portion of the color is computed from the following options:

Set Sets the color directly using the “Value” property (parent colors are ignored).

Offset from parent The “Value” property is added to the vertex color inherited from the parent. Table 40: Green Vertex color options

Value

This property adds to, subtracts from, or directly sets this color component.

Page 184 of 277 Blue

The properties in this group control how the red component of the color is computed. Style

This property controls how the red portion of the color is computed from the following options:

Set Sets the color directly using the “Value” property (parent colors are ignored).

Offset from parent The “Value” property is added to the vertex color inherited from the parent. Table 41: Blue Vertex color options Value

This property adds to, subtracts from, or directly sets this color component. Mesh Asset

The properties in this group control how vertex colors stored in the mesh asset are combined with the computed vertex colors. Style

This property controls how mesh asset vertex colors are used from the following options:

Interpolate The “Contribution” value is used to blend from the computed to color (0.0) to the color stored in the asset (1.0).

The “Contribution” value is used to scale the mesh asset vertex color and the result is added to the computed Add vertex color. Table 42: Mesh Asset - how vertex colors stored in the mesh asset are combined with the computed vertex colors Contribution

This value sets how much influence the mesh asset vertex color has on the final vertex color. Collision

The properties in this group influence how leaves in this generator interact with the collision system. Style

Use this property to set how the leaves behave during collision computations from the following options:

Everything Leaves in this generator collide with each other and all other leaves.

Ignore Siblings Leaves in this generator ignore siblings but collide with everything else.

Knock out Others Only Leaves in this generator cannot be removed, but they can eliminate leaves in other generators.

Nothing These leaves do not participate in collision computations. Table 43: Collision system for leaves options

Page 185 of 277 Take Parent

When enabled, if a leaf in this generator is removed, its parent is also removed. Use this option to take away twigs supporting leaves that are removed.

Weight

When leaves collide, the one with the higher weight wins. Use this property to set the weight. Pivot Threshold

This property sets how far away from pivot (as a percentage of size) a collision has to happen in order to count. Use this property to eliminate unwanted removals of leaves anchored near each other. Sphere Threshold

When using spherical leaf collision tests, this value scales the size of the spheres used during the test. Spheres are initially sized based on leaf size.

Lightmap

The property in this group affects the influence leaves 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 leaves 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.

BATCHED LEAF GENERATOR

The Batched Leaf generator creates leaves in almost exactly the same manner as Leaf Mesh generators with one major exception: the results cannot be node edited. Batched Leaf generators flood the model with leaves in an optimized fashion. They are orders of magnitude faster than leaf meshes but can be controlled only as a group.

Note: geometry created by Batched Leaf generators cannot be node edited and does not participate in the dynamic LOD system or the growth system.

Generation

The properties in this group control how many leaves are generated and where they are placed. Forces

These properties in this group control how forces affect the nodes created by this generator. Forces affect only the orientation, not the position, of leaf meshes.

Page 186 of 277 Allow Forces

When enabled, all forces that are checked will act on the generator. Forces

Each 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 have no effect on leaves.

Note: Click on the force name to edit the force's properties.

Random Seeds

Properties that have 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. Leaves

The properties in this group control the type, size, and initial placement of the leaf nodes. Size

This property sets the size of the leaf nodes. By default, mesh assets are treated as unit meshes and then scaled by this amount when placed on the model. Use Actual Size

When enabled, the size parameter is ignored and the mesh is used at exactly the size at which it was modeled. Flip

When enabled, randomly selected leaf nodes are flipped over the Y axis. Weld

When enabled, leaves will be placed directly on the skin of their parent (as opposed to being anchored on their spine). Cross

When enabled, leaves are rotated so that they are perpendicular to the original leaf placement. This is a short cut for creating crossed, intersecting meshes that have the same position. Fix Winding

When enabled, the face winding of the polygons in the final mesh is adjusted to match the direction of the surface normals. This correction is applied after vertex deformation and lighting adjustments. Type

The properties in this group specify the materials and meshes for the leaf. Meshes must be assigned to the material on the Material Bar to be used on the leaf. Materials are chosen based on their weights and season settings. Material

This property specifies a named material from the Material Bar. If “None” is selected or the chosen material has no assigned mesh, a simple square will be used as placeholder geometry. Weight

Sets the probability that a node will receive this material index (this weight ÷ sum of all weights).

Page 187 of 277 Resolution

The properties in this group influence the resolution of the mesh. Size Increase %

This curve controls the increase in size of the leaf nodes as the resolution changes. It is often desirable to increase the size of the leaves at lower resolutions to make up for a lower number of leaves. Mesh LOD

This curve sets which mesh version (High, Medium or Low) is used based on the active resolution. It is often desirable to use lower quality meshes at lower resolutions. Mesh LOD offset

When set to a value other than '0', the mesh currently assigned will go up or down a mesh resolution (High, Medium, or Low). Use this property (especially in conjunction with its parent curve) to adjust mesh resolution throughout the model.

Note: “Mesh LOD” and “Mesh LOD offset” both require meshes assigned in at least two of the three mesh asset LOD slots.

Local Orientation

The properties in this group are the first stage of orienting the leaf. The orientation actions are performed in the order in which the properties are listed. Unification

Uses the anchor to orient itself “out” before the rest of the orientation adjustments are performed. The “Out” direction is considered to be the vector from the anchor point through the node's attachment point. Options for setting the anchor point are as follows:

Global The anchor point is located where the node's highest ancestor hits the ground.

Deep The anchor point is the base of a node very near (and sometimes exactly on) the root of the node's ancestors.

Intermediate The anchor point is somewhere in the middle of the node's ancestors.

Local The anchor point is very near where the node is attached.

None No anchor point is computed, and no unification is done. Table 44: Leaf anchor point options (no node editing) Sky Influence

Controls how much the leaves point toward the sky. Higher numbers result in the Z axis of each mesh pointing straight up. Fold

Rotates leaves up or down around the parent's growth direction. Align

Rotates the tip of the leaves toward or away from the parent's growth direction. Use this property to point leaves in the direction the parent is growing.

Page 188 of 277 Face

Spins leaves around their “stem” so that their “up” vector points in the direction of the parent's growth. Use this property to make the leaves face out relative to their parent.

Note: Interval and Phyllotaxy generation modes work best with these properties. These modes give each leaf an idea of which side they're on. Doing so makes a positive value for "Align," "Face," and "Fold" all work the same, regardless where the leaf was generated.

Sensitivity

The properties in this group control the second stage of leaf orientation. Parent

Parent sensitivity refers to orienting the leaf based on where it is positioned relative to its ancestors. Amount

Determines the amount that the bottom of the leaf is turned to face the point set by Anchor. Anchor

This property picks a spot on one of the leaf's ancestors, depending on which of the following options is selected:

Global The anchor point is located where the node's highest ancestor hits the ground.

Deep The anchor point is the base of a node very near (and sometimes exactly on) the root of the node's ancestors.

Intermediate The anchor point is somewhere in the middle of the node's ancestors.

Local The anchor point is very near where the node is attached.

None No anchor point is computed, and no parent sensitivity is added. Table 45: Group control of the second stage of leaf orientation anchor options Sky

Rotates the mesh around its central axis to get its Z axis as close to up as it can. Think of it as the leaves rotating around their stem to face the light. Final Adjustments

These edits are applied to the leaf meshes as a group, after Local Orientation and Sensitivity are computed. Up

Rotates each mesh around its local X axis. Right

Rotates each mesh around its local Y axis. Out

Rotates each mesh around its local Z axis. Deformation

The properties in this group alter the shape of the leaf mesh. It is important to remember that these properties work best when there are enough vertices in the mesh to reveal the changes.

Page 189 of 277

Note: Using these properties on low resolution meshes can produce undesirable results. You should always have at least one vertex near the center of the mesh for the best results.

Fold

Folds both sides of the leaf, lengthwise, along the Y axis of the mesh. A negative value bends down, while a positive value bends up. Curl

Curls the leaf around the mesh's X axis. Twist

Twists the leaf around the mesh's Y axis. The farther away a vertex is from the X axis, the more it is rotated.

Vertex

The properties in this group perform a noise-based deformation of each vertex in the mesh. Amount

This property controls the amount of noise applied to each vertex. Noise

This value controls the tightness of the noise pattern. Higher values result in more localized deformations. Seed

Vary this parameter to randomize the noise pattern.

Scale

The properties in this group scale the mesh. The scale is performed in each leaf's local orientation. X

Scales the mesh by this amount in the X axis. Y

Scales the mesh by this amount in the Y axis. Z

Scales the mesh by this amount in the Z axis.

Lighting

The properties in this group modify the vertex normals to change the lighting behavior of the mesh.

Note: These properties are not typically necessary for high detail VFX models but they can significantly improve the lighting on meshes that represent clusters of leaves in real-time models.

Page 190 of 277 Parent Puffiness

Amount

Value scale that controls how much the normals on each individual leaf should face “out,” depending on the assigned anchor point. A value of 1.0 makes each normal line up with the vector that goes from the anchor through the vertex.

Note: Click on a leaf with hints on to see the "Parent puffiness" vectors.

Anchor

This property picks a spot on one of the leaf's ancestors according to the following options.

Global The anchor point is located where the node's highest ancestor hits the ground.

Deep The anchor point is the base of a node very near (and sometimes exactly on) the root of the node's ancestors.

Intermediate The anchor point is somewhere in the middle of the node's ancestors.

Local The anchor point is very near where the node is attached.

None No anchor point is computed, and no parent puffiness is added. Table 46: Parent Puffiness vector options

Puffiness

After all normal adjustments have been performed, this value “sphere-izes” the normals around the center of the mesh, making the geometry have a more puffy appearance. Unify

This property causes all vertex normals to point in the average direction of all of the vertex normals. Use this property to align the normals to help localize specular effects. Adjustments

The properties in this group rotate the normals of each leaf without rotating the geometry. These properties are commonly used when creating clusters.

Hint: Apply variance to these properties to make leaves in a cluster appear jumbled when lit in the final model. Up

This property rotates vertex normals around the local X axis. Right

This property rotates vertex normals around the local Y axis. Out

This property rotates vertex normals around the local Z axis.

Page 191 of 277 Wind

The properties in this group influence how leaves are animated in wind simulations. Scalar

Use this property to scale how much the leaf moves during wind simulations. The amount and frequency of motion is set on the Fan object. The left hand side of the profile curve corresponds to the pivot point. The right hand side corresponds to the vertex farthest away.

Note: The left hand side of the profile curve must be zero to avoid disconnections from parent. Group

In many wind styles, multiple wind groups are available. Use this property to specify which group the leaves belong to. The most common use of this feature is to have separate animation parameters for leaves and fruit. Seed

Vary this parameter to randomize wind characteristics. Season

The properties in this group control how leaves transition in the Seasons system. Start offset

Leaf transitions are determined by looking up season curves based on the position of the season slider. This value provides an offset on that curve lookup. Use variance on this property to randomly shift when neighboring leaves begin their transition. Time scale

Scales how fast time passes relative to a single leaf. Higher values make leaves transition faster. Drop time

Controls how long the leaf will remain attached. A leaf can drop no matter what material is assigned. Droop

Use this value to make leaves droop as they transition. Curl

Use this value to make leaves curl as they transition. Fold

Use this value to make leaves fold as they transition. Fallen

When “Show Dropped Leaves” is checked on the Season Slider, the properties in this group influence the behavior of leaves on the ground (or ground mesh). Ground Duration

Sets the amount of time the leaves stay on the ground before disappearing. Spread

This value controls how far from the point directly under the tree the leaf may travel before hitting the ground. Flatten

Sets the amount of deformation removal (“Season:Curl” and “Season:Fold”) applied to the fallen leaves.

Page 192 of 277 Jumble

Randomizes the orientations of leaves on the ground. Slope limit

If you have a force mesh applied to the leaf generator, fallen leaves will adhere to it instead of the ground. In that circumstance, use this property to keep leaves from gathering on slopes. Collision

The properties in this group influence how leaves in this generator interact with the Collision system. Style

Use this property to set how the leaves behave during collision computations with the following options:

Everything Leaves in this generator collide with each other and all other leaves.

Ignore Siblings Leaves in this generator ignore siblings but collide with everything else.

Knock out others only Leaves in this generator cannot be removed, but they can eliminate leaves in other generators.

Nothing These leaves do not participate in collision computations. Table 47: Leaf Collision options Take parent

When enabled, if a leaf in this generator is removed, its parent is also removed. Use this option to take away twigs supporting leaves that are removed. Weight

When leaves collide, the one with the higher weight wins. Use this property to set the weight. Pivot Threshold

This property sets how far away from pivot (as a percentage of size) a collision has to happen in order to count. Use this property to eliminate unwanted removals of leaves anchored near each other. Sphere Threshold

When using spherical leaf collision tests, this value scales the size of the spheres used during the test. Spheres are initially sized based on leaf size. Vertex Color

The properties in this group control how vertex colors are computed. Red

The properties in this group control how the red component of the color is computed. Style

This property controls how the red portion of the color is computed from the following options:

Set Sets the color directly using the “Value” property (parent colors are ignored).

Offset from parent The “Value” property is added to the vertex color inherited from the parent. Table 48: Red Vertex color options

Page 193 of 277 Value

This property adds to, subtracts from, or directly sets this color component. Green

The properties in this group control how the red component of the color is computed. Style

This property controls how the red portion of the color is computed from the following options:

Set Sets the color directly using the “Value” property (parent colors are ignored).

Offset from parent The “Value” property is added to the vertex color inherited from the parent. Table 49: Green Vertex color options Value

This property adds to, subtracts from, or directly sets this color component. Blue

The properties in this group control how the red component of the color is computed. Style

This property controls how the red portion of the color is computed from the following options:

Set Sets the color directly using the “Value” property (parent colors are ignored).

Offset from parent The “Value” property is added to the vertex color inherited from the parent. Table 50: Blue Vertex color options Value

This property adds to, subtracts from, or directly sets this color component. Mesh Asset

The properties in this group control how vertex colors stored in the mesh asset are combined with the computed vertex colors. Style

This property controls how mesh asset vertex colors are used from the following options:

Interpolate The “Contribution” value is used to blend from the computed to color (0.0) to the color stored in the asset (1.0).

The “Contribution” value is used to scale the mesh asset vertex color and the result is added to the computed Add vertex color. Table 51: Mesh Asset group control Contribution

This value sets how much influence the mesh asset vertex color has on the final vertex color. Lightmap

The property in this group affects the influence leaves in this generator have on the Lightmap.

Page 194 of 277 Note: Not all versions of the Modeler support lightmap UV computation. Weight

Use this property to increase or decrease the importance of the leaves in the lightmap of this generator – 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.

FROND GENERATOR

The Frond Generator creates a mesh that lies along a branch spine. The following sections detail each of the Frond Generator's properties.

Note: Fronds must be placed on a branch generator to create a mesh. If you don't want to see the branch, set its “Skin:Style” property to “Spine only”.

Generation

The generation properties are described in full detail under Generation Properties. Random Seeds

Properties that have 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. Materials

The properties in this group control the material assignments and mesh resolution. Frond

Applies a material to the frond mesh in this generator. Use the button controls to add [+] or remove [-] materials per geometry type.

Note: Fronds will use the mesh assigned to the material if it exists. If the material does not have an assigned mesh, a simple ribbon will be generated. Material

Specify a named material from the Materials Asset bar, or use a material set from the Material Sets Bar. Materials are chosen based on their weights and season settings. Weight

Sets the probability that a node will receive this material index (this weight ÷ the sum of all weights). Flip

When enabled, randomly selected frond nodes are flipped over the Y axis.

Page 195 of 277 Two-Sided

When enabled, the frond mesh geometry is duplicated for the reverse side. If you are looking to reverse the material and not the geometry, check the two-sided box in the material assets bar instead.

Note: Keep in mind that on a two-sided mesh, the frond will have overlapping geometry if wind is enabled. Mesh

Index

When set to a value other than 0, the mesh currently assigned will go up or down in mesh resolution (“High,” “Medium,” or “Low” detail on the mesh asset). Use this property (especially in conjunction with its parent curve) to adjust mesh resolution throughout the model.

Note: "Mesh LOD" and "Mesh LOD Offset" both require meshes assigned in at least two of the three mesh asset LOD slots.

Resolution

This curve sets which mesh version (“High,” “Medium” or “Low” detail on the mesh asset) is used based on the active resolution. Shape

The properties in this group control how the mesh is manipulated when computing the frond. Unification

This property lets you maximize the number of outward facing frond meshes. Parent spine rotations can often cause the frond mesh to face inward. With unification enabled, the initial orientation of frond meshes will be adjusted so that they face out relative to the selected anchor position. Choose from the following anchor positions:

Global The anchor point is located where the node's highest ancestor hits the ground.

Deep The anchor point is the base of a node very near (and sometimes exactly on) the root of the node's ancestors.

Intermediate The anchor point is somewhere in the middle of the node's ancestors.

Local The anchor point is very near where the node is attached.

None No anchor point is computed, and no unification is done. Table 52: Shape group control

Gravity

Pulls the edges of both sides of the Frond Mesh toward the ground. A negative value will pull the edges of the frond up towards the sky. Fold

Folds each side of the frond toward each other (Much like folding a piece of paper).

Page 196 of 277

Curl

Curls both of the outside mesh edges in towards the spine. Roll

Rotates the mesh around the parent spine. Boundary

The properties in this group control where the frond starts and stops on its parent. Start

Controls where the frond begins on the spine (0.0 corresponds to the beginning; 1.0 corresponds to the end). End

Controls where the frond ends on the spine (0.0 corresponds to the beginning; 1.0 corresponds to the end). Left-Right Variance

The properties in this group control how much the left and right sides of the frond differ in their deformation. Amount

Adding this variance amount causes the two sides of a mesh to react independently to the amount of “Curl,” “Fold,” and “Gravity”. Seed

Vary this value to change how the variance is computed. Scale

The properties in this group scale the width and height of the mesh. The length is always controlled by the parent spine. Width

Scales the width of the mesh. This scale corresponds to the X axis of the mesh asset. Height

Scales the height of the mesh. This scale corresponds to the Z axis of the mesh asset. Lighting

The properties in this group modify the vertex normals to change the lighting behavior of the frond. Alignment

This value causes the vertex normals to point in the direction of the parent spine's growth. Spread

This value causes the vertex normals to point away from the parent spine. Segments

The properties in this group control polygonal resolution when no mesh is assigned to the frond material. Accuracy

Sets the number of segments in each rib of the frond infrastructure. Rib spines are computed for each side of the frond at each length segment of the parent spine. The final frond mesh is mapped to these ribs.

Page 197 of 277 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 compute times.

Width

The properties in this group combine to set the number of width segments. Length segments are controlled by the parent spine. Absolute

The minimum number of segments across the frond. + Relative

A number of segments are computed based on the frond width and this value. This number is added to the “Absolute” segments for the final number of frond width segments used.

Note: You must have vertices running up the center of your frond to avoid deformation artifacts (e.g., the frond separating from the spine). For fronds that don't use a mesh, favor even numbers of segments where possible.

Season

The properties in this group provide the mechanism by which assigned materials can change with the Seasons slider. 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. Collision

The properties in this group influence how fronds in this generator interact with the collision system. Style

Use this property to set how the fronds behave during collision computations from the following options:

Everything Fronds in this generator collide with each other and all other leaves.

Ignore Siblings Fronds in this generator ignore siblings but collide with everything else.

Knock out Others Only Fronds in this generator cannot be removed, but they can eliminate leaves in other generators.

Nothing These fronds do not participate in collision computations. Table 53: Frond collision options

Weight

When fronds collide, the one with the higher weight wins. Use this property to set the weight.

Page 198 of 277 Pivot Threshold

Sets how far away from pivot (as a percentage of size) a collision has to happen in order to count. Use this property to eliminate unwanted removals of fronds anchored near each other. Wind

The properties in this group influence how fronds are animated in wind simulations. Amount

Scales how much the frond moves during wind simulations. The amount and frequency of motion is set on the Fan object. The left hand side of the profile curve corresponds to the start of the frond. The right hand side corresponds to the end. Cross

Influences the amount of motion as the frond grows from the parent spine to the edge. 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 frond will grow is set on the Timeline Bar. Use this property to scale that value. The profile curve scales the speed relative to the fronds’ total growth time. For example, ease in and out of the growth animation by using an “S- curve.” Transitions

Gravity

Adds additional gravity to the frond at the start of the growth. The profile curve sets how much of the additional gravity is added during the growth cycle of the frond. Curl

Adds additional curl to the frond at the start of the growth. The profile curve sets how much of the additional curl is added during the growth cycle of the frond. Fold

Adds additional fold to the frond at the start of the growth. The profile curve sets how much of the additional fold is added during the growth cycle of the frond. Roll

Adds additional roll to the frond at the start of the growth. The profile curve sets how much of the additional roll is added during the growth cycle of the frond. Dynamic LOD

The properties in this group control the LOD behavior of the fronds. Weight

Increases or decreases the likelihood that fronds in this generator will survive the LOD process (vs. fronds in other generators). Use the parent curve to target specific areas of the model.

Page 199 of 277 Mesh

Controls which mesh LOD (if present) is used for each LOD state. The left side of the curve corresponds to the highest LOD. The right side corresponds to the lowest LOD. Vertex Color

The properties in this group control how vertex colors are computed.

Note: "Vertex colors" must be enabled on the Tree generator for these properties to work. Red

The properties in this group control how the red component of the color is computed. Style

This property controls how the red portion of the color is computed from the following options:

Set Sets the color directly using the “Value” property (parent colors are ignored).

Offset from parent The “Value” property is added to the vertex color inherited from the parent. Table 54: Red Vertex color options Value

This property adds to, subtracts from, or directly sets this color component. Green

The properties in this group control how the red component of the color is computed. Style

This property controls how the red portion of the color is computed from the following options:

Set Sets the color directly using the “Value” property (parent colors are ignored).

Offset from parent The “Value” property is added to the vertex color inherited from the parent. Table 55: Green Vertex color options Value

This property adds to, subtracts from, or directly sets this color component. Blue

The properties in this group control how the red component of the color is computed. Style

This property controls how the red portion of the color is computed from the following options:

Set Sets the color directly using the “Value” property (parent colors are ignored).

Offset from parent The “Value” property is added to the vertex color inherited from the parent. Table 56: Blue Vertex color options

Page 200 of 277 Value

This property adds to, subtracts from, or directly sets this color component. Mesh Asset

The properties in this group control how vertex colors stored in the mesh asset are combined with the computed vertex colors. Style

This property controls how mesh asset vertex colors are used from the following options:

Interpolate The “Contribution” value is used to blend from the computed to color (0.0) to the color stored in the asset (1.0).

The “Contribution” value is used to scale the mesh asset vertex color and the result is added to the computed Add vertex color. Table 57: Mesh Asset group options Contribution

This value sets how much influence the mesh asset vertex color has on the final vertex color. 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

Influences how much space in the lightmap fronds made by this generator can have. 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.

KNOT GENERATOR

The Knot generator is used to add surface details to branches. These details include knots, lumps, gashes, and other small details depending on the property settings. Knot geometry is divided into three sections:

Outer This section is the outermost portion of the knot, is always welded to the branch, and always shares the branch material.

Inner This section represents a thin portion of geometry that creates a bridge between the outside and the bare, inner material.

Core This is the center of the knot, usually represented by a cut branch material. Table 58: Knot Generator options

Generation

The Generation properties are described in detail under Generation Properties.

Page 201 of 277 Random Seeds

Properties that have 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.

Outer

The properties in this group govern the shape of the outer geometry. This geometry is always welded to the parent, matches the UV coordinates of the parent exactly, and inherits the parent's branch material. Size

Controls the overall size of the knot. Offset

Controls how far the knot extrudes from the parent it is applied too. Rotation

Uniform roll of the entire knot (“Inner” and “Core” will rotate with it). Scale

Scales the width of the knot. Use “Scale” and “Rotation” together to get non-circular knots oriented on the model as you see fit. Lip

The edge where the outer geometry meets the inner geometry can be raised using this value. Use this to create a lip between the outer and inner geometry. Noise

The properties in this group distort the geometry based on a noise pattern. Shape

Amount

Use this property to deform the shape of the knot boundary. Scale

This value sets the tightness of the noise pattern. Higher values result in more deformed knot geometry. Offset

Amount

Use this property to deform the offset of the knot. Scale

This value sets the tightness of the noise pattern. Higher values result in more deformed knot geometry. Seed

Vary this parameter to randomize the noise pattern.

Page 202 of 277 Inner

The properties in this group govern the shape of the piece of geometry that connects the outer section to the core section. Size %

This property sets the size of both the “Inner” and “Core” sections as a percentage of the total knot size. Scale

This value scales the width of the “Inner” and “Core” sections. Curvature

This property controls the roundness of the geometry in this region. Higher values cause this geometry section to “puff out” more. Overlap

This value controls how much the “Inner” section overlaps the “Core” section. Use this value along with “Curvature” to create a rounded appearance that sits above the “Core” geometry. UV

The properties in this group govern the UV coordinate generation. Style

Chooses how UVs are generated from the following options:

Match trunk UVs match the parent UVs exactly.

Ring UVs are generated so that materials map around the geometry like a torus. Table 59: UV coordinates generation options Scale

This property scales the UV coordinates uniformly. The coordinates will be clamped to ensure tiling matches. U offset

This property shifts the U coordinates. V Offset

This property shifts the V coordinates. Noise

The properties in this group distort the geometry based on a noise pattern. Shape

Amount

Use this property to deform the shape of the geometry. Scale

This value sets the tightness of the noise pattern. Higher values result in more deformed knot geometry.

Page 203 of 277 Core

The properties in this group govern the behavior of the innermost section of the geometry. Size %

This property controls the size of the core section. This value is set as a percentage of the “Inner” size. Offset

This property moves the “Core” section towards or away from the parent. UV

The properties in this group govern the UV coordinate generation. Style

Chooses how UVs are generated from the following options:

Match trunk UVs match the parent UVs exactly.

Ring UVs are generated such that materials are planar mapped onto the geometry. Table 60: Core UV coordinates generation options Scale

This property scales the UV coordinates uniformly. The coordinates will be clamped to ensure tiling matches. U offset

This property shifts the U coordinates. This property has no effect if the “Ring” style is selected. V Offset

This property shifts the V coordinates. This property has no effect if the “Ring” style is selected. Noise

The properties in this group distort the geometry based on a noise pattern. Shape

Amount

Use this property to deform the shape of the “Core” boundary. Scale

This value sets the tightness of the noise pattern. Higher values result in more deformed knot geometry. Offset

Amount

Use this property to deform the offset of the “Core” geometry. Scale

This value sets the tightness of the noise pattern. Higher values result in more deformed geometry. Seed

Vary this parameter to randomize the noise pattern.

Page 204 of 277 Material

The properties in this group control the material assignments. The actual material used is a function of the material weights and season settings.

Note: The "Outer" section automatically inherits the parent branch material. Inner

The material on the “Inner” portion of the geometry is chosen from the materials in this group. Material

Specifies a named material or material set. Weight

Sets the probability that a node will receive this material (this weight ÷ the sum of all weights). Core

The material on the “Core” portion of the geometry is chosen from the materials in this group. Material

Specifies a named material or material set. Weight

Sets the probability that a node will receive this material (this weight ÷ the sum of all weights). Segments

The properties in this group control the polygonal resolution of the knot. Rings

Rings are the connected loops of geometry that comprise each of the three sections. Use the properties in this section to control how many rings each type gets. Outer

Controls the number of segment rings on the “Outer” geometry. Inner

Controls the number of segment rings on the “Inner” geometry. Core

Controls the number of segment rings on the “Core” geometry. Slices

Slices represent the number of segments “around” the knot and are shared by all three sections. Resolution

Scales the number of slices and rings for each Resolution. Dynamic LOD

The 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 Resolution, which is designed to set the polygonal resolution of a model exported for VFX use.

Page 205 of 277

Weight

This value influences how likely nodes in this generator will be kept during LOD computations. The generator with the higher value will have priority over the other generators of the same type. Knots are considered “decorations” in the LOD system. Ring segments

Scales back the amount of ring segments for each successive LOD. Slice segments

Scales back the number of slices for each successive LOD. 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]. 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. The following values control lightmap space allotments: Outer weight

This value influences how much space in the lightmap the “Outer” knot geometry can have. Inner weight

This value influences how much space in the lightmap the “Inner” knot geometry can have. Core weight

This value influences how much space in the lightmap the “Core” knot geometry can have.

FIN GENERATOR

The Fin Generator attaches meshes to parent branches. Meshes will be anchored along the X axis and are expected to grow in the direction of the Y axis. All vertices along the X axis will be welded to the parent. Use this generator to make fungi, peeling bark, or any other thin geometry protrusions growing from a branch. Generation

The properties in this group control how many fins are generated and where they are placed. Forces

The properties in this group control how forces affect the nodes created by this generator. Only forces that influence season behavior work on fins; all others are ignored. Allow Forces

When enabled, all forces that are checked will act on the generator. Random Seeds

Properties that have 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.

Page 206 of 277 Randomize All

Randomizes the value for all seeds used to compute this generator. Fins

The properties in this group control the type, size, and initial placement of the fin nodes. Size

This property sets the size of the fins relative to the radius of the parent at the point where they are attached. Flip

When enabled, randomly selected fin nodes are flipped over the Y axis. Type

The properties in this group specify the materials and meshes for the fin. Meshes must be assigned to the material on the Material Bar to be used on the fin. Materials are chosen based on their weights and season settings. Material

This property specifies a named material from the Material Bar. If “None” is selected or the chosen material has no assigned mesh, a simple square will be used as placeholder geometry. Weight

Sets the probability that a node will receive this material index (this weight ÷ sum of all weights). Resolution

The properties in this group influence the resolution of the mesh. Mesh LOD

This curve sets which mesh version (High, Medium or Low) is used based on the active resolution. It is often desirable to use lower quality meshes at lower resolutions. Mesh LOD Offset

When set to a value other than 0, the mesh currently assigned will go up or down one mesh resolution (High, Medium, or Low). Use this property (especially in conjunction with its parent curve) to adjust mesh resolution throughout the model.

Note: "Mesh LOD" and "Mesh LOD Offset" both require meshes assigned in at least two of the three mesh asset LOD slots.

Orientation

The properties in this group control how the fins are situated on their parent. Style

This property sets the style of the initial orientation of the fins from the following options:

Protrusion Meshes default to pointing directly away from the parent.

Peeling bark (all up) Meshes default to pointing straight up the parent branch.

Peeling bark (all down) Meshes default to pointing straight down the parent branch.

Peeling bark (up and down) Meshes randomly point up or down the parent branch. Table 61: Fin initial orientation options

Page 207 of 277 Start angle

This property rotates the mesh around its X axis. Angle direction is adjusted so that positive values move the mesh toward being perpendicular to the parent when peeling bark is the selected “Style”. Roll

This property rotates the fin around its Y axis. Deformation

The properties in this group alter the shape of the mesh. It is important to remember that these properties work best when there are enough vertices in the mesh to reveal the changes.

Note: Using these properties on low resolution meshes can produce undesirable results. You should always have at least one vertex near the center of the mesh for the best results.

Fold

Folds both sides of the fin, lengthwise, along the Y axis of the mesh. A negative value bends down, while a positive value bends up. Curl

Curls the fin around the mesh's X axis. Vertex

The properties in this group perform a noise-based deformation of each vertex in the mesh. Amount

Controls the amount of noise applied to each vertex.

Noise

Controls the tightness of the noise pattern. Higher values result in more localized deformations. Seed

Vary this parameter to randomize the noise pattern. Scale

The properties in this group scale the mesh. The scale is performed in each fin's local orientation. X

Scales the mesh by this amount in the X axis. Y

Scales the mesh by this amount in the Y axis. Z

Scales the mesh by this amount in the Z axis.

Page 208 of 277 Lighting

The properties in this group adjust the mesh vertex normals to change the fin's lighting behavior. Puffiness

This value “sphere-izes” the normals around the center of the mesh, giving the geometry a more puffy appearance. Match Surface

This value bends the normals so that they match the surface normal of the parent. Use this property to reduce harsh lighting artifacts where the fin meets the parent. Use the profile curve to fade back to the regular normals as the vertices move away from the parent. Wind

The property in this group influences how fins are animated in wind simulations. Ripple scale

Use this property to scale how much the fin moves during wind simulations. The amount and frequency of motion are set on the Fan object. The left hand side of the profile curve corresponds to the pivot point. The right hand side corresponds to the vertex farthest away.

Note: The left hand side of the profile curve must be zero to avoid disconnections from parent.

Note: Fins are treated as leaves in wind simulations.

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 fin will grow is set on the Timeline Bar. Use this property to scale that value. The profile curve scales the speed relative to the fin's total growth time. For example, ease in and out of the growth animation by using an “S-curve.” Transitions

Size

This curve control how the size increases over the course of the fin's growth time. Orientation

This value controls how much to rotate the fin about its local X axis at the start of its growth period. The profile curve controls how it transitions to the final orientation. The rightmost point of the profile curve must be at 1.0 to match the model as it appears when growth is disabled. Curl

Adds additional curl to the fin at the start of the growth. The profile curve sets how much of the additional curl is added during the growth cycle of the fin.

Page 209 of 277 Fold

Adds additional fold to the fin at the start of the growth. The profile curve sets how much of the additional curl is added during the growth cycle of the fin. Timing

Style

Sets the conditions under which the fin will start growing. The Start % property works according to the option selected here. Options include:

The fin will start growing exactly when the parent is long enough to reach its starting point in the fully In Place grown model. “Start %” has no effect. This style makes the animation appear to trace out the model.

The growth of this fin will be based on the growth of the parent. A Start % of 0.0 means start when the Parent parent starts, 1.0 means start when the parent ends.

Parent's Start and End The growth of this fin will start and stop in perfect synchronization with its parent. Start % has no effect. Table 62: Fin growing timing options Start %

Causes fins 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 fins.

Note: It is almost never a good idea to go negative with this value (fins 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 fin will start is when it was supposed to, but some will be delayed.

Season

The properties in this group control how fins transition in the seasons system. Start Offset

Fin transitions are determined by looking up season curves based on the position of the season slider. This value provides an offset on that curve lookup. Use variance on this property to randomly shift when neighboring fins begin their transition. Time Scale

Scales how fast time passes relative to a single fin. Higher values make fins transition faster. Curl

Use this value to make fins curl as they transition. Fold

Use this value to make fins fold as they transition.

Page 210 of 277 Dynamic LOD

The properties in this group control the LOD behavior of the fins. Weight

Use this value to increase or decrease the likelihood that fins in this generator will survive the LOD process (vs. decorators in other generators). Use the parent curve to target specific areas of the model.

Note:: Fins are considered decorators in the LOD system. Mesh Index

This curve controls which mesh LOD (if present) is used for each LOD state. The left side of the curve corresponds to the highest LOD. The right side corresponds to the lowest LOD. Collision

The properties in this group influence how fins in this generator interact with the collision system. Style

Use this property to set how the fins behave during collision computations from the following options:

Everything Fins in this generator collide with each other and all other fins.

Ignore Siblings Fins in this generator ignore siblings but collide with everything else.

Knock out Others Only Fins in this generator cannot be removed, but they can eliminate fins in other generators.

Nothing These fins do not participate in collision computations. Table 63: Options for Fin Generator interaction with collision system

Weight

When fins and leaves collide, the one with the higher weight wins. Use this property to set the weight. Pivot Threshold

This property sets how far away from pivot (as a percentage of size) a collision has to happen in order to count. Use this property to eliminate unwanted removals of fins anchored near each other. Lightmap

The property in this group affects the influence fins 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 fins 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.

Page 211 of 277 CAP GENERATOR

The Cap generator is responsible for closing off either the top or the bottom of an open Branch with geometry that simulates broken or cut ends. Each cap is composed of two sections: an outer region that extends the branch geometry, and an inner portion that represents the cut or broken middle of the branch. The outer portion always inherits the branch material of the parent generator. Generation

Unlike most generators, caps utilize only the “Shared:Extend parent” property in the standard generation properties group. Caps are placed only at the end or beginning of a branch. Random Seeds

Properties that have 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. Cap

The properties in this group set the general shape and material of the cap. Angle

Use this value to rotate the cap features. Scale

Scales the UV coordinates on the inner section. Use this value to spread out the cap material across the surface. Offset

Pushes the cap above or below the edge of the parent branch. Slope

Use this property to make the cap geometry slant to one side or the other. Spread

This value spreads the top end of the cap out beyond the borders of the parent branch. This property has an effect only when there is a lip and it has a height. Lip

The properties in this group create a boundary between the outer and inner sections, effectively shrinking the inner area. Thickness

This property sets the thickness of the lip. Height

The property sets the height of the lip above its default location. The left hand side of the profile curve corresponds to where the outer region connects to the parent branch. The right hand side corresponds to where the outer region attaches to the inner section.

Note: Both the left and right hand side of the profile curve must be at 0.0 otherwise the geometry will be disconnected.

Material

The properties in this group specify the material used for the inner portion of the geometry. Material

This property specifies a named material from the Material Bar. Weight

Sets the probability that a node will receive this material (this weight ÷ sum of all weights). Segments

The properties in this group control the polygonal resolution of the cap geometry. Rings

Sets the number of rings used to create the inner section. Lip

Sets the number of rings comprising the lip, or outer, section. Displacement

The properties in this group control the noise-based placed displacement of the cap vertices. Source

Selects either a noise pattern or a named displacement asset as the source of the displacement. Amount

Controls the largest possible amount of displacement. U offset

Shifts the displacement in the direction of the U coordinates. V offset

Shifts the displacement in the direction of the V coordinates. UV tile

Scales the UV coordinates used to look up the displacement. Angle

Rotates the displacement pattern around the parent's growth direction. Dynamic LOD

The 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 Resolution, which is designed to set the polygonal resolution of a model exported for VFX use. LOD details are controlled via the following properties: Weight

Influences how likely nodes in this generator will be kept during LOD computations. The generator with the higher value will have priority over the other generators of the same type.

Note: Caps are considered to be decorators in the LOD system.

Page 213 of 277 Ring Segments

Scales back the amount of inner rings for each successive LOD. Lip Segments

Scales back the amount of lip, or outer, rings for each successive LOD. 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]. 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. The following values control lightmap space allotments: Branch weight

This value influences how much space in the lightmap the lip, or outer, geometry can have. Cap weight

This value influences how much space in the lightmap the inner geometry can have.

SHELL G ENERATOR

The Shell generator is a special case version of the Branch generator. It exists only to duplicate a portion of its parent branch at a slightly wider radius. This extra geometry can cover all of the parent or only part of it. Use this generator to provide a thin layer of a different bark material around a branch. Only the properties presented below are editable on shells. The rest of the shell's features are copied from the parent branch. 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]. Table 64: Shell Generator UV coordinates generation options 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.

Page 214 of 277 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. 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 V tiling is computed based on the U tiling and branch radius in such a way that the aspect ratio of the Ratio) applied material is maintained.

Relative V tiling is computed based on the length of the branch. Table 65: Twist V coordinates options 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. Table 66: Twist V anchor coordinates options 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.

Page 215 of 277 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 Materials Bar, a named set from the 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). 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. Decorator

The properties in this group control how much of the parent is covered by the shell and how much wider the shell is than its parent. Position

This value controls how far up the parent the shell goes. 0.0 means cover none of it and 1.0 corresponds to fully covering the parent.

Note: You can use opacity maps on the shell material to allow the parent branch material to show through. Scale

Controls how much wider the shell is than the parent (in terms of the parent's radius). Use the profile curve to vary this value along the shell.

Page 216 of 277 ZONE GENERATOR

The Zone generator is responsible for generating either disks or meshes that can grow new geometry off of them. Disk zones do not contribute any geometry to the model directly but provide an area for new generators to create nodes. Mesh zones provide a surface to grow child nodes from and can contribute their geometry to the model if desired. Generation

The Generation properties are described in detail under Generation Properties. Forces

The properties in this group control the behavior of forces on this generator. Allow Forces

When enabled, all forces that are checked will act on the generator Random Seeds

Properties that have 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. Placement

The properties in this group affect the position and shape of the zones. Radius

This property sets the radius of disk zones.

Note: This property is ignored for zones that use meshes. Max Distance

Each zone can be moved away from its parent node. This property represents the maximum distance a zone may move. Min Distance

Each zone can be moved away from its parent node. This property represents the minimum distance a zone may move. Angle

This property rotates the zone around its anchor point before the “Min” and “Max” distance offset is applied. Exponent

This value is applied to the computed placement distance. Greater values will pack zones near the parent and vice versa. Orientation

Alignment

Rotates all of the zones in this generator around their “up” vector so that they are oriented consistently. Hang

This property rotates the zone so that its “up” vector matches the world's “up” vector.

Page 217 of 277 Up rotation

Rotates each zone around the local X axis. Out rotation

Rotates each zone around the local Z axis. Right rotation

Rotates each zone around the local Y axis. Meshes

The properties in this group control the behavior of zones that use mesh assets to grow new geometry. Enable

Toggles the zone generator from disk mode to mesh mode. Include in model

When enabled, zone meshes will be included as part of the model. Place at origin

When enabled, these zones will be positioned at (0, 0, 0) rather than using the placement properties of the zone itself. Use actual size

When enabled, the “Size” property is ignored and meshes are sized according to the original dimensions of the mesh asset. Size

This property sets the size of the mesh. Level of detail

This LOD curve controls which LOD state to use for the assigned mesh. The left end of the curve corresponds to the highest LOD, and the right end of the curve corresponds to the lowest LOD. The LOD states are assigned on the Mesh Assets Bar. Apply Wind

When enabled and applicable, global wind motion will be applied to this mesh. This is useful for zones that are part of a tree model, such as an imported trunk model. Meshes

Multiple meshes can be defined and applied to generated zones at random. Use the button controls to add [+] or remove [-] meshes. Geometry

Specifies a named mesh from the Mesh Asset Bar. Material

Specifies a named material from the Material Asset Bar. Weight

Sets the probability that any node will receive this material/mesh combination (this weight ÷ sum of all weights). Growth

The properties in this group control how nodes generated as children of this zone will be computed.

Page 218 of 277

Area Influence

When enabled, nodes growing off this generator will be placed using an even distribution over all of the triangles in the mesh. When disabled, smaller triangles may be more densely populated than larger triangles. Adapt to Masks

When enabled, nodes growing off this generator will reposition themselves to best fill in the masked area. When disabled, offending nodes are simply culled and no other nodes will move. Enable this property to make your frequency settings more exact (at the expense of slower computation times). Iteration Scale

When “adapt to masks” is enabled, this value sets the number of placement attempts per child. Higher values are more accurate while lower values compute faster. Surface adhesion

Use this property to make children of the zone align with the surface of the mesh. Influence of forces

This property controls how much forces are used to determine placement on the zone mesh. Forces work on zone meshes by giving mesh surfaces that would be “struck” by the force priority over those that won't. Constant Sink

This property sets the amount to “sink” each child under the surface of the zone mesh. This feature is useful if the roots of your trees are showing on top of a terrain mesh. Slope-Based Sink

This property sets the amount to further sink children (added to the “Constant sink” value) as the slope of the zone mesh surface increases. 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 zones made by this generator can have. 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.

Page 219 of 277 LEGACY GENERATORS

The generators used in SpeedTree versions 5.x through 7.x are now considered legacy generators. They are still present in SpeedTree 8 but are not fully functional with new systems and are not guaranteed to remain available in future SpeedTree versions. They are included primarily so that old models can be loaded and upgraded to use new generators instead. The table below names each legacy generator and their replacements.

Legacy generator Replacement generator(s)

Spine Branch, Frond, Cap (Old spines were responsible for all three)

Subdivision Branch Branch (this generator does polygonal and subdivision surfaces)

Cage Tree (this generator always acts as a default subdivision cage in SpeedTree 8)

Leaf Leaf Mesh and Batched Leaf

Proxy No replacement, world building has been removed Table 67: Legacy generators used in SpeedTree versions 5.x through 7.x

Spine Generator

Note: This generator has been deprecated. Please upgrade these generators to Branch generators. Generation

The Generation properties are described in full detail under Generation Properties. Forces

The properties in this group control the behavior of forces on this generator. Geometry Types

Frond

When enabled, 2-sided frond geometry is generated along the spine. Leaf Style Fronds

When enabled, frond geometry is treated as leaves. Leaf style fronds use leaf wind effects and are toggled with the leaf visibility hotkey (1). Branch

When enabled, fully 3D branches are skinned over the spine. Cap

When enabled, cap geometry is skinned over open ends of branches, either caused by the radius profile or breaking. Random Seeds

Properties that have 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.

Page 220 of 277 Randomize All

Randomizes the value for all seeds used to compute this generator. 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. Table 68: Hand-Drawn Bézier spline options

Curve Fit Scalar

Sets 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. Segments

Multiplier

Scales the number of length, radial, and cap segments uniformly. Style

Relative Both length and radial segments are computed based on the length and radius of the node, respectively.

Length relative Length segments are computed based on the length of the node.

Radial relative Radial segments are computed based on the radius of the node.

Absolute Both length and radial segments are set explicitly. Table 69: Segment computational options Accuracy

The maximum fidelity of spines. Length

The number of segments composing spines.

Page 221 of 277 Optimization

Segments are added and 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

The number of segments composing the radial cross-section of branches. Cap

The number of segments composing the cap geometry of broken or open-ended branches. Weld

The number of segments composing the fused part of welded branches. Frond shape

The number of segments composing the Frond: Shape: Contour curve. Frond Optimization

Frond segments are added and removed adaptively based on the curvature of the frond. Increasing this value increases the angle that must be met for a frond length segment to survive the optimization. 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. 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. Length

The length of the spine nodes as distributed along the parent node. Relative length limiter

If Length Style is set to “Relative” and “Limit Length” is enabled, this value serves as the limiter for all possible lengths, regardless of the length of each parent. Start Angle

Sets 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. Alignment

An interpolation between a random “up” direction and absolute (world) “up.”

Page 222 of 277 Roll

Uniform rotation of each spine. Roll is applied after Spine:Alignment. Unify Orientation

Forces spine 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). Perturbance

Toggles the effect of spine disturbance, jink frequency, and jink amount. Disturbance

Sets the amount of randomness applied to each angle along the spine length. Jink Frequency

Sets 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.

Break Chance

Sets the likelihood that any node will “break,” resulting in a capped branch at the break spot. Break Spot

The percentage of the way along any spine where the branch will “break” from break chance. Bifurcation

Chance

The likelihood that any node will bifurcate, or “fork” into two spines at the bifurcation spot. Spot

The percentage of the way along the spine where the branch will “fork” from Bifurcation:Chance. Angle

The angle between the two forked halves. Distance

The length of the bifurcating segment (from the previous ring to the crease between the fork). Radius Scale

Amount to decrease the radius of each bifurcation end branch. Adjust Frequency

When enabled, bifurcated branches will generate more children than non-bifurcated branches. Adjust Frond Start

Page 223 of 277 When enabled, fronds geometry will not start until the bifurcation point (fronds will be made on each split after the break). Web

Angle The amount to retract the crease in the middle of the web. Thickness The width of the crease in the middle of the web. Spread Amount to retract the outer edges of the base ring. Break

Style Whether to break the left, right, or both ends if the break spot lies past the bifurcation spot. Left Break Spot The amount to offset the break spot up or down if it happens on the left end of the bifurcation. Right Break Spot The amount to offset the break spot up or down if it happens on the right end of the bifurcation. Cap Variance The amount of variation between the cap displacement of each bifurcation end branch.

NOTE: Both “Bifurcate” and “Break” must be enabled for a node to utilize Break:Style. Frond

Shape

Width The width of the frond. Height The height of the “Contour” curve. Contour The frond shape definition. This curve is extruded along the length of the spine. Shape: Contour Style Selects how the “Contour” curve is interpreted from the following options:

Right Side The curve is mirrored (over the curve Y-axis) on each side of the frond.

Full Width The curve is interpreted to cover both sides of the frond, allowing non-symmetrical frond shapes. Table 70: Contour style curve options

Lock Aspect Ratio When enabled, the frond width will increase and decrease to maintain the aspect ratio of the material.

Page 224 of 277 Mapping Selects the mapping style from the following options:

Fronds are mapped based on surface approximation from the center outwards (maintaining the center- Centered Surface line of the textures).

Fronds are mapped based strictly on surface approximation (mapping may be heavily weighted on one Surface side rather than staying centered).

Fronds are planar mapped face down without respecting surface approximation (may result in texture Planar stretching). Table 71: Mapping style options Flip Selects if/how frond geometry is flipped from the following options.

None No flipping will occur.

Mapping Random nodes will have flipped texture coordinates.

Shape Random nodes will have flipped shapes [see Shape: Contour].

Both Random nodes may have flipped texture coordinates, shapes, or both. Table 72: Frond geometry flipping options

Start The percentage along the spine where frond geometry begins. End The percentage along the spine where frond geometry terminates. Roll Uniform rotation of the frond, applied after spine roll and spine alignment. Count The number of frond “blades.” Frond blades are instances of the frond shape rotated along the spine. Spacing The radial distance between each frond blade. A value of 1.0 results in equal distance on both sides of the frond.

Note: Requires a frond count greater than 1.

Normals

Alignment

Normals are rotated from the face normal towards the direction the node is growing. A value of 1.0 results in normals facing completely out.

Page 225 of 277

Spread

Normals are fanned towards the sides of the frond. Spreading will increase for each Frond: Shape segment approaching the edge of the frond. Light Seam Reduction

The normals at each vertex are rotated toward the surface normal at the point where the frond attaches to its parent. Use this option to smooth out the lighting where the frond meets its parent. Two Sided

When enabled, geometry is created on both sides of standard fronds. Does not apply to mesh fronds. Invert

Inverts the normals on standard fronds. This property does not apply to mesh fronds. Mesh

Normal Bias

Modulates between the standard frond normals (0.0) and the normals as set in the source mesh (1.0). Offset Direction

Selects the direction used for handling meshes with height from the following options:

Frond The Z-depth of mesh fronds are applied based on the shape of the “Contour” curve.

Spine The Z-depth of mesh fronds are applied in a planar fashion with the up vector defined by the spine's orientation. Table 73: Z-depth of mesh fronds options Z Scale

Scalar for the height of mesh fronds. 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. Table 74: Branch radius options Radius

The radius of the extruded branch skin.

Note: Radius is limited to the radius profile percentage of the parent node at the point where each branch is generated unless clamp radius is disabled.

Page 226 of 277 Clamp Radius

When enabled, the radius can never exceed the radius of its parent at the point where the branch was generated. Light Seam Reduction

The amount to bend the normals toward the parent spine direction.

Note: Normal bending increases exponentially near the base of the branch since light seams occur where branches intersect.

Roll

Branch roll rotates the skin of the branch around the center spine without changing the underlying shape. 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. Cap

Angle

The rotation of the texture coordinates around the center of the cap. Scale

Texture coordinate scale. Larger values zoom in towards the center (clamped at 1.0). Border

Insets the cap from the branch proper 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 border value greater than 0.0.

Page 227 of 277 Slope

The length to extend one side of the cap, creating a slope.

Note: Rotate the slope with “Angle.”

Welding

Enabled

When enabled, branches will be pushed out and fused to their parent, creating a seamless union between the two. Normal blending

The percentage to blend between computed branch normals and the normals from the parent branch at the point of welding. Distance

The distance away from the parent branch skin to start the welded branch. 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. Intersection Blending

Style

The method used for applying intersection blending. Options include:

Branch blending will be applied as long as it is considered “safe” (the branch doesn't cross a bifurcation Standard saddle or detail clamp).

Force Branch blending will be applied always, as long as the child is welded.

Disabled Branch blending is disabled. Table 75: Branch blending options Texture Pull

The amount to extend the blended texture region up the child branch, elongating or squashing the texture mapping.

Offset

An offset to the “line” between the base texture mapping and blend region. Go above or below zero to offset the position of the blend line, without adjusting the texture coordinates. Texture Coordinates

Layer Each layer applies only to branch geometry. Branches have two distinct sets of texture coordinates, “Base” and “Detail.”

Page 228 of 277 Base Show the base layer property set.

Detail Show the detail layer property set.

Both Show the property sets for both base and detail layers. Table 76: Branch texture coordinates options Note: Detail layers are ignored in SpeedTree 8.0 and later.

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 and V tile are set explicitly. Table 77: UV coordinates computation options U Correction Selects how U coords are corrected for the shape of the branch.

None Texture mapping is applied as a cylinder before skin disturbance (i.e. displacement, welding, flares).

Early Texture mapping is applied as a cylinder and adjusted before skin disturbance (i.e. displacement, welding, flares).

Late Texture mapping is applied as a cylinder after skin disturbance (i.e. displacement, welding, flares). Table 78: U coords corrections options for branch shape U Lock When enabled, the “U Tile” property becomes integer-locked to ensure wrapping without seams. For very thin branches, it may be desirable to turn this option off to match the texel density of parent branches. 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 float 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 float and the actual value is a function of the length of individual nodes.

Page 229 of 277

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. Clamp

The properties in this group are ignored in SpeedTree 8.0 and later. Materials

Branches, caps and fronds can each have multiple materials to be distributed randomly. Use the button controls to add [+] or remove [-] materials per geometry type. Geometry

A named mesh asset (only applies to fronds). Material

A named material from the material bank, or set to “inherited.” Weight

Probability that a node will receive this material index (this weight ÷ sum of all weights). Sync Index

When enabled (and multiple branch, cap, and fronds 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. Table 79: Branch source displacement options

Note: The displacement source is not exported for real-time use; it is used only as a modeling aid.

Page 230 of 277 Mapping Selects how the displacement is mapped to the branch from the following options:

Displacement is mapped on top of the existing Layer: Base coordinates. Tile and offset are applied Use base tex coords after obtaining the base coordinates.

Overwrite base tex Ignore the existing coordinates and map displacement explicitly by the other values in this group. coords Table 80: Coordinates for displacement mapping

Amount The amount of surface displacement. Jaggedness The amount to offset the vertices of each branch ring. Jaggedness is necessary for creating realistic breaks when physics are enabled. Jaggedness Tile Scales the tiling of the displacement source for the jaggedness only. Adjusting this value may be necessary if the displacement map does not have sufficient resolution to offset individual vertices. Offset The amount to offset the depth of the displacement source. Values greater than one will push the displacement outwards and less than one 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.

Page 231 of 277 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. Table 81:Displacement source options

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. Ambient Occlusion

The properties in this group are ignored in SpeedTree 8.0 and later. Level of Detail

The properties in this group are ignored in SpeedTree 8.0 and later. 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.

Page 232 of 277 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). Group

When leaf style fronds are enabled, this selects the “wind group” that this generator belongs to. On the global wind properties, there are two distinct wind groups, each with their own set of property values. Fronds: Ripple Scale

Controls how much this frond adheres to the frond rippling distance values set on the global wind settings. Edit Global Wind

Selects the fan object, allowing the alteration of all global wind settings. Growth

The properties in this group are ignored in SpeedTree 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. Table 82: Bones computations options

Bones

The number of bones generated along the length of spines.

Note: If Bone Style is set to relative, this integer becomes a float 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.

Page 233 of 277 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.

SubDiv Generator

Note: This generator has been deprecated. Please upgrade these generators to Branch generators. Generation

The Generation properties are described in full detail under Generation Properties. Forces

The properties in this group control the behavior of forces on this generator. Random Seeds

Properties that have 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. Table 83: Segment length style options

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.

Page 234 of 277 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.

Page 235 of 277 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. Table 84: Control points for Bézier splines options 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. Table 85: Branch radius options 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.

Page 236 of 277 Texture Pull The amount to extend the blended texture region up 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.

Page 237 of 277 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 and V tile are set explicitly. Table 86: UV coordinates computation options 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 float 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 float 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.

Page 238 of 277 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

Probability that a node will receive this material index (this weight ÷ sum of all weights). Sync Index

When enabled (and multiple branch, cap, and fronds 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. Table 87: Displacement branch options

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:

Displacement is mapped on top of the existing Layer: Base coordinates. Tile and offset are applied Use base tex coords after obtaining the base coordinates.

Overwrite base tex coords Ignore the existing coordinates and map displacement explicitly by the other values in this group. Table 88: Displacement mapping options 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.

Page 239 of 277 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. Table 89: Displacement source options 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.

Page 240 of 277 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. Table 90: Bone options Bones

The number of bones generated along the length of spines.

Note: If Bone Style is set to relative, this integer becomes a float 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.

Page 241 of 277 Cage Generator

Note: This generator has been deprecated. The Tree generator now acts as a cage when subdivision surfaces are used. Generation

The Generation properties are described in full detail under Generation Properties. Random Seeds

Properties that have 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. Subdivision

Level

Controls how many times the mesh is subdivided. Relax

Averages the vertices around the intersection between the parent and child node. This property works in conjunction with "Relax scale," found under "Branch Properties." So the value set in "Relax scale" determines the strength of the "Relax" value in the "Cage" node.

Leaf Generator

Note: This generator has been deprecated. Please upgrade these generators to Leaf Mesh generators. Generation

The Generation properties are described in full detail under Generation Properties. Forces

The properties in this group control the behavior of forces on this generator. Random Seeds

Properties that have 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. Placement

Weld

When enabled, leaves will be placed directly on the skin of their parent, rendering “Max” and “Min Distance” disabled. At the same time, “Surface Adhesion” becomes enabled.

Unify Orientation

Forces leaf nodes on opposite sides of their parent to be oriented in the same direction. Rotation adjustments like “Up,” “Right,” and “Out” keep opposite nodes synchronized when this option is enabled. This options is especially useful when modeling opposite or alternating phyllotaxis. Surface Adhesion

Orients the leaves by interpolating between the internal “up” direction of each leaf (0.0) and the normal of the parent surface (1.0). Max Distance

The maximum distance from the parent spine where leaf nodes are eligible.

Note: If “Generation:Style” is set to relative, increasing this property results in higher leaf node frequencies in order to ensure full canopy coverage. Min Distance

The minimum distance from the parent spine where leaf nodes are eligible. Exponent

The exponent applied to the computed placement distance. Greater values will pack leaf nodes near the parent spine and vice versa. Angle

The angle between the parent spine and the vector used to offset each leaf from the parent spine. Spread Scalar

Scales the spread factor value set in the leaf collision properties. Cull Scalar

Scales the cull tolerance value set in the leaf collision properties.

Note: Spread and cull scalars have no effect in SpeedTree 8.0 and later. Edit Leaf Collision…

This button has no effect in SpeedTree 8.0 and later. Leaves

Size The size of the leaf nodes. Use Actual Size When enabled, the size parameter is ignored and the mesh is used at exactly the size at which it was modeled. Flip When enabled, randomly-selected leaf nodes are flipped over the Y axis. Type

Multiple leaf types can be defined and applied to nodes at random. Use the button controls to add [+] or remove [-] leaf types.

Page 243 of 277 A named mesh from the mesh bank will be used for this leaf type. A value of “none” results in a plane being used Geometry instead.

Material A named material from the material bank to be applied to this leaf type.

Weight Probability that any node will receive this leaf type (this weight ÷ sum of all weights). Table 91: Leaf type options Cards

Aspect Ratio

The aspect ratio of leaf cards (width ÷ height). Jitter

The amount of offset for each vertex from its default position. X Pivot Offset

The horizontal distance from the center to position the leaf pivot point. Y Pivot Offset

The vertical distance from the center to position the pivot point. Meshes

Orientation Selects how the leaf meshes will be oriented from the following options:

Default Uses SpeedTree's traditional algorithm.

Sky sensitive Orients leaves based on their position relative to the sky and the tree structure.

Leaf meshes are oriented to face the camera at all times, exactly like a leaf card. However, camera-facing Camera facing leaf meshes can take advantage of optimized geometry to reduce overdraw and costly transparent pixels. Table 92: Leaf orientation options

Sensitivity

Parent Controls how much the leaves are aligned based on where they have grown on the model. Higher numbers result in localized orientations. Lower numbers result in a more global effect. Sky Controls how much the leaves point toward the sky. Higher numbers result in the Z axis of each mesh pointing straight up. The more sky sensitive a leaf is, the less parent sensitivity plays a role in its orientation. Alignment Attempts to align the top of each mesh with the world “up” direction while respecting the existing Up Rotation. Used to eliminate upside-down meshes.

Page 244 of 277 Hang Interpolates mesh orientation between the local Z-axis (0.0) and the world Z-axis (1.0). (Percentage) Up Rotation Rotates each mesh around the local X axis. Out Rotation Rotates each mesh around the local Z axis. Right Rotation Rotates each mesh around the local Y axis. Jitter The amount of offset for each vertex from its default position. Jitter is applied differently per leaf. Lighting

Global Style Chooses the algorithm used for calculating the “Global Smoothing” anchor point from the following options:

Parent curve reference Uses SpeedTree's traditional algorithm based on parent curves.

Anatomical anchor Uses a value based on the distance to the ground along the parent branch's anatomy. Table 93: Global Smoothing anchor point options Global Reference The position along the assigned parent level used for calculating “Global Smoothing.”

Note: If “Extras:Hints” are enabled in the Tree Window, the global reference points are drawn as orange cross-hairs on the assigned parent level.

Global Anchor The percentage to ground along the parent branch's anatomy where the anchor point for “Global Smoothing” is computed.

Note: If “Extras:Hints” are enabled in the Tree Window, the global reference points are drawn as orange cross-hairs on the assigned parent level.

Global Smoothing Interpolation between globally smoothed (1.0) and locally smoothed (0.0) leaf normals. Global smoothing aligns leaf normals with the vector drawn from the Global Reference position to the leaf position, resulting in a predictably smooth lighting gradation. Local Smoothing Interpolation between locally smoothed (1.0) and individual node (0.0) leaf normals. Local smoothing aligns leaf normals with the vector drawn from the percentage along the parent spine where the leaf node occurred to the leaf node position, resulting in a staggered lighting gradation. Card Smoothing Pushes leaf card normals away from the center of each leaf card.

Page 245 of 277 Puffiness After all normal adjustments have been performed, this value “sphere-izes” the normals around the pivot point, giving the geometry a more puffy appearance. Range Range controls the maximum range that normals are allowed to span vertically. A linear growth curve uses the entire range from normals pointing completely down to normals pointing completely up. Raise the low end to keep leaves from having normals that point straight down. Ambient Occlusion

Dimming Uniformly darkens interior leaf nodes. Wind

Scalar

Scalar for wind motion from the center of each leaf (profile curve) and for the generator as a whole (parent curve). Group

Selects a “wind group” that this generator belongs to. On the global wind properties, there are two distinct wind groups, each with their own set of property values. This is useful for modeling an alternate leaf wind type (for objects such as hanging moss or flowers). Edit Global Wind

Selects the fan object, allowing the alteration of all global wind settings. Level of Detail

The properties in this group are ignored in SpeedTree 8.0 and later. Growth

The properties in this group are ignored in SpeedTree 8.0 and later. Season

The properties in this group are ignored in SpeedTree 8.0 and later. Lightmap Weight

Scales all of the geometry in this object's relevance in the automatically computed lightmap UV set. 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.

Page 246 of 277 Proxy Generator

The Proxy Generator is responsible for generating proxy nodes. Proxies are generally stand-in objects that represent individual trees in a complete forest scene.

Note: This generator has been deprecated. World building functionality has been removed as of SpeedTree 8.0. Generation

The Generation properties are described in full detail under Generation Properties. Forces

The properties in this group control the behavior of forces on this generator. Allow Forces

When enabled, all forces that are checked will act on the generator. Forces

Each 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. Random Seeds

Properties that have 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. Rotation

Rotation: Up

Rotates each proxy around the local X axis. Rotation: Out

Rotates each proxy around the local Z axis. Rotation: Right

Rotates each proxy around the local Y axis. Geometry

Spike Height The height of the proxies if no meshes are assigned (spike mode). Spike Radius The radius of the proxies if no meshes are assigned (spike mode). Mesh

Multiple proxies can be defined and applied to nodes at random. Use the button controls to add [+] or remove [-] meshes. Geometry A named mesh asset (or a “spike” for simple placeholders). Material A named material asset. Weight Probability that any node will receive this proxy mesh (this weight ÷ sum of all weights). Collision

Allow

Enables proxy collision for this generator. Global Scale

Scales the size of the collision volumes as they pertain to colliding with objects from other generators. Self Scale

Scales the size of the collision volumes as they pertain to colliding with objects from within the same generator Weight Scale

Scales the likelihood that proxies within this generator will survive the collision detection pass.

TREE WINDOW PROPERTIES

The properties documented below control several aspects of the window contents including viewports, background images, and rendering settings. Access these properties via the “Window” pulldown menu or by selecting the “Window Properties” button on the Property Bar when nothing is selected. Viewport

The properties in this group control the layout and rendering of the viewports. Layout Sets the number and arrangement of the viewports. Grid lines color Sets the color of the grid lines. Grid Spacing Sets the amount of space between each grid line. Lightmap View % In versions where lightmap UVs are computed and the lightmap render mode is selected, this property sets how big the lightmap preview image is in the window. Background

Style Use this property to set the style in which the background is rendered. Choose from the following options:

Page 248 of 277 Ambient light Use the ambient environment colors to color the ground and the sky.

Solid color Use the color in the next property as the uniform color of the background.

Full frame Use the “Image” property below to select an image and use it to fill the background of each viewport (some of the image images may not be visible, depending on the aspect ratio.

Letterboxed Use the “Image' property below to select an image and ensure the entire image fits in the background, letter boxing image if necessary.

Stretched Use the “Image” property below to select an image and have it exactly fill the background, stretching if necessary image (image aspect ratio is ignored).

Use the “Image” property below to select a spherical panorama image for the background. The image should be Spherical twice as wide as it is tall and be formatted according to standard spherical (sometimes called 3D) panorama panorama definitions. Table 94: Background rendering style options Color The color used for “Solid” background rendering. Image Selects an image file used for all four image-based background rendering styles. Panorama Adjustments

Brightness Increase or decrease the brightness of spherical panorama backgrounds. Contrast Increase or decrease the contrast of spherical panorama backgrounds. Rotation Rotates the panorama about the “Z” axis. General Rendering

The properties in this group control render states and icon size. Transparency Sets the transparency algorithm from among these options:

Best available Alpha testing with alpha to coverage (A2C) if the hardware permits.

Alpha test only Alpha testing.

Blending only Alpha blending (artifacts will appear, geometry is not sorted).

Alpha testing and Both alpha blending and alpha testing on at the same time (artifacts will appear, geometry is not sorted). blending

None No transparency rendering enabled; however, render mode shaders may still implement alpha testing. Table 95: General Rendering options

Page 249 of 277 Tree Selection Style Selects the method used to indicate selected model components from the following options:

Outline Selected objects are outlined.

Wireframe Selected objects are scribed.

Solid Selected objects are rendered in a solid color.

Box Selected objects are indicated by a box showing their extents. Table 96: Selection options Anisotropic Filtering Sets the level of anisotropic texture filtering. 3D Icon Scale Scales the size of 3D icons (most notably Forces) in the scene. Manipulator

The properties in this group address the 3D manipulator used to move scene objects (most notably Forces and Force Meshes). Mode Sets the type of transformation the manipulator will perform. Coordinate System Choose between global and local coordinate systems for transformations. Size Scale Increases or decreases the size of the manipulator gizmo. Screenshot Safe Frame

The screenshot safe frame sets an aspect ratio that can be used to guide all image exports. Use the same aspect ratio in your image exports to match the overlay. Show When enabled, a red box is drawn over the window to indicate how the aspect ratio set by the following two properties will align with the camera: Width The width value used to compute the screenshot safe frame aspect ratio. Height The height value used to compute the screenshot safe frame aspect ratio. User Shader Constant 1

The properties in this group are uploaded as a shader constant named “g_vExperimental1”. This constant can be accessed by custom render modes. Use these options to experiment with shader values without having to recompile the shader. These values are saved in the .spm file.

Page 250 of 277 X This value is uploaded to the shader constant “g_vExperimental1.x.” Y This value is uploaded to the shader constant “g_vExperimental1.y.” Z This value is uploaded to the shader constant “g_vExperimental1.z.” W This value is uploaded to the shader constant “g_vExperimental1.w.” Capture Camera

The properties in this group impart a constant camera and light motion while the window is animating. This mode is useful when capturing frames for video productions.

Note: Enabling wind is the easiest way to make the window contents animate.

Style This property controls where the capture camera inputs are applied from the following options:

Disabled Camera inputs are not used.

Camera inputs are applied in the Tree Window. This mode is useful for moving the camera and light during Interactive real-time captures of the application.

Camera inputs are applied when using “File→Render image sequence…”. This mode is useful for turntable Sequence render renders or growth sequence preview renders. Table 97: Capture Camera options Left X Simulates the left mouse button being held down and moving the mouse along the “X” axis this amount each frame. Left Y Simulates the left mouse button being held down and moving the mouse along the “Y” axis this amount each frame. Middle X Simulates the middle mouse button being held down and moving the mouse along the “X” axis this amount each frame. Middle Y Simulates the middle mouse button being held down and moving the mouse along the “Y” axis this amount each frame. Light azimuth The horizontal angle of the light is changed by this amount each frame. Light pitch The vertical angle of the light is changed by this amount each frame.

Page 251 of 277 FORCE

The properties on force objects control how forces affect the model and the scene.

Note: Forces operate only on Generators or Nodes where the force is enabled in the “Forces” property group.

Force

The properties in this group set the basic functionality of force objects. Enabled

Use this property to toggle the force's influence on model computation. Disabling a mesh force will stop it from influencing the model but it will not take it out of the model if it is set to be included (see “Include in Model,” below). Type

Sets the type of force. Strength

This value controls how much the force influences the model. This number is multiplied by the value of the force properties on each generator before being applied to the model. Color

Sets the color of the force indicator in the Tree Window. Indicator Scale

Sets the size of the icon used to represent the force in the Tree Window. This property has no effect on the size of actual mesh forces. Mesh

These properties control the behavior of mesh forces. Set the “Type” property above to “Mesh” to make a force act as a force mesh. Include in Model

Enable this property to have the mesh exported as part of the model. With this property disabled, the mesh will be used to interact with the model but it will not be included in exports. Mesh

Specifies a named mesh asset. Force action

Specifies how the mesh surface should influence branch spines from the following options:

Avoid Spines are repelled by the closest spot on the surface of the mesh.

Attract Spines are pulled towards the closest spot on the surface of the mesh.

None No action is applied to the spines. Table 98: Mesh surface options for influence on branch spines

Page 252 of 277 Collide Action

Specifies what happens when a branch spine collides with the mesh surface. You may choose from the following options:

None No action is taken (spines will go through the mesh).

Obstruct Spines are blocked by the surface of the mesh and “crawl” over it, attempting to grow in their original direction.

Prune Spines are broken when they collide with the mesh.

Spines are considered fully grown where they hit the mesh. They will be shorter than intended but all of the Stop profile curves will cover the full length of the spine. Table 99: Branch spine collision with mesh surface options

Keep Action

Specifies what happens to spines that are using this mesh from the following options:

All All nodes will be kept regardless whether they collide with the mesh or not.

Only nodes that collide with this mesh will be kept (if this force is enabled on the generator). All others will be Hits destroyed.

Only nodes that do not collide with this mesh force will be kept (if this force is enabled on the generator). All others Misses will be destroyed. Table 100: Spine/mesh interaction options Obstruction Distance

Sets the distance from the base of each spine node where obstruction by the mesh force is prohibited. It is sometimes desirable to refrain from obstructing the very base of branches so that they are able to begin their growth without being immediately redirected by mesh forces. Max Iterations

When a mesh collision is detected, this property determines how many attempts are made to continue on without going through the mesh. More iterations means a better chance of finding a route at the expense of slower computation times. Max Angle

Specifies the maximum amount a spine can bend to try to get around the mesh. Give up Action

Once all of the iterations have failed for a spine that has collided with the mesh, this property specifies what action to take from the following options:

None No action is taken, the spine goes through the mesh.

Prune Spines that cannot escape will be pruned at the collision point.

Destroy The spine will be removed. Table 101: “Give up action” options

Page 253 of 277 Ambient Occluder

When the mesh is not being included in the model, check this property to allow the mesh to contribute to ambient occlusion computations. Level of Detail

Specifies which mesh LOD, if available, is used for the current LOD state.

Note: LOD meshes must be assigned to the mesh assets for this property to work. Material

The properties in this group control the appearance of the force mesh. Material Specifies a named material from the Mesh Asset Bar. Color Specifies what color is used to render the mesh when no material has been assigned. Lightmap

Controls this mesh's influence on the lightmap in versions where lightmap UVs are computed. Scale Use this value to take up more or less space in the lightmap. Attenuation

Causes the force's influence to taper off as the spine gets farther away from the location of the force. Type Specifies the type of attenuation from the following options:

None The force has an equal effect on the entire model regardless of its location in the scene.

Linear The force falls off linearly over the distance specified below.

Quadratic The force falls off according to the square of the distance from the source.

Hard The force effect goes to zero outside the distance specified below. Table 102: Attenuation options

Distance This value sets distance around the force where attenuation is applied.

Falloff Distance Sets the distance from the edge of the attenuation towards the force location at which attenuation begins.

Page 254 of 277 Indicator Selects when the attenuation indicator is displayed from the following options:

Selected Only display the indicator when the force is selected.

Always Always show the indicator.

Never Never display the attenuation indicator. Table 103: Attenuation indicator display options

Container Forces

The properties in this group allow you to specify mesh forces to be used to designate the area of effect for this force. Use these properties to designate regions where forces work based on mesh assets. Include Type the name of a mesh force in this property. That mesh will be used to indicate the only region where this force is applied. Exclude Type the name of a mesh force in this property. That mesh will be used to indicate the region where this force will not be applied. Animation

Forces can be animated over time and exported as part of a sequence for VFX applications. Use the properties in this group to control the animation.

Note: Only the force's strength can be animated – its position cannot be animated.

Start Frame Specifies the frame at which the animation starts. Duration Sets how many frames the animation lasts. Profile Controls the animation, as follows: The left hand side of the curve corresponds to the percentage of the force applied at the start frame. The right hand side corresponds to the percentage of the force applied at the end of the animation duration. Growth

When using animated growth, controls the strength of the force over the life cycle of the growth animation. Lifetime % Controls the strength of the force over the duration of the growth animation. The left hand side of the curve corresponds to the percentage of the force applied at the start of the growth animation. The right hand side corresponds to the percentage of the force applied at the end of the growth animation. Transform

The properties in this group control the position and orientation of the force. They are set automatically when you use the transform gizmo to move and orient the force.

Page 255 of 277 Translation

X, Y, Z

Sets the position of the force object. Reset translation

Positions the force at the origin. Rotation

Axis X, Axis Y, Axis Z

Specifies the vector around which the force is rotated. Angle

Specifies how much the force is rotated around the axis. Reset rotation

Resets the rotation back to the default settings. Scale

X, Y, Z

Sets the scale of the force object on each axis. Uniform

When checked, the X, Y, and Z scales are set to the same value as to not distort the shape. Reset Scaling

Sets the scale values back to 1.0.

FAN

The fan object houses all of the wind properties for each of the wind algorithms supported. You will see only the properties applicable to your version of the Modeler and the "Algorithm" you have chosen. Please select one the links below for more information on the properties for a particular wind algorithm. . VFX - This is the algorithm used by SpeedTree Cinema. . Lumberyard - This is the algorithm used by SpeedTree for Lumberyard.

Fan - VFX

This section details the properties of the Fan object for SpeedTree Cinema. The direction and strength of the wind are indicated in the upper right corner of the Tree Window. Main

The properties in this group control wind quality and the enabled state. Wind wizard... Press the button to launch the Wind Wizard. This tool will set up the tree based on your answers to a few questions about its components.

Page 256 of 277 Enabled Use this property to toggle wind on and off in the Tree Window. Quality Controls the quality of the oscillation computations. Use “Draft” for faster previews while tuning and “Production” for most exports. Settings The properties in this group control high level wind settings. Strength This property sets the strength of the wind. 0.0 corresponds to no wind, 1.0 corresponds to the highest wind.

Note: The actual wind behavior is governed by how the properties below interpret the strength value. It is possible to have some wind at 0.0 and no wind at all at 1.0, depending on how the properties are tuned. Response Times

These properties control how quickly the model responds to changes in wind strength and direction. Large, heavy models should have large response times. Small, light models should have short ones. The idea that if a flower and an oak tree are placed under the influence of the same wind source, the flower should react more quickly to changes in that source than the oak tree does. Strength Sets the response time for strength changes. It is how long in seconds it would take the model to go from 0.0 behavior to 1.0 behavior. Direction Sets the response time for direction changes. It is how long in seconds it would take the model to react to a 180 degree change in wind direction. VFX Branch Motion

The properties in this group control branch motion. In general, branch motion consists of bending in the direction of the wind and oscillating an amount governed by the turbulence properties (as pictured below). The speed of the oscillation is controlled by the frequency properties.

Figure 140: Branch motion – direction and speed

Page 257 of 277

Note: As with all wind curves, the left hand side of VFX Branch Motion curves correspond to minimum wind conditions and the right hand side corresponds to maximum wind conditions. Current wind strength is indicated by the black line.

Scalars

These values scale the corresponding affect by the value entered for each of the five branch wind groups. Shared

The properties in this group affect the entire model, essentially making it sway in the wind. This is typically the slowest moving group and uses small values for bend and turbulence. Large tree models typically rely on this group for trunk bending so as not to waste a wind level on the trunk. Bend This property controls how much the whole model will bend in the direction of the wind across all wind conditions. Turbulence This property controls how much (the amount, not the speed) the whole model will oscillate around its bent over position as specified by “Bend”. Frequency This property controls how fast the whole model will oscillate. Twist This property controls how much the model twists around the global up vector. Start This property designates the percentage up the tree where the “Shared” wind effect begins. Use this to prevent trunk motion near the bottom of large, stout models like oak trees by raising this value. Small plants and thin trunks should use lower values, even 0.0.

Levels 1, 2, 3, and 4

The properties in this group apply to geometry with the associated wind level as indicated by the number overlaid on the generators when wind is enabled. Use the wind weight profile curves on each branch generator to control how much each branch bends along its length. Bend This property controls how much the longest branch at this level will bend in the direction of the wind across all wind conditions. Turbulence This property controls how much (the amount, not the speed) the longest branch at this level will oscillate around its bent over position as specified by “Bend”. Frequency This property controls how fast the branches at this level oscillate. Flexibility This property control how much ripple will be seen during branch movement. Use high values for this for flexible, soft stemmed plants and zero this value out for woody branches.

Page 258 of 277 Independence This value controls how synchronized branch motion appears. High values indicate that each branch moves independently and does not appear to be in unison with neighboring branches. A value of 0.0 means all branches at this level move together. Carefully chosen numbers here will reveal waves of wind rolling through the model while maintaining some chaotic motions. This values is typically greater than 1.0 and less than 10.0. Disable Check this box to disable all wind at this level. Use this convenience to aid in tuning instead of disabling wind on multiple generators or setting their weights to 0.0. VFX Leaf Motion

The properties in this group control leaf motion. Leaves bend in the direction of the wind and then oscillate around that position (similar to branches). They also have an additional oscillation unrelated to the wind direction called “Flutter”. Leaves are assigned a group by one of their wind properties (Batched leaves and leaf meshes). Use this group setting to differentiate between leaves and other sorts of geometry like fruit during wind animation.

Note: As with all wind curves, the left hand side of VFX Leaf Motion curves correspond to minimum wind conditions and the right hand side corresponds to maximum wind conditions. Current wind strength is indicated by the black line. Scalars

These values scale the corresponding affect by the value entered for each of the two leaf wind groups. Groups 1 & 2

These are the properties than control wind behavior for each group. Because leaf animation is based on rotations, it is recommended that leaf wind weight profile curves be at or near max curves. Any change in weight from the base to the tip of a leaf will be magnified in high wind conditions. Bend This property controls how much the leaves will bend into the wind. Turbulence

These properties control how much the leaves will oscillate around the position determined by the “Bend” property in this group. Use turbulence to simulate the lower frequency, direction dependent leaf motion. Frequency Controls how fast the leaves will oscillate. Amount Sets the maximum amount of rotation for each oscillation. Independence This value controls how synchronized leaf motion appears. High values indicate that each leaf moves independently and does not appear to be in unison with neighboring leaves. A value of 0.0 means all leaves move together. Carefully chosen numbers here will reveal waves of wind rolling through the leaves while maintaining some chaotic motions. This values is typically greater than 1.0 and less than 10.0. Flutter

The properties in the group control random rotations that are not based on wind direction. Use “Flutter” to add more chaos and high frequency motion into the leaf animation. Frequency Controls how fast the leaves will oscillate.

Page 259 of 277 Amount Sets the maximum amount of rotation for each oscillation. VFX Frond Motion

The properties in this group control frond wind animation. There is currently a single frond group. Group 1

Fronds are constructed along “ribs” growing perpendicular to the parent branch. These properties control the motion of those ribs.

Note: This does not include the spine of the frond – it only applies to the fronds themselves. The spine must be animated by a branch level, even if the rendering of it is disabled.

Bend This property controls how much the fronds will bend into the wind. Turbulence

These properties control how much the fronds will oscillate around the position determined by the “Bend” property in this group. Frequency Controls how fast the fronds will oscillate. Amount

Sets the maximum amount of rotation for each oscillation. Independence This value controls how synchronized frond motion appears. High values indicate that each frond moves independently and does not appear to be in unison with neighboring fronds. A value of 0.0 means all fronds move together. Carefully chosen numbers here will reveal waves of wind rolling through the fronds while maintaining some chaotic motions. This values is typically greater than 1.0 and less than 10.0. Ripple This value controls how much ripple is allowed on individual frond. Increase this value to make the frond ripple more like a flag and decrease it to make it look more like a waving metal sheet. Gusting

The properties in this group control the timing and strength of random wind gusts. Enabled Toggles gusting on and off. Frequency Controls how often gusts can occur. Strength Controls how much additional wind strength is added to the nominal wind strength during a gust. Add variance to make each gust random. Duration When a gust happens, this value controls how long it will remain active (in seconds). Use the variance to make each gust length random.

Page 260 of 277 Response Scalars

Rise This value scales how long it takes for a gust to reach its maximum value. Lower this value to increase the speed at which gusts impact the model. Fall This value scales how long it takes for a gust to return to the nominal wind level. Lower this value to increase the speed at which the model returns to nominal wind conditions after a gust. Fan - Lumberyard

This section details the properties of the Fan object when the Modeler is using the Lumberyard wind algorithm. The direction and strength of the wind are indicated in the upper right corner of the Tree Window. Settings

The properties in this group control high level wind settings. Enabled Use this property to toggle wind on and off in the Tree Window. Strength This property sets the strength of the wind.

Note: Most algorithms clamp wind strength to the range [0.0, 1.0]; however, Lumberyard wind strength is unbounded and the strength here corresponds to the magnitude of the wind direction vector in the Lumberyard editor. Lumberyard

The Lumberyard version of the Modeler mimics the Lumberyard wind algorithm. Set the wind strength to the magnitude of the wind vector in your Lumberyard scene and use the properties in this group to tune the behavior. Bending This value corresponds to the main bending value of the vegetation asset in Lumberyard.

Note: The "Bending" value is not exported from SpeedTree (there is no place to store it in the ".cgf" format). You will have to enter this value manually after you import the SpeedTree ".cgf" file. All other wind values are stored in the exported file.

Branch Amplitude Specifies how much the branches can move as a function of wind strength and the blue vertex color. The green vertex color offsets this motion in time. All materials will have this value set on import. Edges Amplitude Specifies how much leaves and fronds can move as a function of wind strength and the red vertex color. All materials will have this value set on import. Detail Frequency Specifies how fast edges can move as a function of wind strength and the red vertex color. All materials will have this value set on import.

Page 261 of 277 LIGHT

The properties on the Light Object control how the scene is lit. Environment

Preset Quickly set the other “Environment” properties to one of a variety of lighting situations: bright sun, overcast, moonlight, etc. Directional

The properties in this group control the directional light hitting the tree (which can be considered the sun). Color The color of the directional light. Intensity How much directional light exists in the scene. Ambient

The properties in this group control both the ambient light hitting the tree and the colors shown in the background of the Tree Window. Sky The color used at the apex of the sky. Horizon The color used in the horizon of the sky. Ground The color of the ground plane. Intensity How much ambient light exists in the scene. Ambient Occlusion (AO)

These properties allow you to tweak the result when you render Ambient Occlusion on the tree. The new AO value follows the formula: AOnew = ((AO + Brightness - 0.5) x Contrast + 0.5) x (Max - Min) + Min Brightness: Makes the AO brighter/darker. Contrast: Increases the difference between light and dark AO values. Min: Sets the darkest value of AO. Max: Sets the brightest value of AO. Render: Renders new ambient occlusion. Clear: Clears ambient occlusion to white. Shadows

Quality Sets the quality of shadows used. Higher quality equals sharper shadows, but also slower rendering in the Tree Window.

Page 262 of 277 Bias Shadow maps can be plagued with problems on the edges of objects. This property allows you to push, or “bias,” the shadow away from the light to avoid this problem. You most likely won't need to change this from the default. Ground Weight Brighten/darken the shadow cast onto the ground, if needed. You most likely won't need to change this from the default.

COLLISION OBJECT

Collision objects don't have an impact within the SpeedTree Modeler, but they can be queried through the SpeedTree SDK for use in real-time. Collision objects are used for detecting collisions with players, projectiles, vehicles, etc. They can be used alone, or perhaps as a fast method for identifying collisions before something more exact is used, like per-polygon tests. Collision Object

Type Sets the shape of this Collision Object to Sphere or Capsule. Radius Sets the radius of the sphere or the radius of the ends of the capsule. Figure 141: Collision object Height When the Collision Object is a capsule, this property sets the height. User data If the Collision Object needs additional specific data, enter it as a string here. You can include information for what sound to play, what kind of particles to emit, etc. Transform

Moving and rotating the Collision Object is usually easier by using the transform gizmo in the Tree Window, but you can set the values explicitly too. Translation

X/Y/Z: Sets the location of the Collision Object. Reset Translation: Resets the location to the origin (0,0,0). Rotation

Axis X/Y/Z: Determines the axis about which to rotate. Angle: Sets the angle to rotate around the axis. Reset rotation: Resets the rotation to default (1,0,0,0).

Page 263 of 277 SPEEDTREE MODELER HOTKEYS

Note: Due to SpeedTree being available in differing versions, some of these hotkeys may not apply to your version of the Modeler.

Hiding Nodes

Key Combo Function

H Hides currently selected nodes/generators

C Hides child nodes/generators by steps, beginning with furthest descendant

X Reveals hidden child nodes/generators by steps, beginning with direct children

Generator Selection

Key Combo Function

Tab Toggle between Generation and Node Editing modes

Up Arrow Select child generator

Down Arrow Select parent generator

Right Arrow Select right generator off same parent

Left Arrow Select left generator off same parent

Focus Controls

Key Combo Function

F Focus on selected node, all descendants and ancestors present

Shift + F Focus on selected node and all siblings, ancestors visible and descendants invisible

Ctrl + F Clear focus settings

Resolution Controls

Key Combo Function

D Decrease resolution

Ctrl + D Increase resolution

Page 264 of 277

Render Mode Selection

Key Combo Function

Ctrl + 1 Standard render mode

Ctrl + 2 Scribed render mode

Ctrl + 3 AO render mode

Ctrl + 4 Albedo Check render mode

Ctrl + 5 Subsurface Check render mode

Ctrl + 6 Lightmap render mode

Visibility Controls

Key Combo Function

1 Toggle visibility of leaves

2 Toggle visibility of fronds

3 Toggle visibility of branches

4 Toggle visibility of zones

5 Toggle visibility of proxies

6 Toggle visibility of forces and meshes

7 Toggle visibility of collision objects

8 Toggle visibility of current wind settings (turn wind on/off)

Subdivision Controls

Key Combo Function

Shift + Plus(+) Increase level of subdivision

Minus(-) Decrease level of subdivision

Page 265 of 277 Camera Controls

Key Combo Function

Shift + B Beauty Render mode - turn off visibility of Tree Window GUI elements

B Temporarily view Beauty Render when held down, or escape Beauty Render mode

\ Capture camera enabled

Shift + > Reset camera to default (saved) view

Z Zoom out so entire tree is in window

Mouse Controls

Key Combo Function

LMB + drag Rotate view in Tree Window

MMB + drag Move view in Tree Window

LMB + MMB + Quick zoom in Tree Window drag

V + drag Rotate and tilt light in Tree Window

Space + drag Begin hand drawn node

Selection Style Controls

Key Combo Function

~ Toggle visibility of selection style

Shift + ~ Cycle through selection styles

Manipulator Gimple Controls (for Forces and Meshes)

Key Combo Function

W Toggle position gimble

E Toggle rotation gimble

R Toggle scale gimble

Q Turn off gimble

Page 266 of 277

Other Controls

Key Combo Function

A Toggle visibility of Art Director

N Display vertex normals

O Render ambient occlusion

F2 Open rename dialog for selected node or generator

F11 Toggle model computation on/off

Page 267 of 277

WHAT'S NEW?

v8.0.3 New Features

Billboard Rendering Improvements

The speed and quality of the billboard rendering during real-time model exports has been improved. Atlas Packing Improvements

The map and billboard atlas packing algorithm has been improved to create atlases that utilize the available texture space more efficiently. Better Opacity Handling in Lumberyard Models

TIF export settings for alpha mipmapping has been modified so that sparse leaves/needles don't disappear in the distance. Improved Branch Intersection Noise Pattern

The vertex noise pattern used to blend branch intersections has been modified to reduce harsh edge artifacts near the transition edge. Bug Fixes

Cascade Value From Old Models Fixed

Models created in version 7 (earlier) that used the “Cascade” value on parent curves now import with much greater fidelity in version 8. Frond Normal Spread

The algorithm for smoothing geometry normals on fronds has been fixed (normals were spreading more on the interior than the exterior in previous releases). Force Mesh Extents Included in AO Rendering

Previous versions were ignoring the extents of Force Meshes when rendering AO data. "Clear Node Edits" Property Button Crash

Repeatedly pressing this button on the Property Bar while in “Node Editing” mode could result in a crash. LOD Geometry Rendering to the Origin Fixed

A bug that could cause some geometry vertices to be set to the origin during collision/LOD computations has been fixed. Fronds Can Now Handle the "Simple Leaves" Mesh

This mesh (a simple quad) is used to replace assigned meshes in low resolution computations (e.g., Draft Mode). Frond geometry could generate a crash when the meshes dropped to this resolution in previous releases. Cap Generators No Longer Indicate Wind Level in the Generation Editor

Caps always inherit the wind of their parent and those values cannot be edited for the cap. Therefore, the wind level indicator on the cap has been removed.

Page 268 of 277 v8.0.2 New Features

Timeline Wind Improvements

Exporting wind using the strength curve on the Timeline Bar now works with “.fbx” file exports. Alembic exports of models with growth disabled are faster. Velocity Data in Alembic Exports

An option has been added to select whether or not velocity data is included in Alembic exports. Edit Map Filenames

Map filenames can now be edited on the Edit Map dialog. Capture Camera Works in Sequence Renders

The automatic camera motion controlled in the “Capture Camera” section of the windows can now be applied to sequence renders. This feature is commonly used for turntable renderings. Bug Fixes

Caps on Shells Crash Fixed

Caps added to shells could cause a crash in the event the shell wasn't created. v8.0.1 New Features

Shape Control Distribution Style

This property selects which nodes factor into shape control length distribution. v8.0.0

Version 8 is a significant leap forward from version 7. Old models will still load, but new generators, materials, and tools are available to improve model quality and modeling workflow. Please have a look at this section for an overview about what has changed from version 7 to version 8.

ABOUT

Portions of this software utilize Qt ( http://qt.nokia.com) under the terms of the GNU Lesser General Public License, version 2.1 (http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html). Qt is © 2008-2012 Nokia Corporation and/or its subsidiaries. XML parsing utilizes pugixml 1.2 (http://pugixml.org) which is covered by the MIT license (http://www.opensource.org/licenses/mit-license.html). pugixmal is Copyright © 2006-2012 Arseny Kapoulkine. Some OpenGL components of this software utilize GLEW (http://sourceforge.net/projects/glew) as covered by the BSD license (http://www.opensource.org/licenses/bsd-license.php). GLEW is © sourceforge.net. Portions of this software utilize zlib (http://www.zlib.net) as covered under the zlib license (http://www.zlib.net/zlib_license.html). zlib is © 1995-2005 Jean-loup Gailly and Mark Adler. This software contains Autodesk® FBX® code developed by Autodesk, Inc. Copyright 2014 Autodesk, Inc. All rights, reserved. Such code is provided “as is” and Autodesk, Inc. disclaims any and all warranties, whether express or implied, including without limitation the implied warranties of merchantability, fitness for a particular purpose or non-infringement of third party rights. In no event shall Autodesk, Inc. be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or

Page 269 of 277 profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of such code. Portions of this software utilize Alembic (http://www.alembic.io), TM & © 2009-2015 Entertainment Company Ltd. or Lucasfilm Ltd. All rights reserved. Industrial Light & Magic, ILM and the Bulb and Gear design logo are all registered trademarks or service marks of Lucasfilm Ltd. © 2009-2015 Sony Pictures Imageworks Inc. All rights reserved. Portions of this software utilize EXR (http://www.openexr.com), Copyright © 2002-2011, Industrial Light & Magic, a division of Lucasfilm Entertainment Company Ltd. All rights reserved. Portions of this software utilize HDF5 (https://support.hdfgroup.org/HDF5). HDF5 (Hierarchical Data Format 5) Software Library and Utilities. Copyright © 2006, The HDF Group. NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities Copyright © 1998-2006, The Board of Trustees of the University of Illinois. All rights reserved. Portions of this software utilize GLM (http://glm.g-truc.net/0.9.8/index.html) under the Happy Bunny and MIT License. GLM is Copyright © 2005 - 2014 G-Truc Creation. Portions of this software utilize FreeImage (http://freeimage.sourceforge.net) licensed under the FreeImage Public License (FIPL). Portions of this software utilize the Texture Tools (nvtt) library (https://github.com/castano/nvidia-texture-tools), licensed under the MIT license. Portions of this software utilize OpenSubDiv (http://graphics.pixar.com/opensubdiv/) as covered under a modified Apache 2.0 license (http://www.apache.org/licenses/)

Page 270 of 277 G LOSSARY

GENERAL TERMS

Billboarding Billboarding is the concept of something always facing the camera or screen. Leaf cards and simple tree billboards in SpeedTree are examples of objects that billboard. Compiler The application used to convert Modeler files (SPM) to run-time files for the SDK (SRT). Frond In addition to referring to large leaves (such as a palm frond), a frond can be a fake branch achieved using textures. Leaf Card Leaf cards are leaves that always billboard (face) the camera. This allows a SpeedTree to look very lush and full while having few leaf polygons. Historically, these were the only kinds of leaves used on SpeedTrees, but now there are leaf meshes as well. Leaf Mesh A leaf mesh is a small piece of geometry that is used in place of a leaf card. This is useful for fruit, vines, long stringy leaves, and anything else that cannot be modeled accurately with leaf cards. Level of Detail Level of detail refers to drawing lower quality objects the smaller they are or further they are away from the camera. SpeedTrees can drop down multiple levels of detail, all the way down to a single billboard. LOD See “Level of Detail”. Modeler The application where SpeedTrees are created. SDK The SpeedTree® , which houses the libraries and source code for loading trees, animating them for wind, performing LOD, batching for fast rendering, and actual render calls for specific platforms. Tree Library The sum total of all the trees, textures, meshes, etc. IDV can provide for use with the SpeedTree® applications/tools.

MODELING TERMS

Alpha Scalar Sometimes the alpha channel of an image is not entirely suitable for use on a SpeedTree, especially when alpha to coverage is used. An alpha scalar allows the alpha channel to be modified in the shader. Ambient Occlusion or AO Ambient occlusion refers to precomputed ambient lighting information. Inner parts of the tree are “occluded” by other parts of the tree, which leaves the inner parts darkened. Ambient occlusion can greatly increase the realism of a tree. Asset An asset is an object that is used in the construction of a SpeedTree, such as a material, a mesh, a mask, etc.

Page 271 of 277 Collection A collection is a mesh asset that is created from other parts of the tree during tree computation. This asset can then be used as any other mesh, as part of the tree or on a mesh force. Collision Object Per-triangle collision can be expensive, so SpeedTrees support the inclusion of collision volumes (spheres and capsules). These can be queried through the SDK for rough collision instead of, or previous to, per-triangle collision detection. Color Set A color set houses all of the render state information for a material, which in contrast houses all the texture information. Color sets are separate assets from materials so the artist, if he so chooses, can manage draw calls in the SpeedTree® SDK. Two materials that use the same color set can be batched in the Compiler and SDK for faster drawing. Curve Many properties are guided by curves that further influence the random values used to compute a tree based on position on the parent (parent curves), down the length of a node (profile curves), through LOD levels (lod curves), etc. Degradation A very complex tree can take a long time to compute and/or draw. Degradation allows an artist to work on a simpler version of the SpeedTree for the sake of speed and then switch easily to the full quality. Displacement Displacement is a per-vertex translation based on noise or an image loaded into a displacement asset. It can be used to create a bumpy branch, for instance. Force A force is an object that can deform, restrict, or otherwise influence the creation of part or all of a SpeedTree. Generator A generator is an object that creates nodes in a SpeedTree. Generators can be seen in the Generation bar in the SpeedTree® Modeler. Mask A mask is a restriction to the area where something can be created. It can restrict based on position, texcoords, or an image. Mesh Force A mesh force is a force that utilizes a mesh asset in some manner, such as a rock mesh colliding with a tree's roots. Node A node is an actual object created in the tree, such as a single branch or a single leaf. Node Edit A node edit is a modification of some value on a single node that does not affect other nodes created from the same generator. Normal Map A normal map is a texture containing tangent-space normal information. Using normal maps and an appropriate shader, lighting can be performed per-pixel rather than just per-vertex, resulting in much higher quality lighting without an increase of geometry. Property Every object (generator, node, force, etc.) has a number of properties that can be adjusted on it. Properties can be numbers, choiceboxes, curves, etc., or some combination of these. Randomize

Page 272 of 277 A SpeedTree is built around guided random values. Thus, a part or all of a tree can be “randomized” to create a new version of the same tree. Static Mesh In contrast to a SpeedTree, a static mesh does not have wind effects, smooth LOD, or camera-facing leaves. When exporting a SpeedTree to another modeling package, it becomes a static mesh. Transmission Transmission is the light that shines through leaves on a tree, illuminating the dark side. The SpeedTree shaders can simulate light transmission. World Building World building is the construction of a scene, environment, or area. The SpeedTree® Modeler can facilitate world building through the use of zones, masks, and proxies. The worlds built can then be exported to other applications or used in the SpeedTree® SDK. Zone A zone is a mesh placed in a SpeedTree from which other things can be created, such as a wall with ivy growing over it. Zones are also used as a terrain mesh for world building.

COMPILER/SDK T ERMS

Allocator Memory allocating inside the SDK can be routed through a custom allocator so the user of the SDK can keep track of memory usage. Alpha Fizzle Alpha fizzle is the term applied to the “fizzling” from one LOD to another based upon changing alpha testing values in unison with returning alpha noise from the pixel shader. Alpha Testing Alpha testing, also called alpha masking, is a way to mask out certain pixels from rendering based on alpha values of the object's pixels and the alpha test reference value. By putting uniform noise in the alpha channels of the diffuse texture, manipulation of the alpha test reference value can produce a fizzling effect from one LOD to the next. Alpha To Coverage Alpha to coverage, or A2C, is a technique use the alpha as a coverage mask in the multisample buffer. When multisampling is used, it allows for smoother edges on alpha tested geometry. Atlas An atlas (previously known as a composite map) is a texture that combines all of the textures needed for a SpeedTree that do not need to be wrapped. Multiple textures from different materials are merged into one large texture that is used to minimize texture context switches during rendering. Branch textures cannot be included in the composite map because they wrap around the tree in multiple directions. Base Tree A base tree is an actual tree (SRT) loaded into the SDK. Instances then reference the original base tree. Batching Batching geometry together into fewer draw calls can dramatically improve rendering times. This is especially useful for SpeedTrees when scenes have many billboards. Hundreds or even thousands of billboards can be batched together for large, sweeping vistas of trees running at real-time. Billboard

Page 273 of 277 The lowest LOD of a SpeedTree is a billboard, just a picture of the tree. There can either just be one, or many billboards rendered from multiple directions around the tree. Billboard Map The billboard map is similar to the composite map, but only contains billboards. Separate billboard maps are an option in case the composite map gets too large or if other optimizations work better with separate billboard maps. Cell The forest library splits the environment into evenly sized cells, or regions, to allow for fast culling. Culling Culling is the act of throwing out objects during rendering which aren't visible. Culling to the view frustum is the most often used form of culling. Effect LOD Effects per LOD can be configured in the SpeedTree® Compiler using the Effect LOD dialog. In the same way that SpeedTree allows for smooth geometrical LOD, effect lod is also smooth since the effects will fade off rather than pop/ Endian Endianness refers to the byte ordering within a single 16-, or 32-bit value. Most machines use little endian, while some (PS3, 360, etc.) are big endian. Converting between these is sometimes necessary when loading binary data. Fizzling Fizzling is to drop out or bring in pixels randomly while switching LODs on a SpeedTree. It is caused by using alpha testing in concert with uniform noise returned from the pixel shader. Grass Grass in the SDK is a specialization of the same culling/batching/rendering system as used on trees that achieves better performance for small objects near the camera by doing away with things such as LOD and billboards. Instancing Instancing is the concept of having one unique object that gets drawn in many places. SpeedTrees use instancing to avoid calculating wind effects and billboarding for every tree in a scene. Alternatively, instancing also refers to the rendering concept of “mesh instancing” where one mesh can be drawn multiple times with different properties in a single draw call. Integration The process of merging some or all of the reference application code into your own application or game. Reference Application The reference applications show how to get SpeedTree working in an application. The reference applications are highly optimized for performance with lots of trees in a scene rendered in high quality. Render State A render state describes the setup of a particular rendering call, comprising textures bound, shaders used, rendering states set, etc. Shader A program that runs on the graphics card. The SpeedTree SDK utilizes vertex and fragment/pixel shaders. Shader Constant A value uploaded to graphics card memory that can be accessed by a shader, used for things that don't change per vertex. Technique

Page 274 of 277 A combination of a vertex and pixel shader that work together to provide certain effects. Wind LOD Wind effects are the most computationally expensive part of the SpeedTree vertex shaders. Having them smoothly LOD out can improve render speed while maintaining quality wind motion close to the camera.

FILE EXTENSIONS - MESH FILE FORMATS

FBX, OBJ, DAE, 3DS: Other file formats that can be imported/exported in various places in the SpeedTree tools. SPM: SpeedTree Procedural Model, the files used by the SpeedTree® Modeler. SRT: SpeedTree RunTime, the files written by the Compiler for use with the runtime SDK. STM: SpeedTree Mesh, a mesh format used for mesh assets in the SpeedTree® Modeler that requires exporters for modeling packages. Is being superseded by better OBJ and FBX support. XML: All mesh exporting, including SRT creation, saves out an intermediate raw file format in XML. Image file formats DDS: Direct Draw Surface, an image wrapper format that supports alpha channels and compressed textures in native graphics card formats. GTF: Native image format on the PS3. It is basically a wrapper around DDS data. GXT: Native image format on the PSP2 Vita. It is basically a wrapper around DDS data. TGA: Targa image files, which support alpha channels and are very easy to write/parse. These are normally used for uncompressed images. TIFF, PNG: Other suitable image file formats (that is, they support alpha channels) that can be imported/exported in various places in the SpeedTree tools.

OTHER FILE FORMATS

SCS: SpeedTree Compiler Settings, the settings file saved/loaded by the SpeedTree® Compiler. SFC: SpeedTree Forest Configuration, a file containing all the settings for a scene to be loaded into the SDK's Reference Application. It is not necessary to use this file in your own applications, but it does give a way to edit and run forests with different settings quickly and easily. SME: SpeedTree Mesh Exporter, the file describing a mesh exporter for use with the SpeedTree® applications. STF: Older (

Page 275 of 277 I NDEX

A H Allocator, 280 hand drawn, 6, 18, 21, 61, 62, 63, 64, 65, 100, 101, 161, 162, Alpha Fizzle, 280 242, 273 Alpha Scalar, 278 Alpha Testing, 280 Alpha To Coverage, 280 I Ambient Occlusion, 2, 13, 14, 15, 16, 18, 55, 56, 92, 238, 247, Instancing, 281 252, 269, 278 Integration, 281 AO, 2, 3, 16, 17, 18, 55, 56, 93, 126, 269, 272, 275, 278 Asset, 4, 5, 9, 10, 18, 19, 21, 45, 50, 59, 111, 112, 114, 115, 116, 118, 121, 122, 137, 141, 173, 189, 198, 199, 205, 223, 260, L 278 Leaf Card, 278 Atlas, 3, 17, 84, 275, 280 Leaf Mesh, 8, 34, 36, 59, 66, 76, 91, 132, 134, 179, 225, 248, 278 B Level of Detail, 2, 13, 15, 45, 57, 83, 238, 252, 260, 278 lighting, 51, 52, 55, 56, 92, 137, 180, 183, 191, 194, 201, 213, Base Tree, 280 231, 251, 269, 278, 279 Batching, 280, 281 LOD, 1, 2, 3, 6, 8, 9, 10, 11, 17, 18, 19, 23, 26, 43, 45, 57, 58, 59, Billboard, 16, 275, 281 83, 95, 118, 121, 136, 158, 159, 174, 175, 180, 188, 190, 192, Billboarding, 278 200, 203, 204, 209, 210, 211, 215, 218, 219, 223, 260, 275, 278, 279, 280, 281, 282 C Cell, 281 M Collection, 4, 5, 20, 50, 118, 141, 279 Mask, 4, 18, 21, 46, 52, 122, 279 Collision Object, 16, 270, 279 mesh exporter, 282 Color Set, 279 mesh force, 49, 50, 72, 118, 142, 258, 259, 261, 279 Compiler, 17, 278, 279, 280, 281, 282 Modeler, 1, 16, 23, 24, 27, 28, 29, 30, 31, 35, 38, 39, 42, 43, 45, Culling, 281 51, 55, 58, 65, 77, 80, 81, 82, 86, 87, 88, 89, 102, 103, 111, Curve, 2, 3, 4, 5, 6, 12, 14, 18, 19, 20, 38, 39, 42, 43, 60, 64, 72, 112, 115, 118, 128, 133, 159, 160, 178, 190, 199, 205, 210, 102, 103, 104, 105, 107, 108, 109, 129, 130, 162, 226, 242, 215, 219, 221, 224, 262, 267, 270, 271, 278, 279, 280, 282 279

D N Node, 1, 5, 17, 18, 20, 27, 34, 35, 38, 39, 63, 100, 129, 131, 148, Degradation, 279 149, 271, 275, 279 Displacement, 4, 7, 8, 11, 13, 14, 19, 21, 22, 121, 173, 177, 218, node edit, 25, 34, 99, 279 235, 236, 238, 245, 246, 279 Normal Map, 18, 52, 279

E P Effect LOD, 281 Property, 3, 17, 19, 34, 35, 38, 39, 56, 68, 92, 97, 100, 102, 129, Endian, 281 254, 275, 279

F R Fizzling, 281 Randomize, 3, 6, 8, 9, 10, 11, 12, 13, 14, 15, 101, 111, 162, 179, Force, 2, 5, 15, 17, 18, 21, 46, 48, 49, 50, 139, 142, 146, 233, 191, 199, 206, 211, 217, 222, 226, 240, 248, 253, 280 256, 258, 275, 279 Reference Application, 281, 282 Frond, 2, 10, 12, 13, 14, 16, 17, 21, 22, 25, 36, 66, 76, 77, 99, render, 45, 50, 51, 55, 56, 67, 78, 90, 91, 92, 114, 125, 128, 160, 132, 164, 199, 200, 202, 225, 227, 228, 229, 230, 231, 247, 254, 255, 256, 257, 260, 269, 272, 278, 279, 281, 282 266, 275, 278 Render State, 281

G S Generator, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 21, SDK, 1, 17, 23, 113, 270, 278, 279, 280, 281, 282 22, 34, 35, 36, 37, 38, 39, 46, 48, 57, 58, 65, 97, 99, 100, 129, shader, 83, 256, 257, 278, 279, 280, 281, 282 134, 138, 139, 156, 158, 160, 161, 164, 179, 190, 199, 205, Shader, 15, 256, 281, 282 210, 215, 217, 219, 222, 225, 240, 248, 253, 271, 279 Static Mesh, 280 Grass, 281

Page 276 of 277 T W Technique, 282 Wind effects, 282 Transmission, 280 World Building, 1, 21, 37, 46, 280 Tree Library, 278 Z V Zone, 12, 37, 46, 99, 222, 280 vertex shaders, 282

Page 277 of 277