Creating Plant Life The vast diversity of flora around us is staggering, if we stop to think about it. Recent estimates of the number of earthly plant species alone are close to 450,000, with as many as 50,000 yet unknown. While this diversity wouldn't be practical to re-create in computer graphics, we can at least try to give the illusion of it. In this section we're going to create a small sampling of plant life that can be used to populate our recently finished landscape environment. Don't limit yourself to just the landscape tutorial, though. As you continue to build trees and other plants, it is a great idea to build a library of them and reuse them in your own environments!Modeling a Tree Modeling a tree can be a very daunting task because trees are so complex and have so many individual pieces. However, a tree can still be broken down into manageable parts. There is a lot of repetition in a tree, and that is what can help make it easier to model. The aim of this tutorial is to start simply and build complexity by using repetition of the different elements of a tree. If done in the right order, a fairly simple tree can be modeled quickly and efficiently.The Trunk
1. | Start with a new scene. Make a Box primitive with the following dimensions:- Length = 40
- Width = 40
- Height = 20
- Length Segments = 2
- Width Segments = 2
- Height Segments = 1
| 2. | Add an Edit Poly modifier to the box and select an edge in the middle of two perpendicular sides. Click the Loop button in the Selection rollout so that you have selected two loops of edges meeting at the center of the box on the top and the bottom. | 3. | Scale these edge selections outward equally along the X and Y axes until the box takes on a more circular shape from the top down (Figure 8.46).Figure 8.46. Making the trunk's base shape. [View full size image] | 4. | Draw a curved spline in the Front viewport above the box object. Once the spline is in position above the box and still selected, go to the Hierarchy panel and click the Affect Pivot Only button. Then click the Align tool in the Main toolbar, and click the box. Choose to align the pivot point of the spline with that of the box and also align their XYZ axes. Turn off Affect Pivot Only in the Hierarchy panel (Figure 8.47).Figure 8.47. Preparing to use Extrude Along Spline. [View full size image] | 5. | Select the four polygons on the top of the box and click the Settings button next to the Extrude Along Spline button. This will bring up the Extrude Along Spline dialog. Click the Pick Spline button and select Line01 in the viewport. Check the Align To Face Normal box and set the Taper Amount to 0.8. Click OK to close the dialog. This operation has formed the trunk of the tree (Figure 8.48).Figure 8.48. Extruding the polygon along the spline. [View full size image] | 6. | Before going on, it is best to unwrap the trunk so that it's ready for the next stepadding branches. Use the Unwrap UVW modifier to unwrap the trunk with three Planar projections. Unwrap the front of the trunk, the back, and the top. Stitch the front and back of the trunk together to minimize seams, and leave the top a separate piece (Figure 8.49).Figure 8.49. A quick unwrap of the trunk. [View full size image] |
Branches As in a real tree, the 3D branches are outgrowths of the trunk. Here's how to make them:
1. | Add another edge loop between the top two loops so that you can make branches at the top of the trunk. | 2. | After adding the extra loop, select every second vertical edge on the side at the top of the trunk and scale them up. This will make the branch cross-sections round (Figure 8.50).Figure 8.50. Preparing the trunk for extruding branches. [View full size image] | 3. | Create another spline to represent the curvature of a branch, and then select two polygons on the right side of the tree trunk's top row of polygons. Use the Extrude Along Spline tool and select Line02 to create the tree branch. Use all the same settings, including the Align To Face Normal and the Taper amount of 0.8 (Figure 8.51).Figure 8.51. Extruding a branch from the trunk. [View full size image] | 4. | Unwrap the branch in the same way that the trunk was unwrapped before continuing to the next step. | 5. | Select the end polygons of the branch, and then hit the Grow button in the Selection rollout until the entire branch is selected. Hold down the Shift key and Copy the branch polygons. Choose Clone To Element in the Clone Part Of Mesh dialog. Rotate them into place in front of the polygons where the next branch will connect to the trunk (Figure 8.52).Figure 8.52. Making a copy of the branch. [View full size image] | 6. | Repeat this for the other two branch positions. Delete the two polygons on the trunk where each branch will be connected. Right-click the Snaps Toggle button to open the Grid and Snap Settings dialog. On the Snaps tab, pick Vertex and Endpoint as the types of targets for the Snap tool. Close the Grid and Snap Settings dialog. Use the 3D Snap tool to snap the vertices of the branch to the vertices along the border of the hole in the trunk (Figure 8.53).Figure 8.53. Preparing to attach the copied branches to the trunk. [View full size image] | 7. | Once this is done for each of the branches, go into Border mode, marquee-select each of the trunk/branch borders, and right-click to bring up the Quad menu. From the top left Quad menu, choose Convert to Vertex. This will convert all the border selections to the vertices along those borders. Then use the Weld tool to weld the branches together all at once. If the vertices were properly snapped into place with the 3D Snap tool, they will weld without difficulty (Figure 8.54).Figure 8.54. Using Convert to Vertex before welding. [View full size image] |
RootsReusing Meshes and Maps Now that the branches are done, the next thing to model is the root system. Making the tree roots is simpler than making the branches because we will use the branch geometry and maps as our starting point. This is a good example of repurposing work to save time and effort.
1. | We're going to take the branches and copy them, rotate them upside down, and attach them to the bottom of the trunk in the same way the branches were attached. Since all these parts were unwrapped earlier, we don't even have to unwrap the roots again (Figure 8.55).Figure 8.55. Making the roots from the branches.
 | 2. | The next step is to reconfigure the unwrap so that it has fewer seams. This will make it much easier to map the roots later on. It will take some welding of seams and repositioning of unwrapped branches and roots, but the worst of the work is over. Open the file entitled Tree_Unwrapped.max and look at the Edit UVWs dialog for an idea of how it should look once it is put together (Figure 8.56).Figure 8.56. Reconfiguring the tree UVWs for mapping. [View full size image] | 3. | Now use Soft Selection to put the branches and roots in more natural and varied positions. Activate Soft Selection in the Soft Selection rollout and click the Paint button to activate Paint Selection. Paint the ends of the branches and then move them into the desired positions. Do the same for the roots. You can also use Soft Selection on its own, without Paint Selection, and set the Falloff and Edge Distance to control how much the selected vertices are affected (Figure 8.57).Figure 8.57. Using painted Soft Selection to select parts of the roots and change their shape. [View full size image] |
