ivy's are designed to grow in scenes with real-world scale !!
 ivy's don't look that nice on a 500m tree...  so, try to use this max-feature...
 growing an ivy is actually as easy as writing a plugin :))
 it's even more easy if you read what's written below...

  1) plant an IvyRoot
  2) hit the "Grow" button
  3) watch it growing in your viewport
  4) stop growing by hitting the "Grow" button again
  5) a Multi/Sub-Object Material is already assigned for mapping your ivy
  6) want a grow-animation ? - set keyframes for the ivy age

 version 0.76b changes:
 - increased ranges for spinners (request)
 - 3ds Max 7/8 version (request)
 - better leaf-orientation algo, i think...

 version 0.8b changes:
 - load/save presets (requested)
 - variable vertex colors by leaf-age (requested)
 - fixed: when changing cs-distance branches were too thin

 version 0.81b changes:
 - increased ranges for spinners again (request)

 version 0.82b changes:
 - fixed: when using backburner ivys were moved to world center
 - fixed: crash when deleting a growing ivy

 version 0.9b changes:
 - fixed: non-visible deselected ivy at age=0 (since 3ds max 2009)
 - fixed: bug in preset-loader (leaf-size was never read)
 - fixed: bug in root-mesh creation (diameter of crossections was wrong for last 3 nodes of a branch)
 - fixed: branches had flipped uv's
 - removed: "visible edges" option (produced too much confusion)
 - new: age can be adjusted beyond iterations of growth, age is shown in bold if above iterations
 - new: pickable leaf geometry (any geom. object, helpers or linked geometry with materials and multiple map-channels)
 - new: transform override for referenced leaves

 version 0.91b changes:
 - fixed: crash when clicking in viewport while ivy is growing

 version 0.92b changes:
 - fixed: when a leafmesh is crated before an ivy which is using it, 3ds max crashed on exit

 version 0.93b changes:
 - new: aspect for branch crossection
 - fixed: bad multithreading bug, now it should realy use all your cores, and should be faster too
 - no more support for 3ds max 7 and 8 !!

 version 0.94b changes:
 - more animatable parameters: BranchSize and Aspect, LeafChaos and Size, TextureHeight, Rotate and Twist
 - ivy material is using MR-materials, if default materials are "ArchDesign" materials
 - new created ivys are now scaled correct with any sytem unit scale
 - new "Misc" rollout:
     - scaling of parameters which have world-units, or reset to default values
     - extract grow splines (single or multiple shapes)
     - create quicksilver-compatible material, 3ds max 2011 only

 version 0.94-1b changes:
 - fixed: crash bug when loading an ivy (with meshes used as leaves) into nitrous viewports -- 3ds max 2012 only

 version 0.96b changes:
 - fixed: multiple undo/redo's after adding a custom leaf-mesh is messing up the ivy-material
 - fixed: opening vertex-color dialog carshes max (sometimes)
 - fixed: nitrous viewports not updating when changing custom leaf tansforms
 - 5-10 times faster growing in nitrous viewports
 - no more support for 3ds max 9, 2008 and 2009 !!

 version 0.975b changes:
 - fixed: lots of crash-bugs
 - new: all leaf-materials of an ivy are now instances (this fixes the creation-lag in previous versions)
 - new: the grow-button is now disabled in create panel, forcing you to switch to modify panel for growing
 - new: ivys grow now on xrefs (3ds Max 2015++)
 - new: turbo grow-mode, which potentionaly fills your memory in seconds...

 version 0.976b changes:
 - fixed: some minor bugs nobody noticed...
 - new: HIDPI support
 - new: the grow-button is now gone in create panel, switch to modify panel for growing
 - new: stop growing by hitting the ESC-key, also when 3ds Max is not the active window

 ok, lets grow one...

 first you need to place an ivy-root into your scene, but where to find this thing ?


go to "Create" panel  -

choose "Geometry"  -

  select "Guruware" from the list  -

check "AutoGrid"  -

