Trees
Hi,
Of course, our beloved Bryce has quite some tree modelling options. Nevertheless, there are some drawbacks, such as the fact that trunks are straight by definition (or did I miss something wonderful?). Horo has been using Arbaro (free) a lot, which has the advantage of geometry for leaves. I have been having fun with NgPlant (free), which can make the strangest tree(like) forms, but leaves are made with simple geometry and transparency, which has big disadvantages. C-ram is the master of SpeedTree, which is probably the best tree modeler out there (very realistic!), but way more expensive than I would ever want to pay, being just a simple amateur artist in Bryce. Now, I read something about Forester Pro. This has a free 'light'version as well as a payed version (only $30, with updates included). The website is not very great and the information is relatively limited. The pictures look like you can make trees which are not very high quality, but some better looking ones I saw as well. For leaves, there are options of simple to more complicated flat geometries (modifiable) with transparency, but apparently also single leave geometries.
Has any of you ever tried this one? I downloaded the tool, but have not used it yet. If any has used it, what do you think? Worthwhile? Comparable with Arbaro or NgPlant or another tool in quality? Polygon count OK? Rendering fast enough?
I will let you know what my experience is (after testing, of course).
Comments
No, I never heard of Forester Pro. What I still have and hardly used is Dryad which can bend trunks. It was a research project and seems to have ended in 2011. The idea was to create trees of any species and upload them to a server. When you started Dryad, the new content on the server was downloaded. The program still works but the access to the server not anymore but I have several hundreds trees in the datafile and each one can be modified.
Hi Hansmar!
Yes, I've already heard about Forester pro. It seems to be a good software and there's a lite version downloadable on htpware website.
So, maybe you can try it for free before buy the full version.
You can also P.M me if you want to learn more about speedtree ..
Horo : I'll have to take a look at this Dryad project. I'm curious about trees and I like them so much. If Fangorn exist, that's where I would like to live.
Carrara makes pretty good trees that can be obj exported no doubt to Bryce
True, Rashad used Carrara trees and I also played with them in C8.1 some time ago.
I started playing with the free version of Forester. It was not easy, because it does not natively run under Windows 10. And when using compatability mode, you still need to ensure that there is the correct version of DirectX (which needed some searching on the web). The tool offers lots of options to modify the trunk(s) and branches. The options for leaves in the free version are rather limited. You can (I think) add your own leave geometry via import in a Colada format. Included formats are for smaller branches with multiple leaves, using transparency maps. These do not look very good in the tool itself, though I have no clue how they will look in Bryce. The output formats do not include OBJ or 3ds or similar, but various forms of Collada, DBO, FBX and X. I used a Collada for Blender, Maya, etc. and opened the mesh in Meshlab to expoert it to OBJ. This way, the texture of this dead tree was coming into Bryce. Direct import of the Collada-file did not do that.
You should also be able to make grass and small plants with it. There are very many options to change many things and you can even modify the vertices directly, it appears (not tried yet).
Here is the first result: a dead tree. Nothing fance, direct rendering to JPG.
One thing you can already see: it makes curves in trunks and double (actually up to 4) trunks. I have not figured out how to make nice trees, that will be for later playing.
Let's face it - Byrce trees are c**p (and adjustment of so are useless - no effence to you Hansmar). Byrce trees look like they are stuck in the 19/20th century, so, time to move on. Some are useful, but most simply are disappointing and, generally, not convincingly-wise suited for modern-day rendered works. Angling branches, thickness, leaf-count...etc.,etc., is all very fine, but they don't work - leaving for unconvincing tree results. It's gone on for too long - so, no-update's by DAZ are to blame.
Is this not a signature of their non-commitment, non-update policy to Bryce? Yes, certainly! If DAZ are truly seriously convinced towards Bryce (having data and contributory historic/details of purchases made by Bryce users...alone), then isn't it time they returned the compliment expected by updating the Bryce software.
Jay
I don't agree that Bryce trees are c**p. There's that bug in the tree lab that never really gets a new tree shape, it's just the default shape with new parameters. That's why BTOs should be used. OK, Speedtrees are obviously better than even BTOs, also Carrara can make quite good trees. Anyone ever used ngPlant? Rashad once said he'd write a tute how to use it but obviously, I missed it.
I submit to your tree knowledge, Horo. Personally, Bryce trees are useful...to an extent, but typically amateurish-looking. DAZ - their non-interest - is the main point.
Jay
Blender has a tree creation python script for it too I believe.
https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Curve/Sapling_Tree
Ah, now to that I can agree, Jay (well not to my tree knowledge but the rest).
I did use NgPlant several times and presented the results too. Problem is (again) the leaves, that are simple faces with a texture including transparency. Otherwise, you can make very nice trees, with all kinds of strange shapes. You can see my entries in the 'trees' contest from many months ago.
I am playing with Forester Lite (free version) now. You should be able to modify the mesh of the leaves, but that is definitely not an easy task! Otherwise, the branches and trunks can be modified quite nicely (including rotation, etc.) You can import mesh leaves if you make them in another software (and export in DAE). That might be a nice method to make reasonable leave textures.
The default leave textures are very bad. Maybe OK for very far in the background, see this example.
So, I learned you can create a leave mesh, in Forester, but that is highly complicated. You have to input every x,y,z of every node by hand. You can also import Collada files. However, not those that MeshLab exports. It says it must have Collada files made by Blender 8.5 or higher. I might try my hand at blender for this, because I think that adding your own leave meshes (not with transparency, but real geometry) might be a way to make this program useful. Otherwise, I would prefer NgPlant, because the leaves in that program are at least one leave per face (basically), while Forester uses twigs with leave textures (and therefore much less faces.
I might dabble a bit more, before I decide it is not better than NgPlant.
I made a render with trees made in four different programs. One is Bryce, one Arbaro, One NgPlant and one Forester Pro. I did work somewhat on the leave textures, but did not get those right at all. Also, some trees have too many leaves (the one on the right) some too many branches (the one on the left) and also the trunk texture could be better.
I intend to try and create 'the same' tree with all four someday and get the foliage as close as possible together. And I want to make a list of differences, pros and cons. But that will take a while.
I wonder if you can, in the meantime, spot which one is which?
First of all, many thanks - Hansmar for doing this research. Just guessing - are No's 2 and 3 of Bryce? Sorry, I have no idea of the other 'wares you mention.
Jay
Nice experiments Hansmar. I'll guess no 3 is the Bryce tree. Like Jay I don't have any idea about the others software.
Hansmar - cool experiments. Judging from the trunks, the third is the Bryce tree, the first is probably Arbaro.
EDIT: The second may be Forester and then the right one must be ngPlant.
Jay, Mermaid and Horo, thanks for the encouragement.
Horo got it perfectly right. The Bryce one is easy (third from left), because native Bryce trees (not the constructed double ones) have only one, straight trunk. In Forester (second from left), the leaves are kind of curved planes with textures (using alpha channel to show where the leaves are). This leads to some strange artefacts on the terrain, I think. Arbaro, on the left, sees all leaves as one group for texturing, making it very difficult to get an interesting texture quickly. It can be done, as Horo has shown in the past. Finally, NgPlant (on the right) has a lot of options, and uses quad-planes for leaves (though you must be able to import obj. files as well). Texturing leaves in NgPlant is with picture textures and alpha channel as in Forester, but the quads start very small (and therefore the tree has very small leaves). You can modify the size, though.
I'll keep experimenting. One render from a big (in bytes) NgPlant tree is now cooking.
OK. So the next one, albeit far from perfect, actually looks more like a real tree.
This is NgPlant, inspired by a photo. Some things clearly not OK yet. Too many big branches, therefore too full. Also, big branches going all directions and parts crossing, which is not a good idea. I think this can be prevented, but still learning. Also: all leaves the same size, which you cannot see from this distance, but in reality there must be variation.
Further progress made. I thought the one above was a bit too dark. And you could not see the split trunk.
Made a new one in NgPlant with less branches and more light in between. Also increased the earth bounce light emission (I use Rashad's EGDLS lighting system). And I made the leaves a bit lighter. Next is a view of a next implementation of the same tree in NgPlant itself. (Every implementation is a new random version, unless you disable that).
And then I struggled with Arboro to get a similar look. But it was very difficult to get a similar amount of leaves. And the branches refuse to start higher than the split in the trunk, so you cannot really see it. I also included a view of how it looks in Arbaro.
Don't ask me, why I put these large ones in a new comment... I sometimes cannot win my struggle with the DAZ forum software. (which means, I make errors, because the software is not as intuitive as I would have liked).
The best results I ever have using Bryce trees is 1. In the background using premium camera blur effect. Or 2 Create your own custom leaf and tree shape then using it as brush or foliage plant in the foreground.
Bryce plants are good up to a point. There are many drawbacks including the "Y" splitting of the branches, the fact that all branches are perfectly straight with no variation is width or curvature. But worse, because trees are based in Metaballs, they are inefficient in the way of polygons. Almost any modeler on the market that can produce quad meshes is going to be better in terms of polygons than Bryce.
When evaluating trees from any software in a Bryce scene there are only four questions you need to ask yourself.
1. To what level of anatomical realism do you require for the vegetation in your scene? If the tree has to look truly real due to close-ups then you know that you'll need to use trees from an outside program instead of those from Bryce.
2. How many trees do you need in your scene? If only two or three, then no worries. If you need thousands however, you have to plan ahead.
3. How much of my memory resources am I willing to expend on the leaves of my trees? How much on branches and stems?
4. How much patience do you have for rendering time? Or better stated, have you set for yourself a cap or a limit to the amount of time you are willing to wait to complete a render? For example some users what to keep all renders to less than 2 hours regardless of scene complexity or other concerns. This is a perfectly valid standpoint and it is important to know one's feelings on this early on in such a study.
Arbaro is good, but it cannot hold a candle to ngPlant. ngPlant is almost limitless in what it can produce with enough understanding. Arbaro has a crude leaf orientation as well as serious limits on the behavior of branches. ngPlant is not perfect mind you, but it does allow you to upload your own custom leaf meshes.
What to avoid:
1. Blend transparency. Importing a leaf image onto a plane (such as Bryce does) is only 1 way of applying leaves. While this might seem like a no-brainer easy solution, but it is actually a terrible idea for anything other than the simplest scenes. Blend transoparency plays terrible tricks on the shadow ray calculations, and in situations of complex scenes where individual rays might find themselves traversing muliple blend transparent surfaces on the way back to the camera's eye can lead to horrifying render times. People who rely on blend transparency for leaves are extremely limited in the lighting options they can apply, as anything other than the Bryce sun and ambience glow will cause huge extended render times.
2. Use real leaf meshes whenever possible- Divorce yourself from so much concern over polygons and memory usage if you want better looking plants. Alpha plane leaves will never be as convincing as truly geometric leaves due to their perfect flatness. Since Bryce does not allow users to import their own custom leaf meshes, you'l need to use ngPlant or some other advanced (and likely costly) software. Real meshes have several benefits, including Super fast rendering. Nothing slows Bryce down more than blend transparency. Even high degrees of polygon complexity will not slow rendering as much as aplha mapped surfaces (blend transparency). But from a realism standpoint, full meshes allow for a much better looking trees.
3. Branches, especially the generation of stems upon which the leaves are attached, can be VERY expensive in terms of polygons regardless of the application, Bryce or ngPlant.
Hansmar- I could have sworn that I sent you a file once with a ton of stuff for ngPlant including several leaf meshes that are already optimized for use in ngPlant. Do you not havce it? Please let me know. Thanks bud! Almost forgot- the Axis Variation is the control in ngPlant that determines how straight the branches of a given generation will be. You should always start with extremely low values and then raise it from there until the branches reach the level of non-straightness that you require.
So far so good to everyone who is contributing, Keep it up. All the best!!!
S-Ray: Wonderful renders. Trees in blur always look good, don't they? So you modelled the plants in the foreground in no. 2 yourself? Clever.
Rashad: Thanks for your extensive reaction. I know about the blend transparency. I used Forester Pro light for my last attempt. That is terrible. It uses a plane (be it curved) with a complete set of twigs and leaves instead of a single plane per leave. It can be modified, but I had no success yet. The Forester approach leads to very extensive blend transparency (often of planes above or behind each other) with rather limited number of leaves. For many more leaves, NgPlant with the blend transparency is much more efficient, because a much more limited part of the plane is transparent. (At least, it looked much more efficient to me).
I can't remember having seen a ton of stuff for NgPlant from you. Maybe I have missed it, or you may have sent it to someone else once? I would certainly be interested, because true leave-forms are what I am striving for as well. That is about the only advantage of Arbaro, by the way: it in principle does not use blend transparency for leaves, but (simple) meshes. However, all leave meshes in Arbaro are treated as one item for texturing in Bryce, so you cannot use a picture texture from a real leave. Or if you can, I could not find it yet.
In Forester, you should also be able to use your own meshes. However, the software is far from clumsy-user-friendly, so I already decided not to bother with that anymore.
Even after not too many tests, I tend to agree with your view, that NgPlant is much more useful than Arbaro. The options are much more extensive. One thing (next to the default of mesh instead of planes for leaves) that Arbaro has better than NgPlant, is the fact that the trunk is not by definition round, but has lobes (is that a word) and you can choose how many and how deep.
Anyway, here is my Forester Pro light example. I could not get more leaves on the tree. There is a limit of 200 'items'; maybe only in the free version. Anyway, that is far too limited for my tree here. There is also a split trunk. but just as with Arbaro, I could not get it to be visible (easily enough to keep working until I had it). I also add the view of the software. Somehow, it did slow down Bryce very extensively in the first attempt. Only after re-starting Bryce, rendering was anywhere near acceptable for me (I don't mind a couple of nights of rendering for one scene; I just either stop rendering when I want to do other things or let it slow down my computer).
By the way, in the 'Trees' contest of months ago, I used various NgPlant trees with strange forms, including a 'man-tree' and a 'woman-tree'. Now, another strange thing is rendering while I type. You'll see that later.
I tried to get NgPLant to accept meshes as leaves. Various attempts failed. It needs obj files which are unwrapped and have normals exported. However, any of every model I tested did not lead to success, except the extremely simple box I exported from Blender.
Here the result.
I just noticed you'd sent me a message. I just sent you a link to the packet I wanted you to see. Have a ton of fun. There is a somewhat unusual process required to prepare a leaf mesh for usage in ngPlant, and I find Bryc eto be the essential piece in terms of model building. No time to go into full detial now but we will resume this conversaion soon. All the best!
Rashad: Thanks, I'll study it and try to make good use of it. In the mean time, I made some progress, trying simple meshes in Blender and actually getting some results. Slowly building up to more realistic forms, I think. Here, to show my 'progress' a kind of 'paperleave tree'
Hansmar,
A couple of things to remember as you build leaves for ngPlant. Here is what I do to prepare custom leaves for use in ngPlant in a non-Blender workflow.
Warning: Dont even bother to ask yourself how much time it took me to come up with this little plan. It will make you sad for me. Just be glad that someone has figured this all out and trust that it will work! Fun fun!
ngPlant Custom Leaf Tutorial
1. Model the leaf as perfectly flat in whichever software you choose. Leaf is exported as .obj format.
2. While still perfectly flat and free of deformations import the model into a UV mapping software. Map the leaf as best possible using a top view or Planar view. Export the leaf again. Place the leaf squarely onto the page.
3. Take the leaf into Carrara or whatever software you will use to deform the leaf with ruffles, curves, or whatever. Now is also the appropriate time to add any painting you want the leaves to have. Export the model.
4. Import your leaf into Bryce 7.1. The reason being that we are going to use several Bryce functions mostly related to scaling and positioning.
NOTE: ngPlant requires that scale and orientation information to stored within the .obj file. As you may have noticed within ngPlant there are no scaling options available for imported g-meshes as they're called. Bryce can do this for us because Bryce luckily saves scale and orientation information with its .obj files.
A. Within Bryce, create a decoy "branch" that will serve as a reference to help aling the leaf with the ends of the tubes as they will appear in ngPlant. From the Additional Primitives select one of the cylinders with a tapered end, I usually use the 60% version. Give it a bit of height by stretching it out. Then in the Attributes rotate the cylinder +90degrees along the Z axis. Reduce its altitude from the default 10.24 to absoloute 0. Also using a top view, you want to ensure that the narrow end of your tube arrives at exactly 0,0,0. Too bad we cannot measure the positions of polygons directly within Bryce. Moving forward; you may find it useful to remove the ground plane completely at this point as you will need to be able to see whats happening at 0,0,0 very effectively.
B. Notice the two leaves in the example image. The blue leaf is the orientation your leaf might have when you initially import it into Bryce. Most leaves have stems that extrude directly outward from the back along the same plane as the rest of the leaf so in most cases you would only need to rotate the leaf along the Y axis. But in this example I'm demonstrating with this particular and highly complex leaf monstera deliciosa, that the stem extends out of the the back end of the leaf facing downward at a perpendicular angle. Thus in order for the monstera leaf stem to match the decoy branch the leaf must be rotated along both the Y and Z axes.
C. Once you've got the proper orientation for your chosen leaf, now lower your leaf position until its stem aligns with the decoy branch. Also note that scaling is important. If you want the leaf to appear as different sizes in ngPlant you must do that here as I have done. The blue is smaller than the green leaf. The size difference you observe here in Bryce will be the same size difference they demonstrate in ngPlant. Export each leaf individually as.obj with unique names.
D. ****NOTE: Bryce has a bug where when it exports a .obj it flips the UV map upside down. For this reason you will need to import your leaves once again and one at a time again into your UV mapping software and correct the upside down UVs. Export the model once again.
E. You've probably noticed that ngPlant is quick to reject an imported leaf if there are any statements in the code that it does not understand. To void this, you need to edit the code of the leaf directly. Not as scary as it sounds, quite simple actually.
AA.Open NotePad. You will find your leaf mesh .obj, and you will open it in Notepad.
BB. Most often any offending statements are found just above the F Sequences. Bascially just remove whatever information is listed there. Save the file. You will find that it now imports reliably into ngPlant.
F. Now that it's in ngPlant, you can use the usual tools to further tweak its rotation and position on the stem.
Now you're off and running!
Thanks very much, Rashad! Wonderful to have a real tutorial. I did not even make a leave yet. Still a lot to do to get the hang of this!