The Grass extension allows you to very easily and quickly create different types of grass. The extension is designed to offer you a great amount of randomization and control with many of the parameters also being mappable. Moreover, you can apply several different grass generators to the same object, which allows you to mix the look of different types of grass. You can create grass in Maxwell Studio and also in almost all of the 3D applications that have a Maxwell Render plug-in:
...
The guide curves created and distributed by the Grass Generator have to be replaced by a renderable geometry in order to present an actual surface that can handle a material description and be renderable. This happens at the beginning of the render, when the guides in the MXS file are replaced by one of the following Grass Primitives, that define the shape of each blade of grass.
Flat
The Flat primitive renders a segmented flat strip, and the number of points define how many "segments" the rendered blade will have. The minimum number of points is 3. It's well suited for thin SSS materials since it's a single sided geometry.
...
Curve primitive using 4 points per blade
Cylinder
The Cylinder primitive renders each guide as a rounded cylinder, exactly the same primitive used by the MaxwellHair extension. It is well-suited for rounded grass, or even for generating fur and hair. The cylindrical fibers have an actual thickness and volume, so they can handle transparent and volumetric subsurface scattering materials.
As this primitive is made of straight segments of a cone, the number of Points per Blade define the number of straight cone segments in each blade. You may determine the number of segments you need depending on how it looks from your camera view. The more segments, the smoother the cylindrical blades will look, but you will also increase the demands of RAM usage that is needed to render your scene.
Cylinder primitive using 16 points per blade
...
Several MaxwellGrass modifiers being applied on the same ground geometry (screenshot from Studio)
Two independent grass modifiers applied together to the same ground geometry (hidden here) to create a more natural look by generating a mix of two different grass species
...
As you can see, there are many different options to map the grass surface, combining these two UV channels. Similar to the example above, you can also map a Layers weight with a texture and set it to use UV channel 1. The BSDFs contained in this Layer can in turn have textures using UV channel 0 (root to tip) which are different from the textures used in the BSDFs of the bottom Layer, and also use different material settings such as thin SSS settings. And why not above these two Layers, add a third one, with a simple color texture (using channel 1) and set the layers weight very low just to add even more subtle color variation across the grass surface.
The Grass Generator parameters
Primitive
Material
Choose which material to apply to this grass modifier. You can either type in the name of a material that is in your scene, or you can drag & drop a material from the Material List panel. See the above section ("Texturing Grass") for more info.
Primitive
Choose the primitive type to render for this grass modifier. See the chapter for more info ("The Grass Primitives").
Points per blade
Sets the number of points to use for the primitive you have chosen See the chapter above for more info ("The Grass Primitives").
Density parameters
Density
Controls the number of blades per square meter.
Density map
Specify a greyscale map to control where the grass will grow. Fully white areas will have the maximum number of blades you specify in the Density parameter. Fully black areas will have no blades.
Seed
This number is used to generate the random distribution of the grass blades. If you use several grass extensions on the same object, make sure the seed number is different for all of them to avoid several grass blades growing from the same location.
Length parameters
Length
The length of the blades in centimeters.
Length map
Load a greyscale map to control the height of the grass over its growth area. Fully white areas will have the maximum length you specify in the Length parameter. Fully black areas will have no length.
Length variation
Randomize the length of each blade, specifying the range of possible length values as a percentage of the nominal Length parameter. For example if Length is set to 10cm and Length variation is set to 50%, the length of the blades will be randomized between 5cm and 15cm.
Width parameters
Root radius
Specify the width (or radius, in the cylindrical grass) in millimeters of each blade at its root.
Tip radius
Specify the width (or radius, in the cylindrical grass) in millimeters of each blade at its tip.
...
Different values for Initial Angle
Initial Angle
The initial angle at which the blades will grow. Default is 80 degrees. Values range from 0 to 90 degrees.
Initial Angle variation
Randomize the growth angle by a percentage of the initial angle variation. For example if the initial angle is set to 70 degrees and variation is 10%, the angle will be randomized between 63 and 77 degrees.
Initial Angle map
You can use an RGB map which will define the initial angle. The Red, Green, Blue channels in the map correspond to the X, Y, Z axis of the blade. Using a map allows you to make some interesting effects such as crop circles or wavy grass moved by wind. You can create a direction map in an image editor. The Initial Angle parameter is irrelevant when using an Initial Angle map, but the Initial Angle variation still applies, allowing you to add some randomness also when using an angle map.
...
Bend parameters: Start, Angle and Radius
Start Bend
The length of the blade (in percentage) at which the blade starts bending. The blade will be straight until this point, after which it will start bending.
...
Different values for Start Bend
- Start Bend variation
Randomize the Start Bend parameter of each blade, specifying the range of possible starting bend values as a percentage of the nominal Start Bend parameter.
Start Bend map
Load a greyscale map to control the Start Bend values. This map works as a multiplier for the Start Bend value, so fully white areas will have the maximum value you specify in the Start Bend parameter, and fully black areas will start bending at 0%.
- Bend Radius
The radius in centimeters of the bending.
...
Different values for Bend Radius
Bend Radius variation
Randomize the bending radius of each blade, specifying the range of possible radii as a percentage of the Bend Radius parameter. For example if Bend Radius is set to 15cm and Bend Radius variation is set to 20%, the radius will be randomized between 12 and 18cm.
Bend Radius map
Load a greyscale map to control the Bend Radius of the grass across its growth area. This map works as a multiplier for the Bend Radius value, so fully white areas will have the maximum radius you specify in the Bend Radius parameter, and fully black areas will have a radius of 0cm.
Bend Angle
The bending angle in degrees.
...
Different values for Bend Angle
Bend Angle variation
Randomize the Bend Angle parameter, specifying the range of possible angle values as a percentage of the Bend Angle value. For example if Bend Angle is set to 80 degrees and Bend Angle variation is set to 50%, the bending angle will be randomized between 40 and 120 degrees.
Bend Angle map
Load a greyscale map to control the Bend Angle at different areas of its growth surface. This map works as a multiplier for the nominal Bend Angle value, so fully white areas will have the maximum angle you specify in the nominal Bend Angle parameter, and fully black areas will have an angle of 0 degrees (no bending).
...
The Cut Off feature allows you to cut the grass as if it were mowed, producing and abrupt cut.
Different values for Cut Off
Cut Off
The length of the blade (in percentage) at which the blade will be cut. The blade grows as usual until this point, after which it will be cut. A value of 100% will let the blade to grow up to its nominal length (no cut at all), while a value of 0% will cut the blade at its very birth (at zero length).
Cut Off variation
Randomize the cut length parameter of each blade, specifying the range of possible cut values as a percentage of the Cut Off parameter. For example if Cut Off is set to 60% and Cut Off variation is set to 50%, the blades will be cut at a random length between the 30% and 90% of their length.
Cut Off map
Load a greyscale map to control different Cut Off values at different areas of the growing surface. Fully white areas will have the maximum Cut Off value you specified. Fully black areas will have a Cut Off value of 0 (cut at zero length).
...
Note |
---|
Note that the LOD will be applied to the active camera in the scene. |
Min Distance
The distance from the camera where the LOD won't have any effect. 100% of the blades will be rendered in this distance, as specified in the Density parameter.
Max Distance
The distance at which the blade density will have reached the density specified in the Max Distance Density parameter. Between the Min Distance and the Max Distance there is a falloff in the number of blades, until they reach the Max Distance Density.
Max Distance Density
The number of blades per meter you wish to have when the Max Distance is reached.
...
These parameters only affect the Studio viewport display and not the render. It is useful to optimize the viewport speed.
Display Percent
The percentage of blades to show in the viewport.
Display Max. Blades
The maximum number of blades to display in the viewport.
...
Adjusting the grass display settings to display just 10% of the generated fibers in the viewport (screenshot from Studio)