select the "gwIvy" object  -

 add the object somewhere in your scene, the ground is a good place for an Ivy-Root,
 but you can put it anywhere you want, only make sure its not below a face (it won't grow through backside of faces)
 you can move an exiting ivy in your scene, rotate and scale won't work (as designed)
 if it should grow up, you need to place it near a wall, or it will mostly creep around on the ground (if there is one)

 if you have a real-world scaled scene, you don't have to change any parameters in the "Grow-Params" Rollout
 this bunch of spinners are only for fine-tuning the grow-process - should be obvious what they do...
 if your scene is not scaled correct (real-world), you will have a hard time figuring out working values


- max. grow-size per iteration

- amount of growing up

- amount of last grow-direction

- random influence

- gravity influence - usually down:)

- adhesion strength (attraction to mesh)

- max. distance to mesh where adhension will influence growth

- branching probability

- max. floating length of a branch before it will die

- variation of max. length

- max. number of parents (0 = just one branch without child-branches)

- some seed for the randomizers

- number of threads to use when growing - up to cpu's/cores of your system

- start/stop grow process

- warp 9

- age of grown ivy (used iterations), the one and only aniamteable parameter

- stop grow at specified age (when enabled), so you can go for a coffee while it grows

- live branches of ivy, only live branches are growing

- nice to see how long it took...

 now hit the "Grow" button and watch magic at work
 while it's growing you can still navigate in your viewport (as long as you don't deselect the growing ivy),
 or setup your materials, or whatever...


 after growing you might want to adjust some mesh parameters to give the look you want


size of an ivy branch (radius) -

random seed -
 (for leaf distribution/orientation)

size of leaves -



- number of branch-sides

- aspect for crossection

- distance of crossections
  (to reduce face-count)

- add some chaos to the leaf-orientation

- density of leaves on a branch

 here you set visibility of ivy-branches and leaves for viewport AND rendering




- Main Branch: the first branch having no parents

- Old Branches: branches with parent- and child-branches

- Young Branches: branches with parent-branches only

- smooth branch-mesh

 when you create an ivy a Multi/Sub-Object Material is already assigned to it
 gwIvy01 has material IvyMaterial01 asigned, gwIvy02 has material IvyMaterial02, etc...

 open the material-editor and pick the material from the ivy using the eye-dropper

 ivy-textures can be found at Thomas Luft's Ivy Generator page
 the used images for such leaves are "pointing down", most textures for leaves are pointing up
 for me leaves are hanging down from plants... and Z is up - but that's another story :)



 you get a material with one slot for the branches and 12 slots for leaves (you don't need to use all of them)
 each leaf-material got a RGB Multiply map, with the diffuse leaf texture and a Vertex Color map
 on creation of an ivy 2 maps are generated for you (_ivy_d.tga and _ivy_o.tga)
 this textures are put into the first foud map directory (usually maxRoot/maps), they will be your standard textures
 for each new created ivy
 this 2 maps are not overwritten when they are already available, so you can exchange them with your own
 default leaf textures

 in the ivy's texture-rollout you set how to apply the branch texture, number of the leaf-materials,
 the amount of each leaf-material to use, and vertex colors for each leaf material




- usage of vertexcolors on/off

- defines the height of the used texture, tiled along a branch

- rotation of branchtexture (in degrees)

- number of texture-twists along a branch

- random seed for leaf-material distribution

- number of leaf-materials to use

- amount of leaf-material #1 and vertex colors

- amount of leaf-material #2 and vertex colors

- amount of leaf-material #3 (last used leaf-material is calculated) and vertex colors

- amounts for old branches and vertex colors

- amounts for young branches and vertex colors

- update leaves after adjustments
  uncheck auto-update below if you have a heavy ivy-mesh and things get slow

- auto-update leaves when adjusting spinners


 you can copy vertex color settings between leaf materials by drag/drop from one vertex-color button to another
 or swap settings by holding down CTRL while doing this drag/drop (without an annoying dialog asking you what to do)


 this dialog appears when clicking on one of the vertex-color buttons next to the ammount spinners


- tells you which leaf-material you are working on

- Color variation (different for each color below)

- Color space where variation takes place (RGB or HSV)

- R or H - variation

- G or S - variation

- B or V - variation

- Color setting by leaf-age, again... leaf-age, NOT ivy age !!!
   this way you can have the leaves change color while the ivy grows older
   the possibilities are...
   ... not endless, but there are some :)

- on: tuns usage of this color setting on/off

- age: the leaf-age when this color is to be used
   the color is interpolated between the prev. color and this one

- color: well... the color

