Bryce 5 - Tree Lab &
Landscape Generation
Carl E Schou
September 1, 2001
|
|
If you’ve used
Bryce in the past for any kind of landscape generation, you have
probably wrestled with the problem of how to produce a large
variety of realistic looking trees. The tree models included with
the software weren’t adjustable by the user and they lost
credibility in a close-up view. Corel has gone a long way to
remedy these problems with the new Tree Lab included in Bryce 5.
The picture at the top of this article "Palm Trees with
Pyramids" was produced with Bryce 5 using the Tree Lab and
the Terrain Editor. The grass around the oasis was generated with
Plant Studio2 and imported into Bryce. The picture was
rendered using the new Soft Shadows option in the Sky Lab.
This tutorial is arranged into four parts: (1) Using the Tree
Lab, (2) Assembling the picture, (3) a wish list of features that
I believe would enhance the performance of Bryce, and (4) Table 1
and Table 2 which are referred to through out the text. |
|
|
(1) USING THE TREE LAB
The Tree Lab lets the user choose
between 60 basic tree types. This controls the overall shape of
the finished tree. Parameters such as trunk thickness and the
branching angle can be customized to the needs of the project.
Each tree type has a corresponding texture applied to the bark. If
desired, the user can edit the bark texture or replace it with a
different texture. The user also selects the leaf type, size, and
color, and how the leaves are arranged on the branches.
For this tutorial, we’re going to make a grove of Palm Trees.
Start up Bryce and open the Create Palette. You’ll see a new
icon along the top of the screen – a tree. Click it and you’ll
have started your first Tree Lab tree. The screenshot below
shows a test render of the default tree. |
|
|
To edit the tree, make sure that it’s
selected and press CTRL+E to enter the Tree Lab. Two things
worth noting are the preview window and the Min/Max
controls. The little arrow under the preview window enables
a drop down menu which allows the user to update the preview and
to choose between a wireframe view and a rendered view. Some
of the controls use Min/Max sliders which allow two closely
related parameters to double up in a single control.
|
|
|
When you're through exploring, change your settings to match
the above screenshot to generate a palm tree. You'll want to
click on the Edit button next to "material" in the
Foliage section to make sure you're getting the leaf color you
want. A test render should look like the following image. |
|
|
Nothing like a levitating, uprooted palm
tree to fuel a need for a landscape. To keep the tree safe
until it's needed again, assign it to Family 20, call it Tree1, and save your
work. |
|
|
(2) ASSEMBLING THE
PICTURE
Now it’s time to generate a landscape that the trees will be growing in. This
is done by creating a
terrain, modifying it in the Terrain Editor so it can be tiled, and tiling the terrain
out toward the horizon. A depression is created in the foreground
tile and filled with water to create the oasis. Grass is added
using Plant Studio. The Pyramids of Giza were modeled with simple
primitives, built to scale, and added to the background.
|
|
|
The Terrain
To get started with this portion of the
project, set up your camera as shown below.
|
|
|
This project used a tiled terrain
generated entirely in Bryce. To start, create a terrain and click
the triangle next to Edit. Select "Riverbed" under the
"Rocks & Stones" materials library and click the
check mark to accept the material. Press CTRL+M to enter the
Materials Lab and
modify the default values to match the settings shown below.
|
|
|
Press CTRL+E to go into the Terrain
Editor. Under Editing Tools click the little arrow to the right of
Fractal and select Perlin Hills. Now, start clicking the button to
the left of Fractal until you see something that looks like sand
dunes. Set the grid size high for the first tile because it’s
the closest one to the viewer. I used 2048 but you could probably
get by with less. If your machine has memory limitations,
use a grid size of 1024 or 512 and change the names of the sand
objects accordingly. Accept the terrain by clicking on the check
mark. |
|
|
Assign the terrain slab to Family 2 and call it Sand2048a.
Duplicate this terrain by entering CTRL+D. Assign the new terrain
to Family 3 and call it sand2048b. In the Edit Palette, click the
little triangle next to the size tool and select Flip X to mirror
the terrain around the Z axis. Similarly, duplicate sand2048b
and assign the new terrain to Family 5 and call it sand2048c. This
time select Flip Z to mirror around the X axis. Now select
sand2048a, duplicate it, assign the new terrain to
Family 6, and call it sand2048d. Select Flip Z. Using the
Attributes window for each of the four terrains, set the sizes and
positions as shown in Table 1. Congratulations, you’ve
made the first terrain tile. Using CTRL+D, copy sand2048a to
sand512a in Family 7. Enter the terrain editor and set the grid
size to 512. Likewise, copy sand2048b to sand512b, sand2048c to
sand512c, and sand2048d to sand512d and set their grid sizes to
512. Do the same to produce the 128 grid and the 64 grid tiles and
set the sizes and positions of all the tiles as shown in Table
1. When you’ve got it, save your work so you can get back to
this point if you have to. |
|
|
Next we will start copying the tiles and
moving each new tile out toward the horizon until they blend in
with the ground plane. Select the ground plane and apply the same
sand texture that was used for the terrains. Now, select all 4
terrains making up the 512 grid tile, group them together, and
assign them to family 7. Do the same with the 128 grid tile in
family 11 and the 64 grid tile in family 15.
Use CTRL+D to start
copying the sand512 tile, using the Attributes window to move each new tile by 400 in the
X or Y direction. As the tiles get farther away from the viewer,
switch to the lower grid sizes. If you've ever tiled a
floor, this will seem very familiar.
|
|
|
The Oasis
To make the oasis, select sand2048a and go into the terrain
editor. Press Invert and then Blob Maker to make a new hill in the
middle of the terrain. Press Invert again and sand2048a is
restored to its original shape except for a pit in its
middle. The terrain canvas with the pit added is shown
below.
Exit the Terrain Editor, select all 4 of the 2048 grid terrains, group
them together, and assign them to Family 2. Create a 2D Disk with
the values shown in Table 2 and apply a water texture to it.
Assign this disk to Family 6 and call it Water. |
|
|
The Grass
The grass around the oasis was created
in Plant Studio, a standalone program that generates 3D models of
a wide variety of plants. 27 different models of grass, each with
0 degrees of rotation, were generated in Plant Studio and exported
as 3DS files. These models were imported into Bryce as family 5
and kept ungrouped. After selecting family 5, the Attributes
window was opened (by clicking the little "A" in the box
next to the model) and the grass was rotated 90 degrees on the X
axis to correct the orientation after importing. After accepting
these values by clicking the check mark, the Multi-Replicate
window was opened by pressing ALT+SHIFT+D. The quantity was set to
5 with a rotation of 3 degrees on the Y axis. This resulted in a
total quantity of 162 plants whose orientations vary over a range
of 15 degrees.
|
|
|
To set the size and rough position of
the plants, all of the plants were selected and a top view was
chosen. In the Edit Palette, the overall scale of the plants was
decreased with the size tool until it looked right compared to the
palm trees. The plants were then moved to the side of the oasis
seen by the viewer in director view by using the position tool.
Still in the Edit Mode, 2D Disperse was chosen from the Randomize
Options and the little "amount" button was clicked and
dragged to spread out the grass. At this point, a check in
director view should show the grass dispersed in a flat horizontal
plane at some height above the ground. Keep all of the grass at
this height until you’re satisfied with its position from the
top view. If you change the height of any individual plants at
this time, you’ll have a very difficult time getting the height
of the plants to track the changing terrain altitude when you drop
the plants down to ground level later on. |
|
|
To fine-tune the position of the grass,
we need a reference picture of the oasis that we can refer to
while moving the grass. We also have to be able to select and move
grass individually and in clumps without affecting other objects
in the image. To do this, return to a top view and render the
image of the oasis. When this is complete, click twice on the
little cube on the lower right of your image. This should give you
your rendered image with the wireframe overlaid on top of it.
Select the oasis terrain slab, click on attributes, and select
"Locked". Do the same with the oasis water disk and the
ground plane. Now use the
mouse to select a clump of grass that is positioned where it
shouldn’t be (like over the water or too far from the water) and
move it to the edge of the oasis. When you are satisfied with the
arrangement of the grass, SAVE your work. |
|
|
To drop the grass onto the terrain,
change back to the Directors View, select all of the grass, and
click the down arrow icon appearing next to the bounding box. Each
grass object should drop down to the terrain. If you’re not
satisfied with the arrangement of the grass on the ground, then
select Revert to Saved in the File menu to restore the grass to
its original pre-dropped position. Repeat the render to make a new
reference image, and continue your landscaping work. When you’re
satisfied with the image in the Director’s View, save your work. |
|
|
Building the Pyramids
The original pyramids took years to make at a cost of untold
human suffering. Unless you’re a tyrant with thousands of people
who obey your every whim, you will probably be better off building
them in Bryce. Just create three pyramids using the values given
in Table 2. The texture applied was "Arizona",
from the Planes & Terrains materials library.
The values for the pyramids were found after a lot of digging
on the Internet. Their size was scaled up to match the
trees. The average height of a tree object in the Attributes
menu was 64. This is easily twice the height of the real
tree in feet, so I doubled the dimensions of the pyramids to keep
everything to scale. For this picture, one unit in Bryce = 6
inches. The viewpoint in the picture is from the southwest
of the pyramids, looking to the northeast, about 1600 feet from
the nearest pyramid (Menkaure). In case you're interested,
the names of the three pyramids are, from largest to smallest,
Khufu or Cheops, Khaefre or Chephren, and Menkaure.
|
|
|
Adding the Trees
Now that you have a suitable landscape built up, it's time to
add the trees. Select Tree1 and move it to a suitable
location using the Attributes window. Copy Tree1 using
CTRL+D, assign the new tree to Family 21, and call it Tree2.
Use the same process to create Trees 3, 4, 5, and 6. You can
use the tree positions given in Table 2 unless you see something
you think would look better. If the trees look too similar,
you can change the value of the randomness slider for each tree in
the Tree Lab. You can also change the rotation on the Y axis
so the tree presents its best side to the viewer.
|
|
|
Comparison between Hard & Soft
Shadows
The final image was rendered twice - once with
normal shadows and once with Soft Shadows enabled in the Sun and
Moon section of the Sky Lab under the Sky & Fog Palette.
The resulting Render Reports are shown below with normal shadows on
the left and soft shadows on the right.
Rendering was done on a PC with an 850 MHz Athalon
processor and 768 MB of RAM. The file size was just under 200
MB with 1048 objects and 52442883 polygons.
|
|
|
(3) SUGGESTIONS FOR FUTURE UPGRADES TO BRYCE
I haven't walked through everything that's new in Bryce5, but
what I've seen so far looks good. The new soft shadow feature can
really enhance the realism of an image. The sharply outlined
shadows produced by earlier versions of Bryce could make an image
look overly stark unless a lot of care was taken. The new TreeLab
is a great addition. It can produce some nice results, but I wish
they'd taken it a little further. What follows is a wish list of
features that I’d like to see incorporated into a future version
of Bryce. |
|
|
Tree Lab Suggestions
Currently, tree trunks are straight. It would be great to add
the ability to bend tree trunks.
The joint between the root section and the trunk produces a
bulge near the bottom of the tree. If this could be minimized it
would help.
The ability to export the tree as a 3DS or OBJ file would allow
the user to paint or otherwise edit the tree before importing back
into Bryce for final rendering.
The user can determine the effects of gravity on the tree.
However, gravity appears to be defined as "down the length of
the trunk" rather than just "down". If a tree is
built with branches drooping due to gravity, and that tree is
rotated to give the appearance of a lean, the direction of the
droop rotates with the trunk rather than continuing to droop
toward the ground. This is really not a big problem since the user
can keep changing the randomness until the leaning tree looks
right. |
|
|
Soft Shadows Suggestion
Soft Shadows are terrific, but this option can only be turned
on or off in the Sky Lab under the Sky & Fog Palette. It would
be nice to have a control to vary the amount that the sharpness of
the shadows rolls off with distance. This option is already
available for lights but not for sunlight. |
|
|
Randomize Options Suggestion
The Randomize Options in the Edit Palette do not limit rotation
of a selected group of objects to a single 2D plane. It would be
nice to independently randomize position and rotation in any
plane. |
|
|
Terrain Editor Suggestion
It would be very helpful to be able to export the height map
image from the Terrain Canvas to a 2D file format like JPEG, BMP,
or PSD. This file could be edited in Photoshop, then pulled back
into Bryce’s Terrain Editor where it could be used to generate a
new terrain. |
|
|
Table 1 contains the positions and
offsets of the 1st generation terrain tiles before they are
grouped. Table 2 contains the positions, rotations, and
gains of the pyramids, water, trees, and grouped terrain tiles
before duplication and tiling across the landscape. |
|
|
Table 1
Family |
Name |
Pos X |
Pos Y |
Pos Z |
Gain X |
Gain X |
Gain X |
1 |
default |
|
|
|
|
|
|
2 |
sand2048a |
0.00 |
10.12 |
0.00 |
200.25 |
20.00 |
200.25 |
3 |
sand2048b |
-200.00 |
10.12 |
0.00 |
200.25 |
20.00 |
200.25 |
4 |
lights |
|
|
|
|
|
|
5 |
sand2048c |
-200.00 |
10.12 |
200.00 |
200.25 |
20.00 |
200.25 |
6 |
sand2048d |
0.00 |
10.12 |
200.00 |
200.25 |
20.00 |
200.25 |
7 |
sand512a |
-400.00 |
10.12 |
0.00 |
200.25 |
20.00 |
200.25 |
8 |
sand512b |
-600.00 |
10.12 |
0.00 |
200.25 |
20.00 |
200.25 |
9 |
sand512c |
-600.00 |
10.12 |
200.00 |
200.25 |
20.00 |
200.25 |
10 |
sand512d |
-200.00 |
10.12 |
200.00 |
200.25 |
20.00 |
200.25 |
11 |
sand128a |
-800.00 |
10.12 |
0.00 |
200.25 |
20.00 |
200.25 |
12 |
sand128b |
-1000.00 |
10.12 |
0.00 |
200.25 |
20.00 |
200.25 |
13 |
sand128c |
-1000.00 |
10.12 |
200.00 |
200.25 |
20.00 |
200.25 |
14 |
sand128d |
-800.00 |
10.12 |
200.00 |
200.25 |
20.00 |
200.25 |
15 |
sand64a |
-1200.00 |
10.12 |
0.00 |
200.25 |
20.00 |
200.25 |
16 |
sand64b |
-1400.00 |
10.12 |
0.00 |
200.25 |
20.00 |
200.25 |
17 |
camera |
|
|
|
|
|
|
18 |
sand64c |
-1400.00 |
10.12 |
200.00 |
200.25 |
20.00 |
200.25 |
19 |
sand64d |
-1200.00 |
10.12 |
200.00 |
200.25 |
20.00 |
200.25 |
|
|
|
Table 2
Family |
Name |
Pos X |
Pos Y |
Pos Z |
Rot X |
Rot Y |
Rot Z |
Gain X |
Gain Y |
Gain Z |
2 |
sand2048 |
-100 |
10.12 |
100 |
0 |
0 |
0 |
400.25 |
20 |
400.25 |
5 |
grass |
|
|
|
|
|
|
|
|
|
6 |
water |
0 |
4.50 |
0 |
0 |
0 |
0 |
200.00 |
0 |
200.00 |
7 |
sand512 |
-500 |
10.12 |
100 |
0 |
0 |
0 |
400.25 |
20 |
400.25 |
11 |
sand128 |
-900 |
10.12 |
100 |
0 |
0 |
0 |
400.27 |
20 |
400.27 |
15 |
sand64 |
-1300 |
10.12 |
100 |
0 |
0 |
0 |
400.30 |
20 |
400.30 |
16 |
pyramid 1 |
-8233 |
485 |
10253 |
180 |
-88.50 |
180 |
1511 |
970 |
1511 |
18 |
pyramid 2 |
-5855 |
477 |
8120 |
180 |
-88.50 |
180 |
1412 |
944 |
1412 |
19 |
pyramid 3 |
-3286 |
215 |
6612 |
180 |
-88.50 |
180 |
692 |
430 |
692 |
20 |
tree 1 |
-1.79 |
30.30 |
97.90 |
0 |
15 |
0 |
30.27 |
62.85 |
29.09 |
21 |
tree 2 |
-23.64 |
35.79 |
67.84 |
0 |
15 |
0 |
34.58 |
81.22 |
34.06 |
22 |
tree 3 |
28.04 |
35.92 |
-35.32 |
0 |
45 |
0 |
32.49 |
80.49 |
34.05 |
23 |
tree 4 |
-3.95 |
25.73 |
45.85 |
180 |
0 |
180 |
31.81 |
59.83 |
30.81 |
24 |
tree 5 |
-30.71 |
34.55 |
50.23 |
0 |
90 |
0 |
30.70 |
72.29 |
29.57 |
25 |
tree 6 |
-58.13 |
36.35 |
30.57 |
0 |
0 |
0 |
28.80 |
75.62 |
30.12 |
|
|
|
This tutorial started out as a brief
look at the Bryce 5 Tree Lab and it just grew from there. A
lot of the techniques covered here can be applied to other types
of projects in Bryce as well as other 3D applications. Good
luck with your landscaping work and enjoy. |
[RETURN TO TUTORIALS]
Copyright © 2000,
Authors Name, All Rights Reserved |