Real Ivy by 3Dynamite is an editor extension for generating procedural sprawling meshes.
Edit 11/18/2017: Version 1.2 was recently released with runtime generation! I highly recommend this asset, especially with the ability to generate these vines at runtime!
This new asset – with a perfect 5/5 rating across 18 reviewers piqued my interest when it was the 24 hour sale enough to impulse buy it. The example results displayed on the store page for the asset – and the promised ease of use convinced me to give it a shot. There are a few bugs, and a few hiccups, but overall the package delivers exactly what it promises – beautiful results, easy interface, and a relatively streamlined process.
Below is an overview of the asset, followed by detailed information related to the asset, and finally a few notes on the performance impact you can expect from using the asset. In an effort to keep the review more objective, an editorialized commentary on the asset will follow in the summary at the bottom prior to a rating.
- Easy to use interface
- Preset system
- Real-time modifications
- Procedural mesh optimizations
- Multiple included assets/presets
- New painting system provides detailed control
- Not limited to just ivy
- Large mesh optimization bugs
- No run-time support
- Limited editing after saving an “Ivy”
- Run time support for the seeds prior to saving a mesh
- Run time support for Ivy generation/regeneration
- Procedural LODs
Interface, presets, and usability:
Included with the package is an easy to use interface for placing, generating, and saving assets (for both procedurally and hand-painting ivy). Four ivy presets are included, a big and small set of roots, thorns, and leaf-less vines, and a preset for sprawling ground plants. The included presets are related to the following included materials:
- 3 included bark materials
- 4 included leaf materials
- 2 included thorn materials
Presets can be easily created with custom/updated materials and saved to a preset file. One of the best parts of the interface is that you can modify things after you generate a mesh. This allows you to tweak settings with live feedback of what the end result will look like (changing the materials, branch, and root size):
Generation options are available to let you step through the generation slowly, do real time generation (as above), or performance where generation runs automatically but is only updated when a step is completed.
The overall process for generating a new procedural Ivy is as follows:
- Select preset (optional)
- Place “Ivy seed”
- Place using collision detection by clicking in the scene view
- Or manually moving a seed object (generated at center of scene view)
- Start/Stop Growth (buttons)
- Reset/Randomize to get different looks(optional)
- Optimize/Refine Corners (optional)
- Snapshot Mesh
- Delete or move Ivy Seed (optional – ivy seed meshes are not present at run time)
The process overall feels a bit clunky considering you need to specify a save location for each mesh (instead of setting a default), but is still quick enough to not be a major issue. Having optimization built in is also nice, but I did encounter issues with Unity freezing if you attempt to use refine corners on larger meshes – it does seem to eventually process most of the time, but it’s still a good idea to save early and often.
Despite including only nature-based options, this asset should be great for any cable or similar generation – such as creating ropes, electrical cord, or potentially even chains. Additionally, the code is clean and well commented (albeit in Spanish and not English) should you need to make modifications.
Real Ivy meshes are saved by using the “snapshot” button in the UI. This generates a mesh and a game object with one or two assigned materials – one for the bark and one for the leaves or thorns (if used). Careful use of the optimize tool seems to be able to get individual vines down to around 1-2k tris/verts each, but if you aren’t careful you might end up saving the default generation to a snapshot and end up with 10-20k tris/verts.
Overall, the performance impact was around 10fps (high 70’s to high 80’s) on the test rig (see rating for detailed specifications) for the scene above. Occlusion culling should allow for most games to use ivy fairly liberally. Open world games with a large amount of ivy will probably need to generate LODs for the ivy, as there are none generated by the tool.
Real Ivy delivers on the simple promise of letting you create organic shapes/ivy easily. While it would be nice to have built in LODs and the ability to generate ivy during run-time, the asset provides the ability to add some life to a scene (even using custom materials) very easily.
Personally, I find scenes to feel much more alive and have a more polished look with the added vines. As a programmer, art and composition is something I struggle with. This tool allows me to play around with procedurally created greenery until it feels right. Since you can swap out materials to match your art style fairly easily this asset makes my “import into every project” list – it even makes material-less shapes look nice.