- pL: use this color per leaf
   when off, each vertex of a leaf will get a different color


 some notes on usage:

 to make this work, turn on "Use Vertex Colors" in Texture-Rollout
 open material-editor and disable all maps in viewport (can be found in mat-edits menu)
 now you should see the colors change on the leaf quads


 if you want to see you leaf with opacity in viewports, you have to uncheck the corresponding diffuse-map
 in material-editor - a "global-diffuse-off-switch" in texture-roolout would turn off all diffuse-maps in your scene,
 that's why there is no such switch in the ivy-rollouts

 variations and colorspace for each color can be different (except for Hue)
 try to avoid using Hue-variations when animating
 when turning off the pL-switch for a vertex color, do this for all used colors

 make sure "Redraw Scene On Window Expose" is ON, or you get no viewport-response when changing colors


 here it is, the highly demanded custom leaf geometry... happy now ?


- on/off using this geometry (if not, internal leafquad is used again)

- pick-button to pick your custom leaf geometry

- on/off transform override - double-click opens "transform dialog"


 pick any geometry object or helper in your scene to use as leaves (including linked children), nurbs also if you wish...
 the current ivy-material is updated, including all used map-channels on references
 this references can be animated, eq. you can add growing bananas onto your ivy, or bipeds...
 or add some animated noise to a leaf geometry to simulate wind...

 leaf-size in mesh-rollout will have no effect on leaf-references, also vertexcolors from texture-rollout are not used,
 vertexcolors have to be set on the used reference (if needed)

 you can copy transform settings between references by drag/drop from one transform button to another
 or swap settings by holding down CTRL while doing this drag/drop (without an annoying dialog asking you what to do)

 take care what you do... using a 10.000 poly mesh as a leaf for 50.000 leaves on the ivy is not working so good :)


 this dialog appears when double-clicking on one of the tranform buttons in LeafMeshes rollout




- tells you which leaf-reference you are working on

- tanslation and variations for a reference

- use local leaf-space or word space

- rotation and variations for a reference

- relative or absolute rotation

- scale and variations for a reference

- use local leaf-space or word space


 some additional functionality...




- Scale down parameters which have units (divide by given amount)

- Set default values for ivy-creation

- extract main branch

- extract old branches

- extract young branches

- extract a single shape, or multiple shapes (one for each branch)

- extract the splines (this can take some seconds for big ivy's)

- create ivy-material without vertexcolor-map (your vertexcolors don't work then !!)
  3ds max 2011 only...


 scaling is useful when opening files created with versions <0.94b:
  - when the file was not saved using cm as system units,
     and choosing "Rescale the File Objects to the System Units Scale?" in "File Load: Units Mismatch"-dialog
  - same for presets: if a preset was saved with a version <0.94b using different system units than the current,
     the preset values will be wrong (they always were) - scaling helps here to get reasonable values

 if the grow splines are extracted as a sigle shape, it will be created on the current layer,
 if you extract multiple shapes, they go to a new layer named [IvyName]_Branches001

 on ivy-creation a material is also created, which has vertexcolor-maps for the leaves,
 quicksilver does not (yet) support vertexcolors, "Quicksilcer compatible" materials have no vertexcolor-maps
 this way quicksilver can render the leaves, otherwise only branches are visible in quicksilver-renderings


 should be obvious what this one does...


- Load and Save of Presets


 each and every value is stored in such a preset, including vertexcolor settings and transform overrides


 additional notes:

 ivy's shouldn't grow on windows, correct ?
 to inform the ivy of such situations you have to freeze your window-meshes
 this way such a frozen mesh will still be used for collision-detection,
 but the branches will die there faster than on unfrozen meshes
 if you have a modifier applied to an ivy you won't see it growing in viewports (no mesh is generated while growing)

 to speed-up growing:

 - turn off "Use Selection Brackets"
 - hide all objects where it won't grow anyway, too much faces in your scene will slow down the grow-process
 - whenever possible split big meshes into some smaler ones, but having 10.000 objects also doesn't help much :)
 - disable all modifiers you might have on top of an ivy-object

 if the ivy isn't growing the way you want, you can stop growing any time,
 adjust age and/or grow-params and start growing again

 having any questions ? - feel free to ask (you will see my e-mail addr. when clicking on the donate-button)
 you don't have to donate at this point (but you can!!), it just keeps me from geting spamed...

 and now... have fun!