Entwining Two Trees Now that we have a tree that is unwrapped and ready for mapping, we're going to exercise the reuse principle again.
1. | Duplicate the tree and wrap this second tree around the first tree. The easiest way to do this is to select edges and then click the Loop button to select edge loops that are cross-sections of the trunk. These cross-sections can then be moved into positions around the first trunk and rotated to follow their new path. It will also be easier to wrap around the trunk if some new cross-sections are added (Figure 8.58).Figure 8.58. Duplicating the tree, adding edge loops, and wrapping the two trees around each other. [View full size image] | 2. | Next, add loose sheets of bark to the trees. One way to do this is to select a bunch of polygons along the trunk and Shift-Move them outward to create an Object Copy of the polygons just above the surface of the trunk. This way, they will also follow the surface of the trunk. Use the Shell modifier to give them thickness (Figure 8.59).Figure 8.59. Creating bark from the tree-trunk polygons. [View full size image] |
Leaf Canopy It's time to add some smaller branches and leaves to the big branches. In this case, since the tree is shaping up to look like a simple version of a bristlecone pine, the best idea would be to make pine needles for leaves.
1. | The best way to create the little branches is to copy one of the big branches and then scale it down in sub-object mode. Move the pivot point to the base of the small branch so that it can be duplicated by holding down the Shift key while rotating the branch. This will create arrays of small branches. Before we do additional branches, however, we must make some leaves. | 2. | Create a pine needle by making a small Plane object with one Length and Width segment to outline the needle's shape. Once the needle is modeled, map it with a UVW Map modifier right away and apply a material with a green Gradient Ramp map in the Diffuse Color slot. Once it is mapped, it can be duplicated. Once the pivot point of the needle has been repositioned at the base, the needle model can also be rotated and copied into arrays very easily (Figure 8.60).Figure 8.60. The pine needle and its material. [View full size image] | 3. | Make the arrays of needles by holding down the Shift key while rotating the needle along its Y axis. This brings up the Clone Options dialog, where we can specify the number of needle copies required to make a round cluster of eight to ten needles. Repeat this cluster assembly after rotating the needle along its Z axis and have a new cluster at a different rotation to the first. Do this a third time at yet another Z angle, and you have a fairly random-looking cluster (Figure 8.61).Figure 8.61. Creating a cluster of pine needles. [View full size image] | 4. | Attach this needle cluster to the small tree branch you created earlier and you've got a complete branch-and-cluster unit that can be duplicated all over the larger tree branches (Figure 8.62).Figure 8.62. A cluster of pine needles attached to a small branch. [View full size image] | 5. | Once again, because of the pivot placement we can create arrays of these branch clusters. The result is clouds of small branches spouting clusters of pine needles. All this complexity started out with one small branch and one pine-needle model. This is a great display of the power of reusing assets when assembling a 3D model (Figure 8.63).Figure 8.63. A cluster of small branches and pine needles created from one pine needle and one small branch. [View full size image] The small branches and pine needles will stay separate from the trunk and main branches so that we can apply Displacement maps to the trunk and big branches. These tree models can then be used to generate Normal maps in the same way that we used the high-resolution cliff models to render textures for the low- resolution cliff models. | 6. | Open the file entitled Tree_Displacement.max to see the results of this work. A hand-painted map was used to displace the mesh and functioned as a Diffuse Color map. | 7. | Open the file entitled Tree_NormalMap.max to see the result of applying the displacement-derived Normal map to the low-resolution tree (Figure 8.64).Figure 8.64. The final Normal-mapped tree.
 |
