A Cartoon Forest
I've tried to make a 3D forest a few times, but I've generally
been really disapointed with the outcome. (you can see my castle
animation for an example.)
I came up with a solution, however, that seems to provide a
reasonably consistent quality.
Note that most of my rendering is meant to look like
hand-drawn animation. These trees look pretty good for stylized
work, or as animation, but won't fool anyone for photorealistic
work.
|
|
|
Start with a low-polygon tree. I created a tall, thin box with six
segments. I scaled the modeler until the grid was 500mm. This means
the box is about 3 meters tall (~= 10 feet), and half a meter thick
(~= 18 inches).
|
|
|
Use the drag tool (ctrl-t) to give the tree a twisty, bendy look.
Taper it a bit at the top. Make sure you do this from the front and
from the side.
|
|
|
Pull out a branch around the bend in the trunk. Select one of the
four-sided polygons just above a major bend. Smooth Shift (Shift-F)
and click on one of the modeler windows. This creates some geometry
that you can't see yet. Move (shift-T) the polygon away from the trunk.
Smooth shift, click, and Move the polygon again. Use the drag tool to
move adjust the thickness of the branch.
|
|
|
Pull out a few more branches to make the trunk interesting. You
don't want to make a lot of trees, so you should make this tree look
different from different directions. It shouldn't take much effort
to make an interesting tree.
|
|
|
Now it's time to make the canopy. Use the ball tool (shift-O)
to create a ball that covers all the tops of the branches you
made. You will have to go into the numeric properties (n), and
select tesselation. A tesellated ball looks a lot better.
|
|
|
Select the magnet tool (:) and drag the ball around. You
will need to use the right mouse button to adjust the size of
the magnet's influence. Use the left mouse button to drag the
geometry around. Try to organize lobes of camopy around
branches.
|
|
|
Make sure you have the layer with your canopy active, and
create a new surface (you should not have any polygons selected,
type "q" to create a surface). Select a shade of green. Next,
switch to the layer with your trunk, and create a surface (q),
make it brown.
Next, bring the canopy over to the same layer as your tree.
You can do this by copying (x) the layer with your canopy, and
then pasting (v) onto the layer with the trunk.
|
|
|
The rest of this exercise, really, is to create good surfaces
for your object. Open the surface editor, and select your canopy.
Give it a dark green color (024 037 014) as the base color. click
on the "T" icon to open up the textures screen. Use the drop-down
list labeled "Add Layer" and select "Procedural". Select a Procedural
Type that gives you a nice random cloudy texture. I picked Coriolis,
but turbulence should give you a good choice, too. Set the scale
to 1 m in x, y, and z. Check World Coordinates. Set the color to a
light green (047 218 037). Click "Use Texture" at the bottom.
|
|
|
To give your tree a "leafier" feel, you also want to adjust the
transparency. Set the transparency to 100% and then click "T" to
create a texture on the transparency channel. Add a Layer, and make
it a gradient layer. Set the Input Parameter to Incidence Angle.
Set the value of the first key to 100%, Alpha 100%, Parameter 0.0.
Create two more keys, one with a parameter of 45.0 and another with
a parameter of 60.0. The first should have a value of 100% and an
alpha of 100%. The second should have a value of 0.0% and an
alpha of 100%. The purpose of this layer is to keep the center of
your tree looking solid. The thickest part of the tree shouldn't
have any holes where you can see through the canopy. We only want
that to be on the sides, and this gradient will fix that.
Next create another layer, and make it procedural. You want a
blobby procedure, and "Crust" fits the bill. Select "Crust" from
the procedural Type drop-down list. The default values should be
okay, but check "World Coordinates" and set the scale to 200 mm in
each dimension. click "Use Texture".
Make sure "Smoothing" is selected, and set the smoothing angle
to 180
|
|
|
The trunk is a lot less important, but needs a quick fix. Select
the trunk surface in the surface editor. Make sure "smoothing" is
checked, and adjust the smoothing angle to 180.
|
|
|
That should complete your tree. You'll probably want to save a version
of your model, now, and save all successive changes to another model file
called Forest. Now to make a forest. Your object
layers should all be empty except for the one with your tree. Select an
empty layer. Use the zoom tool to zoom out until your grid is 50 m.
Select the Spray Points tool in the create menu. Spray a nice random
mess of points all over the x-z plane until you have a density that you
think is appropriate for your forest.
|
|
|
The spray tool makes a big mess in 3 dimensions. With no points selected,
set values (ctrl-V), and make the y-coordinate 0. Next merge points (m) on
the Construct menu. Select "Fixed" in the Range, and change the
distance to 3 m. This is the minimum space between trees in your forest.
this should give you a flat plane of points which are randomly distributed,
but at least 3 meters apart.
|
|
|
Now, activate the layer with your tree in it, and set the layer with your
points as a background layer (click on the lower half of the layer icon).
Under the Multiply menu, click "Point-Cone-Plus+". In the dialog box that
pops up, select -180 for Min H under Random Rotation. Enter 180 for Max H
under Random Rotation. Under Random Size, use 0.8 for Min and 1.2 for Max.
In the bottom section of the screen, select the Y Axis "+" option, instead
of the center. Click OK. If you don't have a lot of ram, watch your computer
crash. If you do have enough ram, wait a bit, and then save your forest
model.
|
|
|
From here, the tutorial is more-or-less over. You can open layout and add
your model, and render it to see the final output. I used enhance High Anti-
aliasing, and skytracer with its default settings. I also set volumetrics
options and put some fog to hide the small number of trees I put in this rendering.
|
|