Posted: Sep 15, 2011
Published by: RLTimmons
Software: Autodesk 3ds Max Design
If you skipped the first two tutorials you will need to return to Part I and download the work files needed for parts III and IV of this tutorial. Parts III and IV are written for intermediate level artists who have a fairly good knowledge of mr Proxies and Object Paint.
Grass is random in the way it grows and for a realistic lawn or any project involving grass to be realized, random is the key to its creation. A typical species of turf grass can have blades of differing heights, bends, folds, twists, scaling, etc. Because of these highly varied differences in the way individual blades of grass develop, Object Paint is the tool of choice for the distribution of the grass blades. And because of the high count of blades that must be used to construct a realistic lawn, mr Proxy Objects must be utilized to package the blades for that distribution. This part of the tutorial is the most difficult and time consuming to accomplish, make sure you've set aside enough time to complete it. Open the file HalfBlade.max. See Image_017 below. The leaf of grass we'll be creating is based upon St. Augustine grass, a thick and lush turf grass common to tropical and subtropical areas. Our grass blade will be whole and not manicured as it gives a more pleasing appearance.
Image Description: Image_017
When creating grass blades as Reference objects there is a sequence of operations that must be followed before the object is ready to have an mr Proxy Source Object created from it. Because St. Augustine grass blades have an appreciable center fold running along its growth axis we must first apply mapping coordinates to it while it's still flat to our work angle. Select the blade, go to Modifiers>UV Coordinates>UVW Map. In the Modify Tab, make sure Planar is selected in the Mapping section, deselect Real World Map Size (if active), set Alignment to Y, then click Fit to make sure the planar map is suitably sized for the grass blade. See Image_018 below:
Image Description: Image_018
Collapse the Modifier Stack (Collapse All). With the mapping coordinates applied we're now going to give the blade a turn of 12 degrees to start the fold in the grass blade. Switch to the top view, select the blade and with the Select and Rotate tool chosen enter a Z value of 12 into the Coordinates Display beneath the viewport to turn the halfblade 12 degrees counter clockwise. See Image_019 below:
Image Description: Image_019
Return to the front view. Return to the Select and Move Tool. We will now make the grass blade whole by mirroring a copy of the blade's left side to the right side. With the blade still selected, click the Mirror button, and in the Mirror: Screen Coordinates panel set Mirror Axis to X and Clone Selection to Copy, then click OK.
Image Description: Image_020
The next step is to attach both sides to each other then weld the center vertices to complete the blade geometry. Click the Attach button in the Edit Geometry section of the Modifier panel, then click the other half of the grass blade. Right click in an empty area of the viewport to deselect Attach. Return to the top view and if necessary, zoom in close to the blade. Go to Vertex Sub Object mode. From this angle the vertices that make up the grass blade can be very close to each other and the center column of vertices may be difficult to select. Using the center Y axis line of the grid as a guide, carefully select the 26 center vertices. Before you attempt to weld, make sure the vertex count is 26 (see Image_021 below). Once you have the 26 chosen, slide down the Modify panel till you reach Weld in the Edit Vertices section. The proximity of the chosen vertices is too close to each other for us to use Weld at its default settings. Click the Settings button to the right of the weld button to open the Weld Vertices Caddy. Set the Weld Threshold value to 0.05" then click the caddy's checkmark to complete the operation. The total number of vertices should be 43 and the number of center vertices should read 13. Exit sub object mode.
Image Description: Image_021
Once the vertices are welded we'll make a few smoothing adjustments to the polygons that make up the grass blade. In the front view, use F3 to set the view to Smooth+Highlights if not already in it. Our blade has a sharp fold running down its center and the center line should be sharply defined as seen in the far right blade in Image_022 below. If you happen to be looking at a blade such as seen in the far left example of Image_022, you'll need to independently adjust the smoothing values of each side of the blade. Follow these steps: Hit F3 again to go to wireframe mode. In the Modify panel select the Poly sub object level then select all the polygons on the left side of the blade (see Image_022 below, second from left). Slide down the Modify panel to the Polygon: Smoothing Groups section, make sure Autosmoothing is set to 45.0 then click the Autosmooth button. Repeat this for the right side. When done, return to the Selection section and click the polygon sub object highlight to exit sub object mode. Hit F3 to return to Smooth+Highlights where you should see a well defined line running down the center of the grass blade.
Image Description: Image_022
This completes the construction of the grass blade. The next few steps will prepare the blade for use in constructing a bundle of blades that will become the Reference Object. Before we can do this it's imperative that you understand a few facts about the "original" local axis of any object used in Object Paint or Scatter. Refer to Image_023 below:
Image Description: Image_023
All transform/align operations in Max Design respect the new position of a pivot point when it has been shifted using Adjust Pivot, however, Object Paint and Scatter (found in the Compound Objects group) that concern this tutorial do not. Object Paint/Scatter uses the "original" pivot point as the reference point for its' operations (in fact, you'll find numerous operations in Max Design that respect only the "Original" pivot point position, Bend, that we'll be using a few moments is one of them). The original point can be either the pivot created when the object was created/modeled or the pivot's final position after an object was created from attached objects. An example of the latter of these two is the half blade you started this part of the tutorial with, as it was created from several sections that were attached to each other to form the halfblade. The pivot point you see in (A) of Image_023 above was actually shifted to that position using the Adjust Pivot section found in the Hierarchy tab. Reset Pivot Point will shift the pivot point back to its original position (B). In order for us to effectively use the grass blade in either Object Paint or Scatter we must redefine the original pivot point for the blade. As mentioned, original pivot points can be shifted when attaching objects to each other. To do this, we're going to create a simple primitive with a pivot point centered at its base. In the perspective view, create a box smaller than the grass blade and convert the box to Editable Poly. In the Coordinates Display, right click on each of spinners to move the box to the center of the grid. See Image_024 below:
Image Description: Image_024
With the box still selected, Attach the grass blade to it. The grass blade now shares the box' original pivot point and because the base of the blade is already centered at XYZ = 0, 0, 0, we now have an original pivot properly positioned for our blade. Right click in the viewport to deselect Attach. We will now remove the box and leave it's pivot point at the base center of the grass blade. Go the Modify panel to enter the Element sub object selection mode. Select the box and delete. Exit Element sub object. Rename the blade GrassBlade. Both Object Paint and Scatter will now see the grass blade's local pivot point at its new position as if it were the original pivot point position. Click the Application button (upper left corner) and select Save As and name the file GrassBlade and click Save. Repeat this again, this time naming the file GrassBladeBU. In the event anything goes wrong we'll have the original file to return to. For now, we'll work with the back up file. Let's now apply some bends to a few copies of GrassBlade and create the bundle.
In the front viewport, select the grass blade, hold down the Shift key and drag a copy of the blade to the right. In the Clone Options panel, select Copy under Object and set the number of copies to 6. Select the far left blade and switch to the left viewport. Go to the Menu Bar, select Modifiers > Parametric Deformers > Bend. In the Bend Parameters panel enter a value of 30 for Angle and a value of 90 for Direction. Rename GrassBlade to "30". Now, take a moment to see that the bend of the grass blade took place at the base. The Bend modifier's operations are based upon the position of the original pivot point. If we had applied the Bend modifier to this blade without repositioning the original pivot point in Step B the modification would have taken place at around the center of the blade instead of the base where we needed the bend to take place. Collapse the Modifier Stack. See Image_025 below.
Image Description: Image_025
Stay in the left viewport and select the next blade. As detailed above, repeat these same steps for the next six blades increasing the bend values to 45, 60, 75, 90, 105 and 120. Rename each blade after the amount of the bend you apply to them. When done, your scene should look like Image_026 below:
Image Description: Image_026
With the blades complete, we're going to make additional copies of them before arranging them into a bundle. In top view, select all the blades and with the Shift key pressed, drag a copy of the blades downward. Set Object to Copy and Set Number of Copies to 1. Next, select from the upper group the inner five blades and drag a copy of those upward. Again, set Object to Copy and Number of Copies to 1. Note, the original blade "30" is marked with an arrow. Refer to Image_027:
Image Description: Image_027
When you have the blades ready, select all of them and shift them to the right far enough to create a circle in the center of the grid. Set the circle radius to 6" and then center it using the Coordinates Display beneath the viewport. With the Select and Move tool select the blade 30 (see Image_027 above) and shift it to the center of the circle using the Coordinates Display, set X, Y and Z values to 0. We will use this blade to attach all others to so the pivot point of the blade bundle will remain at XYZ = 0, 0, 0.. See Image_028 below:
Image Description: Image_028
When you have the blade 30 shifted, take each of the remaining blades one at a time and randomly place them in a even spread from each other inside the circle. See Image_029A below. After randomly positioning the blades inside the circle, use the Select and Rotate tool to randomly rotate each one (B). Finally, shift the blades to where they are completely within the circle, and if necessary, move them within the circle to maintain an even spread (C). If you wish, create additional blades to fill the circle out. Note: In a typical lawn project, the amount of blades used to create the Reference/Source Object would actually be up to 5 times more than what we're creating here. A greater grass blade density per bundle reduces the number of Paint Objects needed to create a realistic lawn.
When done delete the circle. Select the center blade 30. In the Modify panel Click the Attach List button to right of Attach, select all the blades on the Attach List and click the Attach button at the bottom. The Max Reference Object is complete. Save the file GrassBladeBU. The last step is to save it as an mr Proxy Source Object. Create an mr Proxy Object to the right of the blades bundle. In the Modify panel, click the Source Object None button, then select the blades collection. 30 should appear on the Source Object None button label. Next, click the Write Object to File button. In the Write mr Proxy file dialog enter the name SmallLawnProject, then, in the mr Proxy Creation panel click OK. Close the work file without saving, we have the mr Proxy Source Object we need.