Figure 8.1. It is usually better to use XForm when scaling a model or group of models because it doesn't negatively affect their transform matrices. For a more technical explanation, go to www.paulneale.com and look at his Transform Matrix tutorial. It's really just a short explanation of how the 3ds max Transform Matrix works, but it is worth the read.Grass The ground still looks bare, especially around the tree, so now let's model some grass to put on the herocliff in the scene.
1. | Start by creating a plane with the following dimensions (Figure 8.65):- Length = 400
- Width = 30
- Length Segments = 4
- Width Segments = 2
Figure 8.65. Creating the plane that will become a blade of grass. [View full size image] | 2. | Convert the plane to an editable poly. Select the top three vertices and choose Collapse in the Edit Geometry rollout. Name the plane GrassBlade01. | 3. | Turn on Use Soft Selection in the Soft Selection rollout. Set the Falloff value to 220. Move the top vertex back and downward, then rotate it so that the plane has a nice curvature. Finally, scale the vertex in the X axis so that the grass tapers gradually as it comes to a point. Exit sub-object mode, then apply a TurboSmooth modifier to the grass model and then a UVW Unwrap modifier to make the mapping stay in place (Figure 8.66).Figure 8.66. Shaping the blade of grass and getting it ready for mapping. [View full size image] | 4. | Apply a Standard material to the grass model. In the Diffuse Color slot, add a Stucco map and choose to tile it 30 times in the X axis. Leave the other axis at the default value of 1. Choose two different shades of green for the two stucco colors. Name the material Grass. See Grass.max to see the grass model (Figure 8.67).Figure 8.67. The simple GrassBlade01 model. [View full size image] | 5. | Using the same technique, create two other blades of grass that are modified copies of the original. Make one copy taller and straighter. Make another copy that curves out to the side. | 6. | Now use these three blades to make a lot more with the Scatter tool. Choose GrassBlade01 and go to Creation panel > Geometry > Compound Objects > Scatter. In the Scatter Objects rollout, select Use Transforms Only. In the same rollout, under Source Object Parameters, enter a value of 600 for Duplicates. This will create 600 blades of GrassBlade01. | 7. | In the Transforms rollout, enter a value of 90 degrees for the Y value of the Rotation group. For the Local Translation group, enter the following values: X = 900, Y = 200, Z = 900 (Figure 8.68).Figure 8.68. Using the Scatter tool to distribute the grass models. [View full size image] | 8. | For the GrassBlade02 model, use the same method, but this time change the Local Translation values to X = 800, Y = 200, Z = 800. For GrassBlade03, change the Local Translation values to X = 1000, Y = 200, Z = 1000. | 9. | We now have a small patch of grass that can be used for the top of the herocliff. Open the file entitled Landscape_Final.max. For this file, the tree was scaled up using the XForm modifier and was added to the top of the herocliff. The grass was then added to help the tree blend in with the rock. A gradient material was also added to the herocliff to make the top of the cliff look like soil (Figure 8.69).Figure 8.69. A render of the final landscape scene.
 |
If you've made it this far, be proud of what you've accomplished! It's no small task building a 3D environment from the ground up, but it can certainly be a rewarding experience. After finishing this environment tutorial, you should be able to create your own fantasy environments. With any luck, you've understood the importance of project managementany modeling task becomes much easier when you've planned out your work in a series of stages. This really reduces the learning curve for any project. Last, always remember to reuse your modeled assets whenever possible to save time and create complexity within your scenes.There's one last item on the agenda for this chapter. How can the words "microscopic" and "dramatic" be used in the same sentence? Read on to expose the dramatic lives of microbial organismsand learn some more cool modeling features of 3ds max 7. |