In this tutorial, we will create an easily customizable preset for tree branches using the Blender addon "Sapling." Then, with a particle system we will cover the branches in realistic pine needles. We will then render these branches to planes, and apply them to a trunk object as a separate, new particle system.
This method will allow for the creation of an endless variety of either very high resolution trees -- retaining the combined particle systems -- or medium to low poly trees as shown in the example image, by converting the branch particles to real objects and pruning as needed.
NOTE: This tutorial is beginner friendly, but it does require some basic familiarity with viewport navigation and common commands. Hotkey suggestions are highlighted in green.
The first step is to open Blender properly, to allow for the export of addon presets. Right click the Blender.exe file and choose to run as administrator. Without this step, you may receive an error as Blender attempts to save the preset file to a location that is protected from editing. The same steps can be followed without saving a preset, but take a bit longer.
Delete default cube.
Enable Sapling addon: File (1) > User Preferences > Addons > Add Curve Sapling (2).
Add new Sapling/Tree Curve object: Shift A > Curve > Add Tree.
Expand Sapling window in tool panel T.
Enable Bevel (1), set handles to Auto (2).
Navigate from Geometry settings to Branch_Splitting settings (3).
Decrease Base Size to drop branches, increase Segment Splits (branching) of second level, decrease Branch Radius to increase base radius of branches.
Navigate to Branch_Growth settings.
Add negative Curvature to the first level. Switch to Right Orthogonal view Numpad 3 (Numpad 5 toggles between Perspective and Ortho) to see changes.
Navigate back to Geometry settings.
Give preset a name and press Save.
Move the first branch along Y axis, out of the way. Editing the new object in this way will confirm your settings and close the Sapling window.
Add a new Sapling/Tree Curve: Space > Sapling. Load your saved branch preset, randomize by increasing or decreasing seed number until you find a variation you like, select and move that version aside, repeat for as many branch variations as you want. I chose six because they fit with a square bark texture onto a square texture map, four across, and two on the side.
Remember to save often.
Select Sapling branches and in the 3D view, select Object > Covert to> Convert to Mesh.
Select any single branch, rename to differentiate it from other branches, so you can find associated branch and sub-branch pairs easily in the Outliner panel after you separate them. Suggestion: "Branch_A (B, C, D, etc.)". Sub branches separated from Branch_A would be automatically named Branch_A.001.
Enter Edit Mode Tab, in Edge Select mode Alt Select a single vertical edge loop of the main first level branch. Mark a seam to allow smooth unwrapping of the main branch: in the 3D view, select Mesh > Edges > Mark Seam.
In the Material tab of the Properties panel, assign a new Material with full Intensity (1), zero Specular (2), and in the Texture tab of the Properties panel, assign a new Image Texture (3). Browse to assign a premade bark pattern such as the image shown below, available for purchase here (4) and set Mapping to UV (5).
Open UV/Image Editor view in a second viewport by clicking and dragging on the double slash marks in the upper right corner of any open viewport, and changing the Current Editor Type in the bottom (or upper) left corner to UV.
In the UV/Image view, browse to your new bark image, to display it in the viewport.
Mouse over the main branch, press L (or Select > Linked from the 3D viewport) to select just the parts connected to the main branch.
Press U to bring up Unwrap menu. Choose basic Unwrap for main branch.
Press P to separate main branch object from sub-branches, choose Selection. (Note: this makes isolating particles to the sub-branches simple, but advanced users could assign vertex groups instead.)
Select all remaining sub-branches A. Press U to bring up Unwrap menu. This time, choose Smart UV Project. Use the default Angle Limit setting 66. This does not provide a seamless unwrap, but seams are not noticeable at this level of detail.
Browse to the bark image in UV/Image window again, and make sure that branch UVs are aligned in the same direction as the bark pattern. Rotate, move, scale as desired (optional).
Repeat process for for all other branch pairs, naming, assigning material, UV unwrapping, separating parts.
Remember to save often.
With sub-branches selected, add an additional material for the pine needle color again with full Intensity and zero Specular, name it appropriately.
Set the Strand size Root to 2, and Tip to 1 to make the needles slightly wider at the base. Adjust Tangent Shading Shape to 0.9 to fill out the middles (Tip: choose the grass-like icon in the Preview window to see Strand settings in action).
Add a Blend texture. Enable Colors Ramp, and by Ctrl clicking on the gradient strip, add two more color stops. Select the black stop and set the Alpha value to 1 (full), then choose a dark brown color. Adjust remaining color stops as shown --with desaturated green shades fading to yellow -- and set all Alpha values to 1.
Set Blend to Linear and Horizontal, and Mapping Coordinates to Strand/Particle.
Optionally to add slight variation to value, add a cloud texture with a default Colors Ramp enabled, Mapping Coordinates to Strand/Particle, Influence Color set low..
With sub-branches still selected, in the Particles tab of the Properties panel, add a New particle system.
Change Type to Hair (1).
Enable Advanced settings (2).
Reduce segments to the minimum 2, as pine needles are generally straight and will not need to bend in the middle (3).
Increase the Emission number (number of needles) to around 5,000 (4), and Hair Length to about 0.2 (5).
Increase Velocity of Emitter Object X and Y by 0.010, and Z by 0.08 to give them a natural outward growth (7). Increase Velocity Random to 0.02 (8).
Increase Physics Forces Brownian to 0.02 for a hint of bending (9).
Set Render material to the needle material created above (10).
Remember to save often.
In Render view, set Resolution dimensions to a ratio of 1:2, power of twos (128 x 256, 256 x 512, 512 x 1024, 1024 x 2048, etc.) for a long, thin branch texture that is game engine-friendly (1).
Set Render Resolution to 100% (2).
Set Shading Alpha to Transparent (3).
With all branches selected, in Front Orthographic view Numpad 1 center view on selected object Numpad ".", Ctrl Alt Numpad 0 to align camera to view, select camera and move G to arrange camera to frame all branches, just above base of branches.
Set Camera to Orthographic, and adjust Scale to surround even the longest branch.
In side view Numpad 3, arrange a Sun Lamp with default settings and Shadow enabled so that light falls down the branch naturally, from where the top of the tree will be (upward in current view).
Select first branch pair for rendering and leave showing. Hide others from render by disabling the camera icon in Outliner panel.
Make sure to add the needle particle effect to every set of sub-branches as you go, and apply the same branch and needle materials to sub-branches.
In the Render view press Render.
Save the result as an image: Image > Save As Image.
Repeat the above process for all branches: showing/hiding pairs, adding needle particle and materials, render and save as image.
In an external image editor of your choice, composite branch textures with trunk texture as shown below. Save as a transparent .png.
Remember to save often.
In a new file or new scene, Add a new Mesh Cylinder object: Shift A > Mesh> Cylinder. (Note: ensure new objects are added to the center of the world by first setting cursor to Center: Shift S > Snap Cursor to Center)
In the tool panel T set Vertices to 6 (1), Depth to 10 (2), and Location to 5 (3) on the Z axis (to set the base at zero).
Set Shading to Smooth, so that the trunk appears rounded (4). Making this edit will confirm your settings and close the Cylinder tool panel.
Enter Edit Mode Tab and scale S the top edge loop until the opening is no longer visible, but not collapsed or overlapping.
Mouse over a vertical edge Ctrl R and scroll forward to subdivide the model horizontally, at least six times. Right click, then Left click to confirm.
In multiple views (Numpad 1, Numpad 3, Mouse wheel button + drag) select any of the new edge loops Alt click, enable Proportional Editing to distribute actions smoothly (increase area of effect by scrolling back while moving, if necessary), and move G to give the trunk some natural curvature. Scale S the trunk in the Z axis if necessary.
Alt select a vertical edge loop and Ctrl E > Mark Seam.
Select all A and bring up UV Mapping menu U. Select basic Unwrap.
Assign a new material with the same full Diffuse Intensity and zero Specular as before, but this time enable Transparency, and set the Alpha to zero as well. This will be the material for both trunk and branches. Set Shadow to Receive Transparent, so that the branches may cast shadows on themselves.
In the texture panel, add the composited branches and bark as an Image texture.
Make sure that Use Alpha is enabled and that Mapping is set to UV. Enable Influence Alpha, and leave set to 1.
In UV/Image Editor view, scale down S and move G the trunk UVs onto to the bark texture space as shown above.
Remember to save often.
Exit Edit Mode. Hide tree trunk for now H.
(Note: ensure new objects are added to the center of the world by first setting cursor to Center: Shift S > Snap Cursor to Center). In top view Numpad 7, Add a new Mesh Plane object: Shift A > Mesh > Plane. In the Plane tool panel T, set Location to 1 in the Y axis to align the base of the plane to the center of the world.
In the 3D viewport and with the 3D cursor located at the center of the world/base of the mesh, choose Object > Transform > Origin to 3D Cursor. This will set the object's point of rotation, scale and movement to the base of the planar tree branch we will be creating.
Tab into Edit Mode. Disable Proportional Editing if you haven't already. In Vertex select mode Ctrl + Tab, choose the top most vertices, and holding Ctrl to snap, drag G upward in the Y axis until your rectangle is twice as long as it is wide (four large grid squares by two large grid squares).
Select all A and unwrap U. Assign the material with the composite texture to the plane, and in the UV/Image Editor window, rotate R (Ctrl while pressing R to snap) and line up the UVs to the first branch. Enable Texture view in the 3D viewport if necessary, to make sure that the base of the branch image is at the bottom edge of the plane in Top Ortho view 7.
Mouse over a vertical edge Ctrl R and scroll forward to subdivide the model horizontally, at least twice. Right click, then Left click to confirm, then mouse over a horizontal edge, Ctrl R and Right click then Left click to subdivide the model once vertically.
Exit Edit Mode Tab, and Shift D duplicate the then G drag duplicate planes aside in the X axis (in Top Ortho view) until you have as many planes as branch variations that you rendered (in my case, six).
Selecting one plane at a time, enter Edit Mode Tab again, and move the UVs for that plane to another unique branch image on the composite texture, until all six planes display one of six different branches.
Scale S UVs if necessary to surround all branches, but leave some variation in height and width for realism. Place the bottom middle subdivision at the base of each branch image as shown below.
Selecting one plane at a time again, enter Edit Mode Tab, and rotating the view Mouse wheel button + drag around the models as needed, move individual vertices up and down, to give the branches some vertical depth and randomness. For realism, give the main branch part (the center line) an upward curve as shown below.
Finally, exit out of Edit Mode Tab, select Shift click all the new planar branches, and Ctrl G to place all planar branches in a new group. (Tip: Best practice is to give your new group a name (via the Tool panel T or the Object tab of the Properties panel, but as this tutorial uses only one, this is optional.)
Press M to move the group to a new layer, and select any of the empty squares in the layer menu pop-up.
Remember to save often.
Unhide tree trunk Alt H.
Select tree trunk, and in the Particles tab of the Properties panel, add a New Particle effect. Again, change Emitter to Hair. You'll note that the entire trunk is evenly covered with hair particles. We want the hair particles (which will be converted to planar branches) to be distributed more naturally: none at the base, longer at the bottom and shorter at the top.
In the 3D view, enter Weight Paint mode (1), and change the display type to Wire (2). The solid blue color first appearing on the trunk indicates that vertex weights are currently set to zero all over. The Maximum weight color is red, transitioning from orange to yellow to green and finally to blue.
Using the Brush tools in the Tool panel T we are going to paint a gradient. The Weight setting by default is 1. Painting a gradient from full red to blue will result in too dramatic a transition, so reduce the strength of the brush to 0.3 (3), and set the Blend mode to Add (4).
To begin painting a gradient, press the Weight Gradient button (5), then click and drag from the bottom of the trunk upward (6). In wireframe view, painting will affect all sides of the object. (Note: You must press the Weight Gradient button every time you wish to paint a gradient, rather than a brush stroke.)
Attempt to create a gradient similar to the gradual green to dark blue shown above. You may need to drag above the tree top to add just a touch of weight to the tip. Using the Add Blend mode allows you to repeat the stroke, adding more weight as needed.
To view the effect of your painting in the viewport, navigate to the Vertex Groups section of your new effect in the Particles panel, and in the Length section, assign the new vertex group that appears there, named Group (7). (Note: Vertex groups can be renamed in the Data tab of the Properties panel.)
Now enter Edit Mode, and still in wireframe view, Ctrl + Tab choose Face mode, A to deselect All, B and drag to box select the bottom two segments of the trunk.
In the Data tab of the Properties panel, with the new Vertex Group named Group selected, drag the Weight slider to zero, and click Assign. This will assign a weight of zero again to the bottom branches.
Tab out of Edit Mode, and set the 3D viewport display mode to Texture. In the Particles tab of the Properties panel,
Skip down to Render, and select the Group button (1), then choose the collection of branches named Group created earlier, from the Dupli Group drop-down menu (2).
Back at the top, set the Emission Number to about 500 (3), fewer if you are hoping to reduce the overall poly count of your final tree. Set Emission Hair Length to 10 (4) (Note: this setting will automatically increase to 100 as you follow the next steps).
Increase Velocity Emitter Geometry Normal to around 25 (5), to make the branches even longer. Increase the Emitter Geometry Tangent to 5 (6), to turn the branches in the correct direction, and add a little downward velocity.
Increase Physics Random Size to 0.5 (7), and Forces Brownian to 1 (8), to add a little randomness.
To view the unshaded textures in the viewport, set the display mode in the 3D view to Solid. Open the Number panel N and in the Shading section choose GLSL from the drop down menu, and enable Textured Solid.
Your tree is complete! At this point feel free to adjust anything about the trunk (mine looks too large at the base, so I'll scale it down S in the X and Y axes Shift Z), the weight painting,or the particle settings to your liking. On the next page you'll find instructions for how to convert the particles to objects, so that the tree can be used in a game engine or other application.
Remember to save often.
If you'd like to create multiple versions of trees from the same set of branches, consider saving your .blend file as a new file before the next step.
To convert the particle branches into real planar branches, in the Modifier tab of the Properties panel -- with the tree trunk selected -- press the Convert button in the Particle System Modifier.
After converting, you'll notice that there are an excess of particle objects along the trunk, which are too small to see. In fact, some of them are no more than single vertices. To correct this, we'll select and hide the trunk and branches that we do want to keep, and delete the remaining stray vertices.
The trunk and branches are all separate objects now, so select and hide H the trunk, camera, lamp or anything else you may have placed in the view that should not be edited. With only the branches selected A, Ctrl J to join the branches.
Tab into Edit Mode. Notice that in vertex select mode, you can see the single vertex particles that we want to delete. In the face select mode however, they disappear because they do not constitute planar surfaces.
In vertex select mode, first press A to deselect any already selected parts. Then in face select mode, box select all of the planes in view (you may need to rotate your view), then hide them H. Make sure to follow these steps in order, or you may still have the extra parts selected that you don't want to hide from deletion.
When your face select mode view no longer displays any planar branches, return to vertex select mode, select all and Delete Del Vertices.
Return to face select mode, unhide all Ctrl A, and in Bottom Orthogonal view Ctrl 7, select the connected planes of individual branches L that are too small to contribute to the overall shape, and Delete them as Faces or Vertices Del. It may be easier to view distinct branches by temporarily turning off Textured Solid Shading in the Number panel N.
Exit Edit Mode Tab, and unhide all Alt H. If your tree trunk still has a particle system applied, delete that from the Particles tab in the Properties panel. Finally,select your branches and the trunk, and Ctrl J to join them.
Set up lighting, camera, and render as you wish. You may need to make sure that the composite material is still assigned, if you have saved to a new file or otherwise moved your assets. If you want to export your new tree as a game object, I recommend first Applying all transforms: Location, Rotation, and Scale Ctrl A.
See finished tree models, in a Unity 3D demo environment here.