|Build a Butterfly in
Carl E Schou
January 31, 2003
For this month's foray into the
Digital Domain, we are going to model a Monarch Butterfly in
Carrara Studio 2. Our goal here is to build a fairly
simple butterfly model that has enough details to pass muster, yet
be small enough in file size to be practical for use in a crowd
the Monarch Butterfly
The Monarch butterfly is also known as the milkweed butterfly, after the plant
that makes up the butterfly's diet during the larval stage.
As an adult, the Monarch subsists on nectar. The milkweed diet gives the butterfly a bitter taste that is its best
against predators. Birds associate the Monarch's color with
its toxicity and learn to avoid eating them. Other species mimic the color of the
Monarch to take advantage of this. Huge migrations take
place every year as the Monarchs travel to their over-wintering
sites in Mexico, Florida, California, and coastal Texas.
Some tagged Monarchs have been known to travel 1200 miles in these
migrations. The wingspan of the Monarch is about three to
four inches and the Latin
name is Danaus plexippus.
Strategy for Modeling a Monarch
There are three phases to this
project. The first phase involves the generation of the
image maps for the wings. The second phase involves the
generation of the model. The third phase involves the
application of the image maps and textures to the model.
the first phase, we are going to start by generating the image and
alpha maps that will be used for the wings, using Photoshop or
the2D paint program of your choice. The dimensions of the
wing maps will be needed for the modeling phase of the
For the second phase, we will begin
modeling by entering Carrara's
Vector modeler, drawing an outline of the body and lathing it
to produce the 3D solid . We'll add a pair of spheres for
the eyes. We'll also add a simple set of legs, a pair of
antennae, and a proboscis using the
Spline modeler. For the wings, we'll add two pairs of
rectangles for the front and rear, left and right wings.
For the third phase, we will add the image maps of butterfly wings and
matching alpha maps to make the non-wing parts of the rectangle
transparent. We will also add a simple image map for the
body of the butterfly.
The image maps for the wings can be
produced by scanning a drawing or a photograph. You can also
paint your own in a 2D painting program. For this project, I
photographed a mounted specimen of a Monarch butterfly that I
purchased for this project through eBay. The top and
bottom views of this Monarch are shown below.
||Looking at the
two images above, a couple of points are apparent which will have
an impact on how we model the wings. First, the wings are
darker on top than underneath. Second, we only have a
complete view of the upper pair of wings in the top view. Similarly,
we only have a complete view of the lower pair of wings in the
bottom view. Third, the wings could not be laid completely
flat when taking the two photographs, so the shape of a given wing
is going to be slightly different between the top and bottom
To work around these problems, we are
going to do our mapping using the images from just two of the
wings. We will use the top view of one of the upper wings
for the top and bottom image maps for that wing. To produce
the underside of the upper wing, we will adjust the brightness and
contrast to get the color right. We will do the same with
the top view of the lower wing, adjusting the brightness and
contrast to produce the image for the bottom side of the lower
wing. This will give us image maps for the top and bottom
faces of the two wings on one side of the body. Later on,
the wings on the other side of the body will be produced by
mirroring the mapped rectangle wing objects.
The image below shows the color and
alpha maps made in Photoshop from the top view of the upper left
wing. To produce the bottom view color image of this wing,
adjust the brightness and contrast to get the right look for
the underside and save the image under a new name. Note that
the same alpha map is used for top and bottom surface of the wing.
process was used to produce the color and alpha maps for the top view of the lower right wing, shown below.
Note that the top edge of this wing's image was cloned from the
underside image since this portion of the lower wing is hidden by
the upper wing. Produce
the bottom view image of this wing by adjusting the brightness and
contrast to get the right look for the underside.
In the Carrara Assembly room, drag
the Vertex Object icon into the 3D View to insert a Vertex object.
This will put you into the Vertex modeling room. Select the
Polyline tool and build the outline shown in the Left View Window
below. Make sure the end points of the outline are resting
on the Y axis so that X = 0.
||Next we Lathe
the outline to produce the 3D object. Make sure all of the
points are selected and press Construct>Lathe and press Enter.
Select everything and turn on Subdivision Surfaces in the
Properties tray at the right side of the screen. Your view
should look similar to the image below. Return to the
Assembly room and use the Properties tray to change the name of
this part to Body.
Add the Eyes
Once again, drag the Vertex Object
icon into the 3D View to insert a Vertex object. In the
Vertex modeling room, click Insert>Sphere and accept the
default model with 60 facets. Return to the Assembly room
and set the overall size to 15%. Set the X size to 50% and
the Z size to 150%. Move it to the right side of the head and
use the Properties tray to change the name of this part to Eye
Right. Then use the Duplicate With Symmetry function in the
Edit menu to mirror the eye around the plane of the X axis.
Rename the new eye as EyeLeft.
The top and side view images below
placement of the eyes in the Assembly room. These images will
also be used as reference in the following sections for the adding
of the antennae and legs.
Antennae and Legs
Still in the Assemble room, drag the
icon into the 3D View to insert that object and enter the Spline modeling
room, then click Geometry>ExtrusionMethod>Translation.
Also under Geometry, click Envelope>None. Create a line
with five control points adjusted as shown below. The
ConvertPoint tool was used to allow the path to curve smoothly as
it passed through the three middle points. Return to the
Assembly room and name this object to AntennaLeft.
Spline object. In the Spline modeler's Geometry menu, choose
Pipeline for the Extrusion Method. Also under Geometry,
select a Symmetrical Envelope. Create a line with six
control points adjusted as shown below. In the Left view,
the purple line is the extrusion path and the blue lines are the
extrusion envelope. Notice that the ConvertPoint tool was
not used since we want the legs to be built from individual
straight sections without curves. Return to the Assembly
room and name this object to LegLeft1.
||Now we are
going to scale, duplicate and mirror the antennae and the
legs. Back in the Assemble room, select the AntennaLeft
object and scale the overall size to 80%. Set Yaw to -165,
Pitch to -90, and Roll to -165. Move the antenna into the
position shown in the Top view image illustrating the placement of
the eyes. You may need to tweak the scale or rotations to
account for differences in the models. When you are
satisfied with the left antenna, click
Edit>DuplicateWithSymmetry and mirror the object about the X
axis. When you are done, rename this new object AntennaRight.
To produce the legs, select the object
LegLeft1, and Duplicate it twice, renaming the duplicates as LegLeft2 and LegLeft3. Set the
Pitch on LegLeft1 to 15, the Roll to 30, and the overall size to
25%. For LegLeft2, set Yaw to 90, Pitch and Roll to 0, and
overall size to 55%. For LegLeft3, set
Yaw to 120, Pitch and Roll to 0, and overall size to 55%. Arrange the legs as shown in the Top
and Side view image
illustrating the placement of the eyes. LeftLeg1 is in
front, LeftLeg2 is in the middle, and LeftLeg3 is in the
rear. Select LegLeft1
and Duplicate with Symmetry around the X axis. Rename the
new object as LegRight1. Repeat this process on LegLeft2
and 3 to produce LegRight2 and 3.
To allow our butterfly to feed, we
are going to have to give it a proboscis. This is the
tongue-like tube used for sipping nectar from flowers. Construct this
object in the Spline modeler by extruding a circular cross section
on a spiral shaped path as shown below. The path was made up
of ten points, with each point's handles adjusted to produce a
smooth spiral. Be sure to use the
pipeline extrusion method. Back in the Assembly room, rename
this object Proboscis, scale it and move it to the proper size and
Butterfly for Mapping
Now we are going to apply UV Mapping
to the butterfly's body so we can apply a simple texture map to
it. The way we export it for mapping will depend on whether
we are using Subdivision Surfaces, and how we are going to use the
model afterwards. If we are going to do our rendering in
Carrara, then we only need to export the groups needing mapping as
an OBJ file, apply UV Mapping to it, then import the mapped model
back into Carrara for texturing and rendering. The same
approach is used if Subdivision Surfaces were not used.
Subdivision Surfaces, exporting a model becomes a little more
involved. This is because Subdivision Surfaces are
calculated at render time in Carrara so when you export your
model, you only export the basic wireframe used to control the
Subdivision Surfaces. If the model is going to be used in
applications that do not support Subdivision Surfaces and you
don't want to lose this feature, then it will be necessary to
convert the Subdivision Surfaces to an actual mesh. This is
done by selecting only the model groups that are Subdivided, click
on Edit, then ConvertToOtherModeler, and convert the mesh to the
Primitive Modeler. Repeat, but this time convert the mesh to
the Vertex Modeler. This mesh is then exported as an OBJ
file for UV mapping.
Import the OBJ file into UVMapper and
apply UV coordinates to the
model by clicking Map>Planar. On the pop-up window that
opens, set alignment to the X axis and select Don't Split.
You should see something similar to the image below. Note
that this image has been rotated 90 degrees CCW to better fit the
page. Save the mapped model as a new OBJ file and save the
template image. Import the template to Photoshop, add a new
layer, and paint a few black dots along the tail end chest
region. Fill the layer underneath with white, flatten the
image, invert the colors and save as your BodyImage map.
Back in Carrara, clear the scene and load the new mapped OBJ file
back in. Select the body, go into the Texture room, and
apply the texture you just created using parametric mapping.
the wings, we start by dragging the Vertex Object icon into the 3D View
to insert a Vertex object. In the Vertex modeling room, click
Insert>Rectangle. For the U size ad V size, use numbers
with the same ratio as the pixel dimensions for your wing image
maps. For example, the images I used were 717 by 922 pixels,
so I set U to 7.17 and V to 9.22. Back in the Assembly room,
adjust the overall scale to get the rectangle about twice the length
of the body and move it into the approximate position for the left
wing. Some starting values would be 500% for the overall
size. For the position, try -17 for X, 3 for Y, and 5 for the Z.
The exact values will vary from model to model and you will need to
do test renders of the fully textured model later on to get the wing
size and position exactly right.
Rename the rectangle to UpperLeftWing, then duplicate it and rename the
duplicate LowerLeftWing. Lower the Z position of the
LowerLeftWing by 0.1 so that it is just a little lower than the
upper wing. Now group the two wing pieces together and call
the group WingsLeft. Move the Hotpoint to the place where the
wing attaches to the body so that the wing will flap correctly.
To apply the wing textures, we are
going to use two shader layers. The first shader layer will be applied
to the top of the wing and the second shader layer will be applied
to the bottom. A
flat mapped, multi-channel set up will be used. The color
channel is set to contain two sources where the
alpha map (source 2) is subtracted from the top color map (source
1). The alpha map is also loaded into the transparency
channel. All the other channels should be given a Value of
0%. Just saying “None” for the unused channels is not
first layer which was applied to the top of the wing is shown in
the image below. It is Flat mapped onto the top of the
wing. The second layer is identical except that the bottom
color map is used and the shader is Flat mapped to the bottom of
the wing. Though
it is not shown in this image, you will also want to add a small
amount of fine noise to the bump channel for the top and bottom
When you are ready to make a test
render to see how the wing will line up with the body, be sure to turn on the "Light Through Transparency" in the
Back in the Assembly room, select the
group WingsLeft. Mirror the wings by selecting Duplicate
with Symmetry on the X plane and name the new group WingsRight.
Monarch Strike a Pose
You can change a wing's elevation by
selecting it and changing the value for Pitch in the Properties
menu on the right side of the screen. For the left wing,
positive values of pitch raise the wing and negative values lower
it. For the right wing, this is reversed. To keep
things realistic, the wing should not be raised more than 75
degrees above the horizontal, and it should not be lowered more
than 30 degrees below the horizontal. If you plan on
animating your Monarch, the wings flap at about 5 times per second
The Rest of
The butterfly was positioned as though
coming in for a landing, with the wings elevated 60 degrees.
The plant models were sprigs of Hemlock generated using XFrog and
imported into Carrara. The background was a Bi-gradient
applied to a simple backdrop using Carrara's scene effects.
Three lights were used and Global Illumination was turned on to
produce the render.
That covers it for this time
around. This project covered a lot of territory and I
learned a great deal from it.
Good luck with your model and Happy
[RETURN TO TUTORIALS]
Copyright © 2003,
Carl E Schou, All Rights Reserved