Tutorial: How to Make and Render Super Realistic 3d Grass with 3DS MAX
In this tutorial we will show the procedure of making a grassy field in order to enhance realism in our exterior architectural visualizations. Therefore we will first model and texture the 3d grass blades and afterwards use a “Scatter Plugin” to randomly distribute the single blades of a large surface. With this technique you can create super realistic grass and lawn for your next exterior architectural rendering project.
Usually most private residences are surrounded by yards with short cut lawn so we should be able to render this kind of “foreground” on our own for your next architectural visualization job. In addition we share our grass blade textures with you, so grab this free download! But now let´s get started!
There are five discrete steps a 3d artist must have in mind:
- Prepare the ground
- Model the blades
- Make clusters of grass and scatter them across the ground surface
The technique in this tutorial could be used also to generate similar scenes of any scattered content that needs to be spread over a certain area.
As we described in past tutorials first thing to do is to set Corona as default renderer, from Rendering tab->Render Setup->Common->Assign Renderer and set Corona Renderer as Production. We click the button Save as Defaults and finally we setup Gamma/LUT Correction and System Unit.
How Does Grass and Lawn Look in Reality?
As always our target is to imitate real life so we must pay attention to the subtle details of a real reference photo.
In the photo bellow some useful notes can be extracted:
- Absence of repetitive patterns,
- Variety of grass’ blade length
- Different kind of plants randomly placed and
- Patches of dried or dead grass where soil is visible
- We can also see some small flowers on the grass
Ground Preparation for our Architecture Rendering
Firstly we need to make the terrain where the grass will be scattered. We make a plane surface 1000cm x 1000cm with 100 length and width segments, apply an Edit Poly modifier and we make some push and pull paint deformations. This step will give some realistic bumps, make our ground less flat and capture more interesting shadows. It is obvious that this technique is followed not only in plane surfaces but in any kind of object (standard primitives, extended primitives, compound objects etc). We place also a CoronaSun and a tree somewhere and play around until we find interesting shadows on the ground. From Camera->Standard->Target we create a standard 3ds max camera targeting the ground with approximately 170 centimeters distance from the ground. This is more or less an average height of human eye thus it will give us the proper point of view.
Modeling the 3D Grass Blades and Flowers
Our intention is to make curved geometry for grass blades instead of flat planes so they can reflect light naturally. We start from a plane and by extruding edge by edge we shape the leaf. Apply some modifiers like Twist and Bend to create some leaf variety, in the next step we transform models to polys and finally attach all of them in one group in order to have a small cluster. Let’s name this Cluster_1 and follow the same procedure to make another cluster of taller grass blades and a bunch of leaf clovers with the name Cluster_2. Finally we model some daisies. It is important, to place pivot of each leaf properly in the bottom edge.
Texturing the 3D Grass
For the ground surface we choose to apply a nice high quality seamless texture our “4000 free texture library”. It’s free and with minor tweaks in Hue and Saturation color can be changed to a vivid brown imitating wet soil. A simple UVW map modifier is enough –we don’t care about the seams – since most of the surface will be covered by the grass.
For our grass leaves we use for diffuse and translucency real leaf textures instead of flat colors though a simple UVW box map. In general it is recommended to use translucency and avoid refraction. We must use translucency to have a thin semitransparent material but we don’t want to overact, so use fraction values from 0,1 to 0,5.
Usually the same texture for diffuse and translucency is used with the help of Color Correction map. High reflectivity and low Fresnel IOR values (Fresnel IOR at 1,3 ) can capture sun’s highlights without visual artifacts. If we have bright spots these are caused by sun being reflected on grass blades. This is a physically correct phenomenon that you can be also found in real life for example when sea waves or snow reflecting sun. Lowering material’s glossiness to 0.5 eliminates these annoying highlights; furthermore sun’s reflections can be more soft and realistic.
Tip: It is very helpful to use interactive rendering when tweaking parameters, materials and camera angles, thus we save rendering and working time.
Grass Blade Texture – Free Download
We like to share with you our texture for grass blade. Feel free to use it for your private or commercial project and add it to your library. You see the texture is pretty easy, but will do the job perfectly as you see in the renderings. We also would like to share the grass textures with you for free to show you in detail that there is no secret sauce and at least pretty simple! The grass textures look like this:
You can download the free grass textures for super realistic 3d grass renderings here:
Scattering Grass over Ground randomly
There are many commercial 3ds max plug-ins capable to provide remarkable results like Multiscatter, Forestpack Pro, Vrayscatter etc. and also free ones like Advanced Painter. For this tutorial we are going to use Corona’s scatter tool (CScatter) which is integrated to Corona renderer. It can be used to efficiently produce effects like grass, hair, forests and carpets. Also CScatter can be used in combination with CProxy objects, a very useful feature when RAM limitations are slowing down our work, but we must be careful because creating large amounts of instanced objects may have impact on viewport performance thus it is advised to decrease the amount of displayed objects under Display rollout in CScatter parameters.
To scatter objects we follow the next steps:
- From Create-> Geometry-> Corona we create CScatter anywhere in our scene.
- Pick distribution object which is the ground surface.
- Pick instanced (scattered) objects namely our grass groups Cluster_1 and Now we can see some boxes scattered on the ground. These are our clusters showing as boxes in order to keep RAM in low levels.
- Frequency determines how often we find our instanced objects in our scene, so we set Cluster_1 to0 and Cluster_2 to 0.1.
- Set Scatter count to 12000 and see the boxes filling the surface.
Tip: Now it is the time to make a quick render and see how the grass distributes and if we are happy with the density we are moving to the next step.
- In Transformations->Rotation tab we adjust the degrees of the clusters rotation. We want fine rotation on X and Y axes (1 to 5) and a full rotation on Z axis (360).
- In Transformations->Scale we set the variety of scale from 90 %to 120 %
- Last step is the Previz type where we can choose if our scattered objects will be shown as objects; None, Dot, Box, Wire box and Full are the available previews.
To enhance our scene we scatter also some daises. We can control density though a hand painted map inserted in the Scattering->Density slot. In this way flowers are scattered in the white areas of the map.
Please note that this step with the density map only works with the commercial version of Corona. But the Scatter function is available in the free version as well!
Below are the final renders with and without daisies from different camera angles.
Here the same images WITH the flowers – you see it looks even more natural!
Remember that realism comes with random variety so, the more different models placed randomly the best photorealistic result!
I really hope you liked this detailed tutorial about how to create realistic lawn or grass for your next architecture visualization job! In this example we used 3DS MAX and The Corona Scatter, but I guess the principles are the same for other 3d tools – so hope you got inspired for your next project! Keep rendering!