Forest Pack is the scattering tool for 3dsMax that you can easily use to spread objects, trees, buildings, etc. on wide areas of your project.
With the release of Forest Pack 7, we can now scatter everything, from geometry, to lights, and even VDB objects.
In this article we’ll use these new features to scatter lamp posts (with light objects inside) and clouds in the sky. Below you can see the final result:
I’m using Corona Renderer 6 for this scene, and although the difference between a CoronaLight and CoronaLightMtl is quite small, sometimes you may need to scatter actual light objects, instead of a mesh with a light material applied on it.
Before starting I’ve set the project file to meters to facilitate the scattering of the clouds, since they are quite big, it’s easier to input values in meters rather than centimeters.
The VDB file for the clouds are imported with the CoronaVolumeGrid. I won’t cover the workflow on how to do it and how to set up the parameters to render the clouds. It will be a topic discussed in the next article.
Here I will focus on the scattering for the clouds and lamp posts, highlighting some details while I show you what I’m doing.
The scene itself is pretty basic: it’s a plane with some noise on it. There are a few splines which control the gravel path and are also used to scatter the lamp posts, the benches and the trash cans. The scattering for the vegetation, grass and trees is quite standard. I used a mix of different assets and distribution maps to scatter the vegetation around, where I needed.
Now let’s focus on the important part of the article: lights and clouds.
Scattering lights is done in the same way as geometry: you add the light object from the Geometry rollout. The Area can be specified with a spline or a surface and all the Distribution modes are supported.
Take a look at the video below to see how it works on a simple setup.
- Create the Object. I’m working with Corona so I’ll create a Corona Light from the toolbar, set it to Sphere, and I’ll leave the other parameters to their default values. Maybe you can change the radius to 3 centimeters.
- Create the area for the scattering. In this case I’ll create a simple rectangle.
- Create the ForestPack object and assign the Light. If the light is an independent object, you can just pick it. Otherwise if it’s part of a Group, you need to select the group using the Add Multiple option.
- Adjust the Distribution. In this example I’m using the default Dense map.
A few notes about using Groups:
- In the scene you saw previously I’m scattering a lamp post that is a group made by the mesh and a Corona Light on top (here the group is represented by a cone + the light object).
- If you work in this way, you need to place the pivot of the light object in order to match the pivot of the mesh, otherwise the light instances won’t be placed correctly in the ForestPack object.
This happens only if you have a surface linked in the ForestPack object, in case of just a spline you won’t get this issue.
- If you enable the Random Transform (Translation, Rotation, Scale), the light object may not behave the same way as the mesh. You can see in the video that there is a misalignment between the lamp post and the Corona Light.
These issues will probably be solved in a future update.
If you used ForestPack before, you know there is a map called ForestColor that we can use to randomize texture on the instances. Luckily we can also use it to randomize the color, or temperature, of the light instances. You just need to connect it to the Color slot of the Corona Light and set the parameters in the material editor.
The lamp posts in the scene are scattered using the Path Distribution, with a spacing of 6 meters and an offset of 2.5 meters, so they don’t overlap with the gravels on the path.
To complete the scene I also added some benches and a few trash cans.
Now we can move on how to scatter the VDB objects for the clouds.
As before, the workflow is pretty straightforward:
- Create the area where you want to scatter the clouds.
- Create the ForestPack object and adjust the distribution to avoid scattering millions of objects right away.
- Link the objects in the Geometry rollout.
The distribution for the clouds is nothing fancy. In this case I’m using the Image mode to specify where I want the clouds, and since they are quite big, the units value will be quite big as well, unless you want to create a completely overcast sky.
You can create multiple layers of clouds by simply adding multiple splines in the ForestPack object. Notice that with ForestPack 7 the instances can now follow the height of each spline, instead of only the higher one.
As always, remember to enable the Random Transforms, they help a lot breaking the repetition and creating a more natural result. For the clouds I’m using pretty standard parameters. As I said before, clouds are quite big, for example the cloud I’m using right now is around 200 by 300 meters in size, so in the Random Translation you need to increase quite a lot the values if you want to affect the position of the instances, in my case I’ve set the range from -10000% to +10000%.
A word of caution when scattering volumetric objects. Even though all the clouds we have in the scene are instances of a single source object, the shading computation during rendering will have a big hit on the performances. So be careful! Don’t try to scatter hundreds of clouds in one shot or your computer will likely freeze (I tried).
Watch here a full recap of the whole process we just saw.
Stick around for the next article, where we’ll take a more in-depth look at how to render clouds with Corona 6 and look at how to control the parameters to reach the desired result. We’ll also discuss how to create the mesh and the VDB file for the cloud itself, explaining some of the attributes needed in the VDB object to correctly render the cloud.