The good thing, yes those trees are easier to construct for end users, once the system is implemented, but compared to L-Systems, they have only a fraction of their powerfulness.
Quote:Original post by _swx_ Generates trees that actually look real, which L-systems etc doesn't.
Then below images are gimped or photoshopped?
And a real world scene (showing terragen+xfrog plants, image from xfrog):
[Edited by - phresnel on August 21, 2009 3:20:35 AM]
I used the Weber paper for my trees and it works well, you can see a small video of some of the results ">Here. I've since added pruning volumes and obstructions to growth as well as grow along splines.
It's an open source tool that allows to model trees and more. XL is a programming language that combines Java and L-systems and allows global interaction as well.
Quote:Original post by spookycat I used the Weber paper for my trees and it works well, you can see a small video of some of the results ">Here. I've since added pruning volumes and obstructions to growth as well as grow along splines.
Mighty results. You write on that youtube page that it's for your game engine. Which one would that be?
Thankyou :) It's for our own in house game engine that is still being worked on. There is still a bit of work to do on the tree front better blending of branches to the trunk for example, working on the wind and deforming stuff at the moment. Some pics of the growing along a path and growing around objects. Still got some way to go to match SpeedTree 5.0 but cant afford that one, mind you price has come down a little but still more fun doing it oneself :)
In the paper, he says "a random rotation of magnitude (nCurveV/nCurveRes)". I am just wondering whether he means what he said (then its not random), or he means a random rotation of magnitude *up to* (nCurveV/nCurveRes).
I'll go with the second, but maybe I'm misunderstanding something.
I have a question regardin Weber's paper (http://www.cs.duke.edu/courses/fall02/cps124/resources/p119-weber.pdf) as well. In section 4.2, there is a passage which says: "If there are any clonsed, then the z-axis of the stem and its clones rotate away from the z-axis of the previous segment by angleSplit=(nSplitAngle+-nSplitAngleV)-declination, limited to a minimum of 0, where the "declination" angle ... can be found by taking the inverse cosine of the z component of a unit z vector passed through the current matrix tansformation of the relative coordinate system."
Here is what I do not get: suppose we got a two-way split after the first segment, so that the current transformation is a simple translation upwards, then the z component of a unit z vector passed through it would be 1, right? acos(1)=90, thus angleSplit will be negative except from exteme cases of nSplitAngle and nSplitAngleV which leads to angleSplit = 0 very often and the clones wont rotate away from the main branch.
If you look at the top center image, there is a tree which has a split right after the first segment, but here the angle seems to be 45 degrees from the segments z-axis, so why is that?