SpeedTree MAX vs Bionatics natFX
By Jeff Mottle (firstname.lastname@example.org)
As most of us know a successful exterior architectural rendering required more than just the architecture itself. To achieve true realism, a scene requires anchor objects to tie the real to the not so real. A common element, and anchor object, that makes its way into almost every exterior scene is of course the vegetation. While most are familiar with using simple billboarded with photographs of trees or plants and cutout with the all familiar alpha channel, there are many situations when this technique simply will not work. Have you ever tried to create a high camera angle animation with this technique? Have you ever needed to do walk very close up a tree or even needed to edit the trees themselves to create variation? Chances are if you have answered yes to any of these questions, you have found simple image cutouts severely lacking. Now some of you may be thinking that the solution is to use actual geometry, but if used in quantity this too will bring most renderers to their knees, and unless you purchased a pre-textured model, you will spend a great deal of time to create anything that come close to looking realistic. So what is the solution? Simple, a combination of all of these techniques. A growing number of companies have come to realize that there needed to be a solution that addressed quality, speed and flexibility. Two products that fall into this category are IDV’s SpeedTree MAX/VIZ, produced for Digimation, and Bionatics natFX. While both programs are relatively similar, there are a number of things that make each a unique and powerful tool. In this review I will be closely examining both applications to discover their respective strengths and weaknesses. The test bed for both applications in this review is a Dual Athalon 1900+ with 2GB of RAM and a Leadtek GeForce Ti 4400 and 3ds max 5, although both will also work on 3ds max 4, and in the case of SpeedTree with Autodesk VIZ. (separate version)
Bionatics natFX 1.5
Bionatics natFX is an advanced procedural plant modeler that tightly integrates with Maya and 3ds max. The program itself is a plugin that uses “virtual seeds” to initiate the growth of very accurate tree and plant specimens. Driven by AMAP procedural simulation technology, natFX plants and trees are capable of simulating very exact detail in plant growth like age, season, species and how they are affected by wind. In this review I will be examining the version for 3ds max.
The natFX plugin comes packaged in a standard software carton and contains a jewel cased CD, a 121 page manual and a hardware lock. I have to admit that upon first opening the box I was a bit surprised to find a plugin that not only used a hardware lock, but is using one in a time where most vendors are quickly switching the software lock solutions. So for those of you, who thought you had rid yourself of that blue dongle collection once and for all, make room on that parallel port once more.
Installation was very straight forward and requires that you locate your copy of 3ds max and enter in the two unlock codes that are supplied to you via email after purchase.
The manual itself is nicely laid out, and covers all of plugin’s features with great detail using easy to read step by step directions and large black and white screen captures and sample renders. I was able to get the plugin up and running and working within about 20 minutes and spent an additional 4 or 5 hours completing the manual and experimenting with all of the plugin’s features. Support for the plugin is very good, however the website is lacking a decent online FAQ and a Tips and Tricks section. I have been told that this is on the way.
natFX in production
To plant a natFX seed, you simply select “Bionatics” from the Geometry creation menu and press the natFX button under the Object Type rollout The creation portion of the plugin contains 4 additional rollouts that aid in setting up your tree or plant. The first rollout is entitled favorites. It is here that you access the nursery of plants and trees that you have installed. The plugin comes with 10 free “virtual seeds”, of your choice, from their collection of 250 different species, 50 of which have just recently been added to the collection. At any time new “seeds” can be purchased via the Bionatics website. I really like how they have implemented the selection of seeds in the nursery. The first option is to visually select through a scrolling window of tree and plant thumbnails, the second is to right-click on the window to access a text menu of plant names sorted into letter subcategories. This method is especially useful when you have a great number of seeds installed and wish to quickly access the one you need. The third access option is a floating resizable window that not only allows you easy viewing of the seed thumbnails, but also enables you to create your own folders and subfolders to sort the seeds into. This is great for fast retrieval of your favorites.
Seed Selection by Subcategory
Nursery dialog box and subfolder sorting
natFX creation Rollout
The second rollout contains all of the information about the seed you are about to plant, including the age of the tree or plant, the season, the LOD (Level of detail), and whether or not you wish to use real geometry of billboards. I’ll delve more into this a little bit later in the review. The third and fourth rollouts are entitled action and wind respectively. It is here that you can access global plugin settings and specify if you would like 3ds max’s wind space warp to affect the tree or plant you are about to place.
As I alluded to just a moment ago, natFX uses two methods to display trees and plants in your scene. This includes all geometry trees and all billboard trees. A third method is a combination, or hybrid tree, that is comprised of both geometry and billboards. While I’m positive that all are familiar with geometry, I’m sure some are not with the term billboard. In natFX, and in most other plant and tree generation applications, a billboard is simply a planar representation of the tree's geometry, displayed exactly like the planar mapped textures you would use with alpha channels to define tree and people cutouts. However, the billboards in natFX are far more intelligent and powerful, as you will soon see.
So now that we understand the type of trees and plants that natFX can create, let take a closer look at how each works.
The all geometry tree is quite simply a tree comprised entirely of faces and is textured with either a multi-sub material that defines everything from subtle leaf color variations, to the color of the branches and truck or an actual scanned bitmap. Using this combination of procedurally generated bitmaps, diffuse colors and materials ID’s the color of the tree or plant is defined. Once you have chosen the seed to plant, and entered in the plant information, you just click in your viewport and the tree is created. Depending upon the age and level of detail (LOD) you have chosen, the creation process can take anywhere from about 1 to 15 seconds. The face count of an all geometry tree is affected by its age, the season, and the LOD. A Cherry tree for example can be as small as 210 triangles in winter at age 4 with the lowest LOD and be as high as 456,000 triangles in full summer bloom with full LOD and maturity. Some trees can even get as high as 2 million triangles, although I was never able to place one that large as it would consistently crash 3ds max 5 with an out of memory error, even with 2GB of RAM!
Billboard Trees and Plants
As a discussed earlier, billboard trees contain planar representations of the geometry with bitmaps to display the majority of the detail. The real power of the natFX billboard is that the plugin intelligently divides the tree's geometry into many billboards in such a way that it is in some cases virtually indistinguishable from its full geometry counterpart, yet it made up of a fraction of the face count. The same cherry tree discussed above at full maturity in summer, with the highest LOD, is made up of 116,000 triangles as a billboard tree and by shaving only a few years off the tree’s age and lowering the LOD it would take up only 778 faces!
The above figures were reached using the plugin’s automatic billboard generation, but you can also manually specify how many billboards and unique textures you wish to use on a given tree. This can both help in reducing the overall memory usage from textures and the number of triangles your billboards take up. As impressive as this feature is, believe it or not there is yet another level of optimization that you can perform to decrease your face counts even further. This is where the hybrid tree comes into play.
Billboard example - Left side viewport screen capture, Right Side rendered view.
Full Geometry Japanese Maple (59, 414 faces)
Billboard Japanese Maple (7,033 faces)
Hybrid Japanese Maple (18,000 faces)
Hybrid Trees and Plants
Hybrid trees are made up of both geometry and billboards and can be the best solution to achieve the balance between efficiency and realism. Any tree or plant that is created has two sub object modes that allow you to enter the Hierarchy (Geometry) and Billboard mode of the tree. From each mode you can easily convert from one to the other. In other words, in hierarchy mode you can select any portion of the geometry and convert it to a billboard. Conversely, in billboard mode you can convert any billboard back to physical geometry. In this way you can reduce the geometry in areas that may not be seen in your scene or add more geometry to areas that will be seen close up. Using these modes you could also create the typical “X” (two faced) tree or even a single faced billboard tree.
Example of a your billboard tree using both 2 face "X" billboard with a curvature threshold.
wood geometry on the tree. This enables you to create high LOD billboard with minimum geometry. Another few setting that are worth mentioning and that aid in the creation of more realistic tree are organ scaling, curvature threshold and billboard settings.
is natFX's ability to control each individual billboard. Not only can you bend the billboard to conform to a branches contour, but you can also make each billboard a cross "X" billboard. Using these two techniques together ensures that a billboard tree will look great from any angle with minimal geometry.
Hybrid Sector mode viewport
Hybrid Sector mode viewport wireframe
|Closeup LOD1||Closeup LOD3||Full View LOD1||Full View LOD3|
|Aleppo Pine Closeup||Aleppo Pine||Grass (tufted hair)|
For any tree that uses billboards and some geometry trees, there is a texture that must be generated for it. For this reason natFX has a built-in texture manager that allows you to view and replace any bitmaps that have been assigned to a face. So why is this important? To understand why you must first know that natFX is a procedurally based tree generator. That means that when you place a tree, the plugin is not reading in a generic set of textures for each tree type. In fact, the plugin creates the bitmaps on the fly from the parameters set for the tree or from the geometry that had already been created. As you modify or create billboards and change tree parameters, textures are created and destroyed on the fly. If you ever need to access or view these textures to make modification you use the texture manager. Another point worth noting is that you can also choose the type of bitmap that is generated by the plugin. Version 1.5 allow for PNG, RLA, RPF, TGA and TIF file formats.
For those of you who wish to add even more realism to their trees, you can enable natFX wind functionality. By checking the “use wind” check box you can employ 3ds max’s built in wind space warp to simulate bending and flexing of tree limbs, however the rustling if leaves is not yet supported. This may be of little consequence mind you as the stretching that occurs to the entire tree does tend to simulate rustling of leaves. A useful feature but not as powerful as SpeedTree for example.
I’m sure some of you may now be wondering how natFX will work in a network rendering environment. Although the plugin itself is protected with a hardware lock, there is an unlocked version of the DLO file that allows other computers and people to view a scene containing natFX trees. The only limitation to this unlocked version is the inability to edit the trees in the file. Viewing and rendering are the only options.
So what did I think of natFX? Overall I found the plugin very easy to use and straight forward. The ability to control the age, season and LOD was very impressive and in most cases yielded some very good results. Render speeds were very reasonable and I had no complaints about memory consumption with large scenes. (Of course if you choose to render all geometry trees, you will obviously pay a speed penalty)
There was one thing that I thought should have been added. This addition being the ability to edit the geometry. While you can move billboards, there is no way to edit or move branches without converting the tree to an editable mesh. For a plugin that creates trees procedurally, you are bound to get the odd branch that needs to be trimmed or pruned. Another improvement that I think needs to be made is in the closeup realism. From a reasonable distance the trees look quite realistic, but once you get close up, even with full LOD enabled, I found the quality to be still very low. From the trees I tested, the quality at full LOD seemed to vary from tree to tree. Some trees had textures for their leaves while others were only diffuse colors, so there does seem to be some variation in quality of each seed.
Another positive feature of the plugin is that you are pretty much guaranteed an accurate representation of the tree you choose. As each tree is programmed with the aid of a team of botanists, you will always be sure that the tree is physically accurate, throughout it's lifespan and varying seasons, and with 250 specimens to choose from, you have a great deal of choice. The only drawback to this is that you must purchase a new seed everytime you want a new tree, and if they have not yet developed the specimen you are looking for, there is obviously no way to "fake" or create the one you do need.
So now for the big question, how much? Bionatics natFX sells for $990.00 US and includes 10 free seeds, of your choosing, from their nursery of 250 seeds. After that each seed will set you back a whopping $100.00 US. There are discount packages available for large quantity purchases, but even so, you will pay a pretty penny to get your hands on the entire collection, which will set you back several thousand dollars!
In general I think natFX is a great plugin for anyone who needs to be able to quickly place trees in their scene, and be able to control the season, age and specific tree type without having to worry about too many settings and controls. Of course it goes without saying that if you require botanically accurate trees Bionatics is the only way to go. If you are looking for a package that will allow you to create your own trees, get fairly close up, or allow editing of existing trees, then you may be wise to look elsewhere. Overall an excellent package.
Price: $990.00 US
Additional Trees Available: Yes/$100.00 US each
Visit the online nursery to view the specimens available.
The SpeedTree MAX plugin is exclusively distributed by Digimation and comes in a shrink-wrapped Jewel case. There is no paper manual or any supplementary documentation, other than the online help, and is protected with Digimation's exclusive software licensing program. SpeedTree comes in two flavors, one being the 3ds max version and the second the Autodesk VIZ version. Both are sold separately and cost the same.
The installation, although straight forward, caused me a fair bit of grief. I'm not sure if I was just unlucky or if all users should expect some troubles during installation, but I must say my initial impressions were not that great. Between the full version authcode that mysteriously failed after install, to the hoops I had to jump thorough to get the plugin to install on both 3ds max 4 and 5, I spent a fair bit of time, just trying to get the plugin working the way it should. However, after a few emails to Digimation and a re-install or two, I was able to get everything running smoothly. I will credit Digimation for their prompt responses to my question and being able to quickly find and resolve any issues I had.
With the plugin finally installed and ready to go, I started into the online documentation to get myself acquainted with the software. Although the documentation is adequate, I really thought it could have been done better. The organization of the plugin documentation itself is good, but lacks any graphics to help explain the features. For the most part the only graphics you will find are screen captures of the dialog boxes. This is especially true with the documentation for SpeedTree CAD, the standalone application used to design your trees. While they have done a decent job of explaining the features themselves, actual and pictures showing the features in action are unfortunately missing.
Further compounding this lack of examples images are an even poorer set of samples files. Not only were all of the texture paths still mapped to a developers harddrive, but some supporting graphics were missing altogether! To use the scene files at all, you will need to add nearly 40 bitmaps paths to your setup, which is not a huge deal, but considering that this is a commercial application, you would expect more attention to detail.
Well with all of the bad out of the way, let's focus on the good. And rest assured there is plenty of good in this plugin, despite the dismal support documents and installation problems.
SpeedTree in Production
The SpeedTree plugin is divided into two parts. The first is the plugin itself, which of course is integrated into MAX, and the second is SpeedTree CAD, the stand alone Open GL enabled application used to design and edit your trees.
The SpeedTree plugin in accessed from the Geometry creation tab, under the IDV software heading. Once activated, there are two options in the object type rollout to choose from. The first is SpeedTree, the other SpeedPlane, which I will explain a little later in this review. SpeedTree allows you to place detailed billboard trees into your scene. To start using the SpeedTree portion of the plugin you simply press "SpeedTree" and left click in the viewport. This places a SpeedTree placeholder which can then be edited to suit your needs.
To start making modifications you simply select the tree placeholder and proceed to the modify tab on the command pane. From here SpeedTree gives you access to 7 rollouts where you specify and edit the tree's general information. Settings include Seed values, tree height, wind parameters, cache settings, viewport display levels, forest controls and billboarding controls. Of course this only sets up the global parameters for your tree, you still need to swap the placeholder with a real tree.
The plugin comes with 30 tree and shrub varieties in several levels of detail. However, unlike Bionatic's very user friendly selection tools, SpeedTree's implementation is somewhat lacking. Inserting a predefined tree or shrub of either your own design or one of the supplied varieties, is done by importing an SPT file. An SPT file is the file that contains all of the information about the tree. To choose your SPT file, you need to browse to SpeedTree's Library folder where you can select by either common or Latin tree names. Keep in mind that this is not a special library, you are only browsing through windows explorer. There are no thumbnails, other than the ones on the IDV website and on a supplied contact sheet, so unless you have that on hand you will have to guess at what you are inserting. For example, I have browsed to the library directory and located the Willow Oak folder. Within the folder you will find several files. All files are suffixed with with either "_LD", "_MD", or "_HD". These suffixes indicated the level of detail, and stand for Low Detail, Medium Detail, and High Detail respectively. Also, this particular specimen contains Fall and Street (presumable smaller) versions of the file as well. Once you have chosen your desired tree type, the plugin loads the tree in place of the placeholder .The tree updates very quickly and can be re-computed if the overall tree structure is not suitable. This process is much quicker than in natFX and happens virtually in real-time. With your tree selected and the general shape established you are ready to render.
English Oak Tree swapped in to replace
English Oak Tree rendered (Included Tree)
So we know that we can choose from the collection of trees that come with the plugin, but what if you none of these are what you are looking for or you would like to edit an existing tree? This is where SpeedTree, really shines! As I mentioned earlier there is also another component of SpeedTree called SpeedTree CAD. This is where all the magic happens, and is where you will find 90% of the plugin's functionality. From the same rollout that you used to select your SPT file, you can also launch the CAD component of the plugin. By Pressing "Edit", the currently selected tree is loaded into SpeedTree CAD. I should also note that the CAD application can also be launched directly from the start menu to facilitate creating trees from scratch.
SpeedTree CAD Interface
SpeedTree CAD is one of the most, if not the most, advanced tree modeling and simulation packages of its kind. With the launch of Nvidia's Cg programming language earlier this summer, IDV quickly implemented Cg into SpeedTree CAD and allows you to take advantage of some very impressive and powerful Open GL tools. Because of these enhancements navigating around your tree, visualizing realtime wind effects, and performing updates to the tree, all happen in real-time. Despite my initial issues with the installation and documentation, SpeedTree CAD quite simply blew me off my feet. So much so that I would recommend downloading the demo just to see SpeedTree CAD in action, even if you are not in the market for a tree modeler.
SpeedTree CAD has 4 tabs that all configuration settings are divided into. They are Trunk, Branches, Leaves and Global.
All trees must contain a trunk, branches and leaves, however with some creative manipulation of these settings, you can create a great deal of variety, including weeds, ornamental grasses and even cacti. Even though you must have a trunk, setting its radius to zero allows to you create grasses from branches. The possibilities are infinite.
To give you a general idea of the settings you can play with, I have provided screen captures of each tab. (above) The settings in each section are divided into subsections and allow you to specify the minimum, the maximum, and the variance. The individual subsections can also be further refined by means of a curve editor. For example the Radius of a branch can be set to have a minimum radius of three, a maximum radius of five, a variance of two, to add some noise to the branch. The curve can then be set with either a predefined curve sample or by manually setting up control points. Through the curve editor you could specify that you want the maximum radius to occur near the base of the branch and the minimum radius to occur at the tip. Combine this power across the trunk and branches with setting like flexibility, start angle, length, radius profile, and multiple levels and you have a tool than can create almost any tree imaginable.
The Leaves tab also allows you to specify several levels of leaf types and even allows you to create blossoms that grow at the end or along the length of the branch.
Within each tab you can also specify a bitmap(s) to be mapped onto the respective tree part. As long as you have some good reference material there is not much you won't be able to produce. On the flipside, if you do not have good scanned content, you will have to paint your own. So if you don't happen to have that rare African hardwood tree in your backyard as a reference, you might be spending more time designing your tree than you had hoped.
Because the documentation is missing illustrated examples of how each setting works, you will need to spend a fair amount of time experimenting to see how each reacts both by itself and with other settings. Be careful though as you can quickly let an entire day go by without accomplishing anything! There are so many possibilities, that you may find yourself tweaking a single tree for hours. Honestly I was having so much fun creating new trees that I lost a good three hours of my life during the process of writing this review!
Outside of the individual settings, there are a fair number of buttons and toggles in the main interface itself. Although most will not translate to a saved file, and were only put there to show off the Open GL implementation, they are very useful in determining how your tree will both look and react in 3ds max. These settings include the ability to change ground and sky types (which also affects lighting and shading as well), wind settings such as windspeed and direction, levels of detail, lighting positions and even a park bench for scale.
Once you are happy with your tree design you can save it out as an SPT file and load it into 3ds max to replace the SpeedTree placeholder. SpeedTree, as with natFX, uses billboard technology to create the trees. The tree that displays in your viewport will display as hundreds of different billboards, each representing a portion of your tree. A nice feature in SpeedTree that can not be found in natFX, is a viewport display control. Whereas natFX must rely solely upon 3ds max's built in adaptive degradation, SpeedTree can also use its own LOD controls to reduce a forest of trees to only a trunks for easier viewport manipulation.
Because SpeedTree relies upon the quality of the scanned textures to to determine the realism at close range, you can get some amazingly realistic close up shots. While texture LOD can be controlled this way, geometry LOD is no where near as advanced as natFX and must be dumbed down manually in SpeedTree CAD. This is done by reducing branches and leaves and must be saved as a separate file.
Another impressive feature of SpeedTree is its Forest control. By specifying a boundary path and a editable mesh terrain, the plugin can generate a forest of trees bounded by both the spline and the contours of the mesh. I did however find a fairly limiting design flaw with this feature if you intend to build a very large forest. If you attempt to build a forest that is too big, the program's internal normal function overloads and causes 3ds max to crash with a memory error. The quantity of trees that forces this crash seems to be different in max 5 and max 4. In max 4 you can get a forest of about 400 trees, whereas max 5 seems to flake out around 150 trees. There is fortunately a work around that the developers let me know about. Simply create a forest that is within the memory limits of the program and instance the entire forest in several different locations. I tried this out and it work perfectly! One thing I did notice was that you can only instance a forest. Copying will not work.
SpeedTree Palm tree Forest
The number of faces on a SpeedTree will depend of course on the file that you load. The standard Trees that come with the plugin range from a several hundred faces for a low detail version to around 100,000 face for the high detail versions. Although your face count is theoretically limitless, the high resolution trees that are included provide enough detail even at very close range, so I wouldn't expect you would require anything bigger.
As I mentioned near the beginning of this review, SpeedPlane is the second option available to you in the plugin. SpeedPlane reacts almost identically to a simple plane billboarded with a cutout bitmap, however is compatible with SpeedTree's Speed Shadow Generator and the forest tool. You can also set all SpeedPlanes to either be cross hatched into the typical "X" formation or set to always face the camera. Both very useful low poly features for distant trees.
For those of you who are thinking about using raytrace shadows to get crisp detailed shadows from the face mapped materials, this is definitely an option to you, however a unique feature to SpeedTree is its built in Shadow Generator. The benefits of SpeedShadow are almost identical results to a raytraced shadow, but at a speed slightly longer than a high resolution shadow map. SpeedShadow is available to you in the same spot as Shadow Maps and Raytrace shadows.
|• An excellent and very flexible feature set.||• Poor documentation and possible setup issues.|
|• Good realism both near and far (provided the bitmaps are high quality)||• No way to select tree from a thumbnail|
|• Very reasonably priced||• LOD must be created manually in separate files|
|• Very realistic wind controls||• Does not create physically accurate trees|
|• SpeedShadow||• Only 30 tree and shrub varieties ship with the product|
|• Forest Controls|
|• Very powerful tree editor|
|• Very straight forward and intuitive interface|