3D plants modelling challenges
Introduction : Creation of realistic, high definition 3D trees
is a challenging task due to complex geometry of real world trees.
In this section I expose problems related to recreation of realistic looking
3D vegetation, and I present the main types of approach used by 3D botany
software. Numerous plants, especially trees, are pseudo-fractal objects.
Similar pattern repeats itself in various scales making whole object "fuzzy",
without a clear edge as on compact objects like a ball or a car. Current
3D modeling & rendering methods are ill adapted for recreation of such
utterly complex objects. Similarity of shape is an advantage, but complexity
of geometry is a huge problem when algorithm has to generate a model of
let say Christmas tree.
Cheating out complexity : Number of needles on a conifer tree is
in range of tens of millions, considering that a decent 3D representation
of single needle would require 9 polygons, you get something around 100
000 000 polygons for a single tree. This is way beyond capabilities of today
standard computers. Simplifications are necessary. Complexity problem can
be partially solved by replacement of chunks of plant's geometry with images
using transparency (ex. alphaplanes, billboards), and with instancing (repetition
of the same element) :
Some 3D orthodox fundamentalists ;-) may claim that using transparency
(especially on billboards) is not "true" 3D, that it is cheating,
and only "real" geometry should be used. They forget that everything
about 3D is cheating, everything in 3D is virtual and any 3D technique which
generates desired images and does it quickly, is the good one. Everything
in 3D is a tradeof, and common sense should be used to select the best approach
at particular case.
Alphaplanes work smoothly on realtime previews (as far, as graphic board
can cope with model complexity), but on raytracing renderings, especially
with global illumination, transparencies slow down rendering considerably.
On example above, rendered in TPF, first pure geometry object rendered in
40 seconds, second with alphaplanes in 1min20 third with billboards 2min30.
So more transparency = longer rendering, but simpler geometry possible to
fit into computer memory.
Another problem is how to efficiently define such complex structures as
tree branches bifurcating from 1m thick trunk to 1mm thin twigs. Fortunately
branching structures on plants often display self-similarity, it means that
tiny twigs look very similar to thick branches, just smaller. Such repeatability
of shape can be dealt with iterations :
Example of iteration tree created with The Plant Factory
Shaped by sun & shadow : two trees of the same specie, same
age and health can look completely different, depending where they grow:
on open field, where light shines from every direction, or inside forest,
where the light is available only over forest canopy top (more info here)
Same process of plant shaping by sunlight happens for every
part of the plant : branches grow where there is empty space, and where
more sunlight is available. In areas where sunlight does not reach, branches
die, dry, and drop. Today there is only one 3D software capable of simulating
this process L-Studio
developed by prof. Prusinkiewicz from University of Calgary, and it's simplified
version for iPad TreeSketch.
3D botany software types
Current 3D plant creation software use following approaches
L-System is the oldest approach for
generation of plant like shapes. It offers almost unlimited flexibility,
but it is complex as user has to type the code, which can become too convoluted,
too complex to manage when parameters for simulation of realism have to
be implemented into code. Sometime process is done in 2 stages : relatively
simple code defines basic plant structure, then parameters are used to fine
adjustment of the plant:
Procedural editors like Xfrog
Plant Factory merge high versatility with relative simplicity. User
defines plant structure by assembling a graph in graphic editor. Then he
adjusts characteristics of plant parts defined by graph nodes. This approach
offers most control over precise definition of needed shape. However due
to multitude of parameters, a lot of learning may be needed before user
is able to create nice models from scratch.
Customizable editors like Onyx
are like procedural ones, but without graph creation step. Basic models
are predefined, and user is limited to adjustment of those models. In Botanica
L-System code was used to generate the basic model, and user had no access
to this code.
Growth simulation approach implemented
can produce nice, botanically correct results, but user has no precise control
over the shape, as environment constraints and initial "seed"
properties shape plant in simulated growth iterations.
Models Libraries software aren't real
editors, they just simplify addition of predefined models into 3D scene,
(ex. visual browser). Some very basic settings may be available, like level
of detail or selection of model according to season. Laubwerk
represent this category. More focused simplicity than versatility.
Painting approach consist of user painting
with mouse or tablet offspring branches over parent branches. Basically
user defines branch axial spline shape, and algorithm does the rest - defines
appropriate radius, populates painted branch with other branches, creates
smooth surface blending between parent & offspring. At this moment the
most advanced painting is implemented in iPad free application Tree Sketch.
Speed Tree and Tree Factory also have such functionality.