So I had a little time to burn over the weekend, and decided to figure out a good way to make some decent looking trees without having to result to unconvincing textures or external libraries. This all came from looking at the new Quantum Transformation tools that David Rutten released for v4 a week or two ago (which you can find here). The tools are really good at making random transformations on a number or series of objects, so I decided to make it work for trees. Here's the step by step.
Step 1-Make the leaves
The leaves are important because this is whats going to determine how intense the trees are to render. First off the leaves are not going to be mapped. This helps with two things: there won't be any maps to load, and we won't have to worry about transparency maps increasing our rendertimes. For explanation of transparency mapping's affect on rendertime (only an issue for large numbers of objects...like tree leaves) there's an explanation here (you'll have to log in to the CG forum).
So because our leaves aren't going to be mapped we are going to need to make the leaves ourselves, which leads to the second point of making the leaves. Leaves must be meshes. Having leaves as meshes gives us the opportunity to keep the polycount down by controlling how many polys are in each leaf. I just made a jagged leaf like shape with a polyline, and used the command MeshPolyline to make the mesh. In the first example I used 1 leaf which had about 6 polys in it, and in the second example I used 3 different leaves with 4-6 polys per leaf.
Step 2-Materials
I didn't want to make things too complicated, so the material for the leaves are pretty simple. I just have a solid diffuse color for the leaves; no crazy mapping, and no maps. I did put a reflection layer with very glossy reflections (.4) with only 2 subdivisons. I don't think it really mattered too much whether the reflection were there or not, but it was worth a shot. With the first example I just have one material on all the leaves. The second example has three different leaves, so I just assigned each a material with a different color before I started working with them.
Step 3-Arraying the leaves
The actual creation of the tree starts with a simple array. The size of the array depends on how dense you want the tree, and how many different leaves you want to use. Keep in mind that having a very dense array will lead to more faces to be rendered. Which may take more time and memory.
Step 4-Transformation of the leaves
Now it comes time to start making all those regular leaves crazy. I started out by using the QuantumSwirl command locally on all the leaves. This will randomly rotate the leaves about there own center. I did this on both the xy plane and a vertical plane (either the xz or yz will do). Next was to start moving around those leaves. For this I used the QuantumJump command, which would move the leaves random distances. I did this in 3 directions x,y, and z. You could use the QuantumBloat3D command, which will randomly scale your leaves in all three directions, but to make this one work I had to manually input the limits of the scaling factors. This turned out fine, but for me, I consider it an optional step. At this point the leaves are pretty well randomized. So now we've got to make it look more like a tree.
Step 5-Shaping the Tree
Unfortunately this is the step that is the least fun. Now its time to make the shape of the tree. For this I made a circle/blobish curve and used that to guide my selection. Because there isn't a way to region select meshes (points can be done via the lasso command and David Rutten's region select plugin in rhinolabs, but nothing else) you'll have to manually select the leaves that lie outside of your guide (no need to be exact, just get the shape roughed out). You'll need to do this in all 3 planes through either the top/bottom, right/left, or front/back viewports. Once you've done that then the tree should look pretty decent.
Step 6-Final Transformations (making more trees)
Now that we have our tree pretty much ready to go, I like to perform a final randomization. For this I used the QuantumSwirl command again, except this time rather then have it act locally on each of the leaves, I had it work on all of the leaves at once. I only did this in the xy plane, but you could do this in one of the vertical plane as well. Also, you can use this first tree you made to make other trees by repeating this step if you wanted. You could also do a quick local rotation as well. Now you've got plenty of trees
First Example: 1 leaf-1 color
Second Example: 3 leaves-3 colors
As you can see I didn't worry about making trunks. you can make those as simple or as complicated as you want, and imho the leaves make the main impression of the trees anyway. Hope this is helpful to some of you people out there. Any comments, questions, complaints, or concerns...just post.
Step 1-Make the leaves
The leaves are important because this is whats going to determine how intense the trees are to render. First off the leaves are not going to be mapped. This helps with two things: there won't be any maps to load, and we won't have to worry about transparency maps increasing our rendertimes. For explanation of transparency mapping's affect on rendertime (only an issue for large numbers of objects...like tree leaves) there's an explanation here (you'll have to log in to the CG forum).
So because our leaves aren't going to be mapped we are going to need to make the leaves ourselves, which leads to the second point of making the leaves. Leaves must be meshes. Having leaves as meshes gives us the opportunity to keep the polycount down by controlling how many polys are in each leaf. I just made a jagged leaf like shape with a polyline, and used the command MeshPolyline to make the mesh. In the first example I used 1 leaf which had about 6 polys in it, and in the second example I used 3 different leaves with 4-6 polys per leaf.
Step 2-Materials
I didn't want to make things too complicated, so the material for the leaves are pretty simple. I just have a solid diffuse color for the leaves; no crazy mapping, and no maps. I did put a reflection layer with very glossy reflections (.4) with only 2 subdivisons. I don't think it really mattered too much whether the reflection were there or not, but it was worth a shot. With the first example I just have one material on all the leaves. The second example has three different leaves, so I just assigned each a material with a different color before I started working with them.
Step 3-Arraying the leaves
The actual creation of the tree starts with a simple array. The size of the array depends on how dense you want the tree, and how many different leaves you want to use. Keep in mind that having a very dense array will lead to more faces to be rendered. Which may take more time and memory.
Step 4-Transformation of the leaves
Now it comes time to start making all those regular leaves crazy. I started out by using the QuantumSwirl command locally on all the leaves. This will randomly rotate the leaves about there own center. I did this on both the xy plane and a vertical plane (either the xz or yz will do). Next was to start moving around those leaves. For this I used the QuantumJump command, which would move the leaves random distances. I did this in 3 directions x,y, and z. You could use the QuantumBloat3D command, which will randomly scale your leaves in all three directions, but to make this one work I had to manually input the limits of the scaling factors. This turned out fine, but for me, I consider it an optional step. At this point the leaves are pretty well randomized. So now we've got to make it look more like a tree.
Step 5-Shaping the Tree
Unfortunately this is the step that is the least fun. Now its time to make the shape of the tree. For this I made a circle/blobish curve and used that to guide my selection. Because there isn't a way to region select meshes (points can be done via the lasso command and David Rutten's region select plugin in rhinolabs, but nothing else) you'll have to manually select the leaves that lie outside of your guide (no need to be exact, just get the shape roughed out). You'll need to do this in all 3 planes through either the top/bottom, right/left, or front/back viewports. Once you've done that then the tree should look pretty decent.
Step 6-Final Transformations (making more trees)
Now that we have our tree pretty much ready to go, I like to perform a final randomization. For this I used the QuantumSwirl command again, except this time rather then have it act locally on each of the leaves, I had it work on all of the leaves at once. I only did this in the xy plane, but you could do this in one of the vertical plane as well. Also, you can use this first tree you made to make other trees by repeating this step if you wanted. You could also do a quick local rotation as well. Now you've got plenty of trees
First Example: 1 leaf-1 color
Second Example: 3 leaves-3 colors
As you can see I didn't worry about making trunks. you can make those as simple or as complicated as you want, and imho the leaves make the main impression of the trees anyway. Hope this is helpful to some of you people out there. Any comments, questions, complaints, or concerns...just post.
Comment