|
Submitted by , posted on 05 November 2002
|
|
Image Description, by
The above image was created with TReal. TReal is a program capable of
generating realistic 3D tree models. TReal generates an internal 3D
representation of a tree based on various parameters. The model used for
generating the tree is described in an article published by Jason Weber and
Joseph Penn, "The Creation and Rendering of Realistic Trees". The article
can be found here: http://portal.acm.org/citation.cfm?id=218427.
Using plugins the internal representation of the tree can be exported to a
scene file for a particular 3D program. I've currently written one plugin
for TReal, called POVTReal. POVTReal is able to output standard POV-Ray
scenes that can be rendered with the POV-Ray raytracer.
When the user chooses to render the tree, at first an internal
representation of the tree is created. A tree is a TTree object, consisting
of a Trunk of the type TStem. Every stem has a list of substems. The tree is
recursively generated by first growing the trunk, then all the children of
the trunk and so on. The last level in the recursion are the leaves.
The stems consist of a list of sections; in fact 'circles' (when lobing is
used these circles are deformed) defined by a number of vertices. More
vertices per section of a stem at recursion level n positively influences
the quality of stems at recursion level n. The number of vertices can be
specified by the user (this is in fact an extra parameter I've added to the
model). Every stem and every section making up a stem have a local
coordinate system associated with it. When writing the section vertices to
the internal representation of the tree, these local coordinates are
converted to global coordinates. Please note that all the classes
implementing the scaling, rotating, matrices operations, and coordinate
conversions have been written by me.
The entire program is written in Borland Delphi. For this reason the program
isn't particularly fast as you might notice. I'm currently rewriting the
low-level vector and matrix routines in C++, that should significantly
improve performance.
Oh, one last thing, the source code and some additional information can be
found here:
http://members.chello.nl/~l.vandenheuvel2/TReal/
And don't forget to have a look at a friend's site of mine who used the same
model as I did and created a Java program also capable of generating
realistic 3d tree models. His program is called Carrot and more information
can be found here:
http://home.wanadoo.nl/d_reniers/blue/edu/tue/carrot.html
Sincerely, Ton van den Heuvel
|
|