home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
548a.lha
/
ImagineTutorial
/
detail.tutorial.pp
/
detail.tutorial
Wrap
Internet Message Format
|
1991-09-07
|
72KB
From spworley@ATHENA.MIT.EDU Tue Jun 11 20:34:32 1991
Received: from E40-008-11.MIT.EDU by ATHENA.MIT.EDU with SMTP
id AA04654; Tue, 11 Jun 91 23:35:37 EDT
From: spworley@ATHENA.MIT.EDU
Received: by e40-008-11.MIT.EDU (5.61/4.7) id AA03208; Tue, 11 Jun 91 23:35:31 -0400
Message-Id: <9106120335.AA03208@e40-008-11.MIT.EDU>
To: imagine@ATHENA.MIT.EDU
Subject: Intro Detail Tutorial (file 1 of 3)
Date: Tue, 11 Jun 91 23:35:30 EDT
Status: RO
This file is a tutorial introduction to the Detail Editor. It
describes the way Imagine stores objects, how Imagine interacts with
you to show the objects you are building, how you can build and
manipulate these objects, and make complex objects formed of many
sub-objects.
A later tutorial will describe the more advanced features of the
Detail Editor which allows you to manipulate objects in much more
complex ways, like cutting one object with another, making outlines
and filling them with faces, defining objects by successive cross
sections, and bending objects around tubes and spheres, and
even using outlines as a lathe guide.
A third tutorial will be a more general discussion of the approaches
to object creation, discussing how to plan and actually build your
objects as opposed to what each menu item in the Detail Editor does.
The last two tutorials have not been written as of today (6/11/91) but
will be forthcoming in the next month or so. My previous tutorials
are on texture, brushmaps, the use of transparency and glass, the
Forms Editor, and the Project Editor.
----------------------
This tutorial is more basic than most of my others. I realize
that many people will be disappointed, but I feel it is necessary to
give an introduction describing how objects are defined and how the
standard controls in the all of the editors are used. New users will
GREATLY appreciate a description of the goals of the Detail Editor and
how objects are defined and used in Imagine before delving into a
description of the suboptions of each menu item. For those of you who
are looking for a more hard-core Detail tutorial, none to fear! It's
my next project, and it will should blend into a nice, logical
successor to this tutorial. Even those who scoff at this introduction
might want to read it anyway; there are a lot of subtle points
(especially about pick and select!) that are well worth learning
about.
This tutorial describes the Detail Editor in Imagine version 1.1. There
are only minor differences (Taut and Fracture) from version 1.0.
-----------
An Introduction to the Detail Editor
Last Revised 6/11/91
By Steven Worley
-------------------------------------------------------------------------
I. What are Imagine objects?
-------------------------------------------------------------------------
When a computer program wants to draw a 3D object, it must have some
way of internally representing it. Some modelers store each object as
a bunch of 2 dimensional polygons- a 3D object is a formed from a
whole bunch of these polygons pasted together. A cube might be defined
as six 2D squares arranged in a group. Since our final picture just
has to LOOK like it is solid, defining the outer surface is usually
all we need to do to make it seem as if the objects ARE solid.
Any object can be defined as a bunch of flat polygons. Curved surfaces
like a sphere can use a lot of polygons in order to approximate the
surface closely; certain computer tricks (including a very important
one called Phong shading) can smooth out the surface even more. Most
of the 3D objects, or models, that you've ever seen in any 3D computer
graphic were defined as polygons. Sometimes advanced programs define
surfaces with a mathematical equation, or by a certain type of curve,
and sometimes a computer model will have certain objects it "knows"
how they should look (like a mathematically defined sphere or cone)
but most use polygons for definition, Imagine included.
All objects in Imagine are defined as a bunch of triangles. Nothing
more. It is particularly easy for a computer to decide what a
triangle would look like when viewed as a 3D image. Any more complex
polygon (like a square or octagon) can be broken down into a bunch of
triangles pretty easily. Having only one "shape" to deal with is
actually a convenience for us, as we don't have to worry about
questions of what type of polygons a certain object is made of, or how
to convert one type of polygon into another. The computer likes
dealing only with triangles because it can optimize it's renderer, the
program that actually draws the pictures, to expect and deal with just
one shape simple instead of 246 different ones.
Although an object is made of only triangles (called FACES) it has
points and edges which define where these faces go. If you think of a
simple triangle, it has 3 defining points at the corners, three edges
connecting these points, and one face which actually makes up the body
of the triangle. Imagine can better deal with the objects by defining
these sub-parts, and it allows us to manipulate the objects much more
easily.
Every object has a number of defined POINTS. Imagine understands an
EDGE to be a line segment that connects any two of these points. A
face is defined by naming the three edges that make it up. Instead of
storing nine numbers for each triangle (the X,Y,Z location of each
corner) it just names the edges, which in turn name the points. This
reduces the size of a description of an object considerably. It also
helps in editing objects, since if you move a point, each face that it
is part of will adjust itself to the include the new location of the
point. The other alternative would be to have each face manually
manipulated individually, which is obviously a big pain.
Think of a square. Imagine would store a square as two triangles that
share one edge together. The square would actually contain FIVE edges
(the four sides and the diagonal) and FOUR points (one at each of the
corners.) It would have two faces, or triangles. A cube is stored as
twelve faces, formed by eighteen edges, which are in turn defined by
eight points.
This definition of objects actually gives us some extra leeway in how
we define our model. Imagine doesn't require your object to be
connected at all; that is, your object could be two completely separate
surfaces that never touch. You might want an object to be a flying
logo. The letters don't actually touch and form one solid object; they
are independent from each other. Imagine doesn't care; you can call
any collection of points, edges, and faces an object. Imagine also
gives you tools for splitting off part of an object (like a letter) or
joining two parts together.
Since this is a computer model and not a physical one, we can violate
physics and have objects self-intersect. You might overlap two spheres
half-way and join them together to form one object. You'll only see the
outer surface when you render the new double-sphere object.
There actually are two objects that Imagine does not define as a group
of points, edges, and faces: a perfect sphere and an infinite plane.
These are the only exceptions to the normal definition of objects in
Imagine. Well, OK, there's another. An axis containing NO points can
still be manipulated as an object. It certainly won't show up in a
render, but sometimes it's nice to use a lone axis as an invisible
object in certain cases. You can also use the axis as the start of a
brand new object.
There are certain "Editors" in Imagine that allow us to view and
manipulate objects in different ways. Some editors let you place
objects in scenes, or define how the objects change with time. The
Detail Editor is where objects are usually created and modified. It
allows low-level editing of objects; you can add points and faces by
hand, move them, delete old ones and in general be as picky as you
like in adjusting every point.
Defining objects point-by-point is obviously not very suited to
complex objects, sometimes with THOUSANDS of points. There are more
powerful controls that let you modify your object in more global ways.
You can add pre-made 'primitive' objects like a cylinder or a torus
(doughnut shape.) These primitive objects have the points, edges, and
faces that define it already defined. There are certain tools that
let you draw an outline, say the profile of a chess pawn, which is
converted to a three-dimensional `spun' object, as if it was chiseled
out on a lathe. Other tools let you slice off parts of your object
using knives that you can build yourself. In general, object creation
is done with these powerful tools, and picky touch-ups are the only
time you grab and move individual points. A sculptor does not glue
sand grains together!
-------------------------------------------------------------------------
II. Looking at Stuff in the Detail Editor
-------------------------------------------------------------------------
The Detail Editor is the program that lets you manipulate and modify
objects in Imagine. Like the other editors (and any Amiga program, for
that matter) Imagine gets input and directions from you by either
moving the mouse and clicking it's buttons, or by typing on the
keyboard. Most advanced options use pull-down menus to select the
function you want to perform. An important trick, especially when you
start using Imagine a lot, is keyboard-equivalents. This lets you
select menu items via the keyboard, by pressing the right Amiga key
along with another letter or number. All of the keyboard equivalents
can be selected via pull-down menus, although not all menu items have
keyboard equivalents. You'll find that learning the most used
commands' keyboard equivalents can save a LOT of time. Its quick and
easy to punch right-Amiga-o to zoom your view out; pulling the menu
down repeatedly is a pain. A few other commands (especially moving,
rotating, and scaling objects) use the keyboard to indicate what you
want to do (move, rotate, or scale) while simultaneously using the
mouse to control the extent of the transformation.
You can get into it from any point in Imagine by selecting the menu
item 'Detail Editor' from the Project pull-down menu. The screen
should then split into four smaller windows with a thin status line at
the bottom of the screen and another at the top.
When you start up the Detail Editor, you'll see what is known as a
"Quad-View." Are four windows labeled "top", "front", "right", and
"perspective", which are different ways of viewing the object you are
manipulating. It is difficult to manipulate 3D objects with a 2D mouse
and a 2D screen, and the tri-view is a compromise that makes the best
of these unfortunate 2D restrictions.
The top, right, and front views show you the wire-frame skeleton of
the object you're editing. A wire-frame is a view of your object with
each edge shown as a line segment. Faces are NOT shown, so the object
looks like it's built from pieces of wire that join at the outside
edges of the object, hence the name wireframe. Wireframes have two
advantages; they are much faster to draw than "solid" models, and
since you can see _into_ the object, you can manipulate points and
edges on the interior of the object that you wouldn't normally see.
The top, right and front views are just that- a wireframe view of your
object shown from the three orthogonal (right angle) directions. There
is also a small axis at the bottom left corner of each view that shows
the world's X,Y,Z coordinate system. In Imagine, the X,Y,Z is defined
just like it is in mathematics- X is left to right, Y is in to out,
and Z is down to up. Some 3D programs define Z to be in-and-out, so
note Imagine's difference.
There is an absolute "world" coordinate system defined by these axes.
You can select "Coordinates" from the Display menu, which will
continually display the coordinates of the mouse pointer in the
world's X, Y, and Z system. The units that it measures in are
arbitrary, but it is often convenient to call them "Imagine Units."
Objects tend to be on the order of 10 to 100 Imagine Units in size,
since this is a comfortable scale to deal with when we design
scenes to be rendered.
There is a grid shown in the three main windows. This grid is used to
give you a sense of scale, and can be turned on or off in the Display
menu. The spacing between the lines can be set by choosing "Grid
Size", also from the Display window. The default is 20, which is a
reasonable starting size. Some commands let you use the grid to snap
objects to precise locations- these are the most common reasons you
want to change the grid size.
The fourth window (with no grid in it) is called the "perspective"
window, which allows you to view your object from any direction. You
can also change modes to view your object as a wireframe or as a
"solid" model, where the faces become opaque so that you cannot see
through your object. In this window, you CANNOT manipulate your
objects- it is a view only.
Each of the four windows can be quickly zoomed to take up the full
screen very easily by merely clicking on the tall narrow box to the
left of each view that contains the name of the window. The window
will expand to take up the entire screen, allowing you to have a
better view of whatever you're working on. To zoom back to the
quad-view, just click on the name to the left again. To go immediately
from a full screen display of one view to a full screen display of
another, you just click the name of the new view to the right. Being
able to see all four views at once is often an advantage, but so is
seeing a larger, more detailed view. This method allows you to quickly
and easily change how you look at your model.
Just to get a sense of how this works, pull down the menu item
'Functions' and select 'Add primitive'. Click on the 'Torus' button
and click on 'OK' to accept the default parameters. All this did was
make a pre-defined object that we can look at when we manipulate the
views.
You should see an object in all four of the windows. This is the same
object, just viewed from different directions. Remember the three main
views (Top, Front, and Right) all show a WIREFRAME view from their
respective directions, so the inside of the doughnut might look very
complex.
Perspective, the remaining view, also shows a wireframe view of the
doughnut. You can change the view by manipulating the two white
sliding boxes on the top and left of the window. The bottom white
slider lets you view from different directions AROUND the object. If
the slider is in the middle, you're looking at the front. If it's 3/4
of the way to the right, you're looking at the right hand side, and if
it's all the way in either direction, you're looking at the back. The
vertical slider on the right controls the ANGLE you're looking at the
object from. Centered is a level perspective, all the way up gives you
a straight-down view, and all the way down gives you a straight-up
view. By combining these two sliders you can look at your object from
any direction.
You can change the perspective view by selecting 'wireframe' or
'solid' from the Display pull-down menu. Solid takes longer to show
your object, but removes the points that are hidden, getting rid of
the X-ray wireframe view. A final way of changing the perspective view
is by selecting 'shaded' from the Mode pull-down menu and zooming the
perspective view to the full screen. This shades the object in false
black and white colors which sometimes lets you see the shape of the
object more clearly.
There are a few commands that let you change your absolute vantage of
your object. You can zoom your view (on all windows) in and out by
using 'zoom in' and 'zoom out' from the View menu. This lets you see
more of your object at once, or just a certain portion. Each zoom in
or out will double or halve the scale respectively. You can also
select a numerical zoom by selecting 'set zoom' in the View menu,
which allows more precise magnification levels by simply typing in a
number. Zoom in and zoom out are often used, so knowing the keyboard
equivalents of right-Amiga-i and right-Amiga-o can save a lot of time.
To scroll the views around, you can click in one of the three main
views, then use the arrow keys to move the view in whatever direction
you like. You'll notice that if you change one view, the others will
change as well- all of the views are linked so they show the same
volume of space. You can also scroll the view by telling Imagine where
you want the view centered. You select 'Re-center' from the View menu
and click on where you want the new center of your view to be. Usually
you click right in the middle of the object or area you're interested
in. The keyboard equivalent of right-Amiga-. (period) is very
convenient.
The display that Imagine shows you is very important, as it is your
interface in dealing with everything in the program. One important
option is found in the Display menu; it is called "interlace".
Interlace will change the screen resolution which the display uses. An
interlaced screen is 400 pixels high, whereas a non-interlaced screen
is only 200. Unfortunately, the interlaced display will flicker on
many Amigas. An Amiga 3000 or a "flicker-fixer" equipped Amiga will be
able to use interlaced mode without the flicker. The interlaced mode
allows much more detail and more precise location of points, so it is
by far the preferred mode to work in. Even if you do have a flickering
display, it is probably worth the annoyance to have the extra
resolution.
A couple ways to reduce the flicker if you have it: you can muck with
the monitor's contrast and brightness, or you can change the screen
colors using the imagine.config file (see my Project tutorial). My
favorite solution is wearing sunglasses- it works very well indeed,
and you look cool while using your computer.
--------
(Continued in next file...)
From spworley@ATHENA.MIT.EDU Tue Jun 11 20:47:21 1991
Received: from E40-008-11.MIT.EDU by ATHENA.MIT.EDU with SMTP
id AA04877; Tue, 11 Jun 91 23:49:14 EDT
From: spworley@ATHENA.MIT.EDU
Received: by e40-008-11.MIT.EDU (5.61/4.7) id AA03394; Tue, 11 Jun 91 23:49:08 -0400
Message-Id: <9106120349.AA03394@e40-008-11.MIT.EDU>
To: imagine@ATHENA.MIT.EDU
Subject: Introductory Detail Tutorial (File 2 of 3)
Date: Tue, 11 Jun 91 23:49:06 EDT
Status: RO
-------------------------------------------------------------------------
III. Moving Stuff in the Detail Editor
-------------------------------------------------------------------------
Knowing how to move your views around is important, as when you're
manipulating an object you'll find yourself changing your viewpoints
around constantly. There is a whole new set of commands for moving
the OBJECTS in the editor around.
In order to manipulate an object, we either have to load an existing
one or start one from scratch. Imagine comes with several simple
pre-built objects called 'primitives' that are very convenient to use
as starting points for creating your own objects. Talking about these
primitives doesn't really belong at this point in the tutorial, but
it would be nice to be able to have something to look at and manipulate
as each of the viewing and manipulation commands are presented.
To make a primitive object, select 'add' in the Edit menu, and
'primitive' in the sub-menu. There are six simple shapes that Imagine
will automagically create for you. They are a sphere, a cylinder, a
cone, a disk, a plane, and a torus. When you select one, Imagine will
ask how many points the object should have.
With primitives like a sphere, the more points that define it, the
smoother its appearance is going to be when rendered. Remember that
even curved surfaces are made from triangles, and the surface becomes
better defined with each point added. However, an object with more
points than are necessary can become a burden; drawing the object in
the editor takes more time, and although the final rendered picture
with be higher quality with extra points, it will also take longer.
Thus, when you add new primitive objects, Imagine asks what level of
detail you would like.
For example, the sphere primitive asks how many circle sections and
how many vertical sections will make it up. The default is a
reasonable number of defining points. If you were looking for a higher
quality sphere because you were going to zoom in very closely to it,
you might use extra points. If the object is going to sit in the
background and not be examined closely, you might select fewer points.
Most of the time, the defaults serve as a nice compromise, but you are
much more likely to simplify the object as opposed to increase the
default level of detail. The plane primitive in particular lends
itself to simplification- most of the time you can bear with defining
the simplest plane possible (2 triangles) as opposed to the
overburdened default of a grid of 200 triangles.
Each primitive lets you define the numbers of points that define it;
the parameters that you can vary are all pretty self-explanatory. For
example, the cylinder lets you define how many points are to form the
circle around the rim, and also how many sections the body of the tube
should be defined as. Other options (available for some primitives)
are simple flags that define whether to close the ends of the cylinder
(to create a hollow tube versus a log) or to 'stagger points' in some
models. Staggering points increases the smoothness of curves- you
should almost always leave it on. Note that the disk and the plane
are actually flat objects- the others all have depth. All objects also
let you define their size; this is quite straightforward.
When you have loaded an object or added a primitive, you'll notice
that you can see each point and edge in the wireframe. In addition,
you'll see an AXIS, usually near the center of the object. In Imagine,
EVERY OBJECT HAS IT'S OWN INDEPENDENT AXIS. An object's axis helps
Imagine determine which way an object is facing, how it is scaled, and
even what it's position is. Imagine doesn't understand what the
objects ARE; it doesn't realize that a complex object like an airplane
should orient itself with wheels down instead of balanced sideways on
a wingtip. The axis actually defines the object's position; if you
ask Imagine to move an object, Imagine really just moves the axis, and
the object's points, edges, and faces are dragged along with it. When
you rotate an object, the rotation occurs around the object's axis, as
opposed to the world's absolute reference system. Scalings, where you
change the size of the object, also use the object axis as a basis.
When you want to manipulate a certain object, you have to tell Imagine
which one (or ones!) that you're interested in, since you might have a
dozen different object loaded at once. The way of choosing an object
so you can manipulate it is just by clicking on it's axis. The object
will turn a pretty blue color (or sometimes purple- more later!) which
indicates that the object is chosen- any manipulation commands will
be done on this one object. The object is said to be "picked", and
Imagine knows that you want to apply commands to this object as
opposed to another.
Once you've picked an object, the most common manipulations are to
move it around, rotate it, or scale it. These basic commands are often
used, so Impulse has made it pretty easy to do. When you have a
selected an object, you type the letter 'm' for move. The object will
disappear (!) and be replaced by a big yellow "bounding box" which
encloses the volume where your object was. This bounding box
represents the size, shape, position, and orientation of your object.
Since the box is so simple to draw, Imagine can update it in realtime
as you manipulate it, allowing you to position it quickly and easily.
After selecting the object and pressing "m", Imagine knows you want to
move the object. Putting the cursor in any of the three main views,
pressing the left mouse button and then dragging the mouse will drag
your object in the direction you move. You do not have to click on the
yellow box; anywhere in the view is fine. You can keep moving the
object as long as you like; you can let go of the mouse button, move
the pointer to another position in any of the three views, and
continue moving the object. You are also welcome to zoom in and out,
make one view full-screen, or re-center your views at any time. When
you are finally done moving your object, pressing the space bar will
accept the change and your object will be displayed as a wireframe in
it's new location. If you've made a mistake, you can press the ESC
key instead of the space bar. This also exits the move mode, but the
object's position is unchanged from where it was before you started to
move it. This is obviously useful for fixing mistakes or changing your
mind.
Two other commands work much like move: rotate and scale. If you
select your object and press "r", you will rotate your object, and
you'll see the yellow bounding box spin as you drag the mouse with the
button down. You can also change spin axes (to pitch or bank the
object, as opposed to yawing it) by pressing "x", "y", or "z" to
define which axis you want to rotate around. All rotation is done
around the OBJECT'S axis.
Scaling is done by selecting "s" and dragging the mouse. Again,
scaling is done relative to the OBJECT's axis. If the axis is in the
center of the object, the object will grow in all directions. If it is
at the bottom, the object will grow up and out, but not down.
Each of these three commands (move, scale, and rotate) can be called
either when you've picked an object or during any other move, scale,
or rotate command. For example, you might pick an object, press "m"
to move the object, position it in a new place, press "r" to spin it,
then "s" to scale it. You do not have to press the space bar after
every change; only after you are finally satisfied with the new
location, size, and orientation of your object do you want to press
the space bar to accept the changes you've made. Aborting by using
the ESC key will remove all of the changes (movements, rotations, and
scalings) that you've made.
These manipulation commands are easy to use, and they have other
controls that make certain manipulations even easier. At the bottom of
the screen, there is a status bar that will highlight which mode
you're in. If you are moving, the "M" in the "M=Move" at the bottom
of the screen will be highlighted, and the "R" and "S" highlight when
you're rotating or scaling.
The "x", "y", and "z" commands that allow you to change rotation axes
also work in moving and scaling. They act in these two modes as
toggles- when you start a move, you are free to move it in all three
directions, X, Y, and Z. You might want to restrict a direction of
motion, though, if for example you are moving a table along a floor
and you didn't want to accidentally lift the table into the air as you
moved it left and right. Pressing the "x", "y", and "z" keys will
toggle the allowable directions on and off, so pressing "z" will
anchor the table's height, and pressing "z" again will allow you to
lift it up if you change your mind. This also works in the scaling
mode; if you want to make an object narrower without changing its
height, you might toggle "z" and scale the object down. With the "z"
toggle off, the object will maintain it's Z height, but will shrink in
the X and Y directions. At any time, the display at the bottom of the
screen shows the letters "X-Y-Z" and highlights the directions that
are "active" or changeable.
A related shortcut is using the capital letters "X", "Y", and "Z",
which set the toggles to allow movement and scaling in one direction
only. If you wanted to lift a table straight up, you just type "Z"
and the table will be free to move up and down, but not in the X or Y
directions. This method of setting the toggles overrides whatever
position they were set in before, but you can use the individual
toggles afterwards to set whatever freedoms you like.
Imagine gives you even more flexibility if you want to use it.
Whenever you move, rotate, and scale an object, it is based on a
certain coordinate system. The default is to use the standard
coordinate system- the set of axes that is fixed in place and shown at
the bottom left of the three main views. This is called the "world"
coordinate system. However, each object has it's own "local"
coordinate system, defined by it's own axis. Imagine allows you to use
a local coordinate system instead of the world system if you like.
For example, if you have an object in the shape of a plane, the local
coordinate system probably has the Y axis (going front to back) in
line with the main fuselage of the plane. Using "r" to rotate the
plane, you can easily position it so that it is angled up like it is
climbing into the sky. If you then wanted to move it in a straight
line along it's "flight path", the direction it's pointing, you could
select move, and try to judge by eye the new position in the direction
in front of the plane. If, instead, you select local mode (by using
"l") and restrict motion along the Y direction by typing "Y", the
plane will move smoothly along the line it's pointed along. In the
world coordinate system, it's moving in both the Y and Z directions,
but in it's local coordinate system, it's moving only in it's Y
direction.
To switch between coordinate systems, you just type "l" and "w"
whenever you want to change. The current coordinate system has L or W
highlighted at the bottom display just like the X-Y-Z indicators.
Many times the local and world coordinate systems will be the same, so
one is equivalent to the other.
One final option when you're manipulating objects allows you to
manipulate the axis of the object independently. If you want to move,
scale, or rotate an object's axis [without simultaneously affecting
the object!] you can use "M", "R", and "S", the capital letter
versions of the object manipulation commands, to affect only the axis.
There are some occasions you might want to do this for fancy tricks,
but most of the time, you just want to move the axis around just so
that it lies near the center of your object.
The standard commands to move, rotate, and scale objects have been
streamlined for ease of use since they are performed so often.
Sometimes, however, they are somewhat lacking, especially when you
need precise control over how your object is to be manipulated. For
the precise control of object manipulation, Imagine has a special
command called "Transform" which allows you to numerically control
your object as opposed to judging by eye.
The transform command works much like the standard interactive
commands in that you first select your object (by clicking on it's
axis) and then telling Imagine what to do to it. To enter the
transform command, you click on the object (it becomes blue or purple)
and pull down the menu item "transform" from the Object menu. A small
requester will appear. You have six options you can choose from:
translate, rotate, scale, position, alignment, and size. You also
enter X, Y, and Z arguments.
Translate takes the X, Y and Z arguments and moves (translates) the
object that distance.
Rotate will rotate the object around the axis you specify by an amount
(in degrees) you specify in X, Y and Z. Performing more than one
rotation at once is legal, but it is easy to make mistakes in final
orientation. If you rotate around more than one axis at once, the Z
rotation is performed, then the X rotation, then the Y rotation.
Scale will scale your object by a certain factor. To double the size,
just enter 2 in each of the X, Y, and Z boxes. A negative number is
completely legal, and if one or three of the scalings is negative,
you'll actually get a scaled mirror image of your original object.
Position is like Translate in that it moves your object. Instead of
moving a certain distance, however, it moves to absolute world
coordinates.
Alignment is also absolute; it will rotate your object in whatever way
necessary to align in the direction you specify, regardless of the
original orientation. Setting X, Y, Z all to zero will make the object
line up exactly with the world axes.
Size is again absolute. It uses the axis size as a benchmark, and will
scale the object (and it's axis) to an absolute size. The "default"
size that all axes start out at is 32 Imagine Units, so entering an
XYZ size of 32 32 32 will bring most objects back to their virgin
sizes.
To use any of these sub-commands, just click on the box next to it's
name and type in the appropriate X, Y, and Z arguments in the boxes to
the right. Selecting "OK" will perform the manipulations, "cancel"
will abort without affecting your object.
You have the option to use world or local coordinates, just as in the
interactive commands; just click on either box to decide. The default
is the world system. You can also manipulate only the axis (like the
capital letter commands in interactive manipulation) by selecting
"transform axis only."
Most manipulations use the interactive controls, and the
transformation requester is used only for accurate, measured changes.
One problem that you may run into after an interactive or a
transformed manipulation is a "dirty" screen. Imagine erases the old
object from before your move or scale or rotate, and draws it in the
new position. However, to save time, it will not redraw any other
wireframe object that was in view. This means that the areas were the
old object intersected any other object in the view will be blank;
part of the other object will be erased. If you want to check to see
if this is the case, you can select "Redraw" from the Display menu,
which will redraw all of the objects, eliminating the problem. One
case where this is almost necessary is when you have multiple copies
of an object at the same place. If you move one copy, the other isn't
redrawn. Since it was in the exact same location as the old, erased,
object, it looks like it has disappeared! This is easy to fix with
redraw. It is another oft-used command, so knowing the keyboard
equivalent of right-Amiga-r is handy.
A problem you'll run into when manipulating complex objects is the
sheer time it takes to redraw the wireframe model (in three views).
Imagine has a way to speed the display of these objects- it shows
the bounding box of the object (like the one shown in interactive
manipulation) instead of the wireframe. You LOOSE the detailed view
of your object, but you can still see the position, size, and
orientation. To make an object "quickdraw" in this mode, you can
use three commands in the Functions menu. "Quickdraw all" will make
all of the objects display in quickdraw mode. "Quickdraw none" will
make all objects display the normal wireframe. "Quickdraw pick" will
make your picked (blue or purple highlighted) object display in
quickdraw mode. These quickdraw boxes are very handy, and since
they can be toggled at any time in the Detail Editor, it makes sense
to use them when screen updates start to get too slow.
-------------------------------------------------------------------------
IV. Harvesting and Sorting with Pick
-------------------------------------------------------------------------
Since you can have many objects loaded at once, there has to be a way
for you to tell Imagine what object or objects you want to deal with.
You've done this already, by clicking on an object's axis, and
watching it turn color. This shows that the picked object is ready to
be manipulated on.
What if we want to manipulate more than one object at a time? A
standard way to "multi-pick" things (like icons in AmigaDos, or
objects in Imagine) is to use the shift key. By holding the shift key
as you click on objects, Imagine knows you want ALL of them picked,
not just the latest one. In fact, if you press the shift key, the
display line at the top of the screen will change to show how many
objects are picked. Commands will affect all of the picked objects,
not just one. In the case of moving, scaling, and rotating more than
one object, the FIRST picked object's axis defines the basis of all
the manipulations, as well as the local coordinate system for
manipulating all of the objects.
There are easier way to pick many objects than by repeatedly clicking
on each object's axis. Imagine allows you to change how objects are
picked by the "Pick Method" submenu in the Modes menu. The default is
"click", which means that when you click directly on an object's axis,
it will become picked. Other methods of picking can be chosen from
the pick method submenu. If you use "drag box", instead of clicking on
the object axes, you should press and hold the mouse button while
dragging the mouse. A large box will follow your mouse, and when you
release the button, an object within the box will become picked. If
you press and hold the shift key when you release the mouse button,
ALL of the objects within the box will become picked.
Lasso is similar, but more versatile. You press and hold the button
while drawing a large circle or oval or squiggly shape. When you
release the button, an object within the region you've drawn will
become picked. Again, you can hold the shift key to pick ALL of the
objects within.
A final option in the pick method submenu is called "Lock". Lock isn't
a method of picking; it really has more to do with when moving picked
objects. Lock is a flag; you can toggle it on and off by selecting it
from its submenu. When Lock is on, any moved object will snap to the
nearest grid location when released. This is automatic and is easier
than using the one-time "Snap to Grid" (described later, I promise!)
again and again when you're trying to get precise placement.
Two other utility commands can be found in the Pick/Select menu.
"Pick all" will pick ALL of the objects in your workspace. "Unpick
Last" will allow you to remove the last object you picked from your
set of picked objects. This is handy when you pick one too many
objects and you want to unpick the last one you chose.
It is easy to pick objects or sets of objects using the different pick
methods. There is actually another powerful way to change what object
or objects are picked; it is called "select." There is a very, very
important difference between a "picked" object and a "selected"
object; you've been using pick to highlight objects and manipulate
them. Select is sort of a pick-wanna-be.
One problem that can occur is when two object axes are directly on top
of each other. If you click on the common axis location, one of the
objects will become picked. (The first one that was created or loaded
into the Editor). If you click again, the same object will remain
picked and the second object will just sit there. If you hold the
shift key and click on the common axis again, the second object WILL
be picked, but now BOTH objects are picked. If you want to pick just
the second object and not the first, you can either MOVE one object
just to uncover the other axis, or you can use select.
There is a solution when picking (or unpicking) objects becomes
awkward (or impossible!). SELECT allows you to control what objects
are picked by allowing you to add and remove objects from your set of
picked objects one at a time.
Think of buying lunch at a cafeteria, and you pick which food you want
to eat. One way of "picking" food to add to your tray is by having the
lunch worker point to each of the cafeteria's food bins, and saying
"No, the next one, the next one, the next one- yes! That one!" as the
worker points to the foods in turn. As the worker selects item after
item, you can choose to PICK the item he's pointing to at any time.
The analogy extends; What if your arms are full of cafeteria food and
you want to put some back? Your arms are busy holding all the food;
you can't easily grab an item and put it down. You can, however, ask
a friend to "unpick" the item for you. If your friend has trouble
with big words (like the names of food), he can just point at each
food in your arms in turn until he points to the granola yogurt you
want to put down. You then say "Yes, yes! Get rid of that!"
This is exactly what select allows you to do. Your arms are full with
picked objects. You can't just click on an object to "unpick" it
because Imagine thinks you're just making sure you have it picked. You
also might have problems indicating the right object to pick, as in
the case of two objects on top of one another. The major difference
between the the cafeteria and Imagine is that your mentally challenged
friend is also the cafeteria worker, and will point to both types of
objects for you.
Select works by allowing you to highlight different objects in a
controlled way. A "selected" object might be picked or not; A normal
object is white, a selected object is orange, a picked object is blue,
and a picked AND selected object is purple.
Only one object is ever be selected at once, which is helpful in
reducing confusion. The commands for selecting objects are completely
different from those of PICKing objects; the whole point of select is
that sometimes the methods used to pick objects are awkward, and
select gives you an alternative way to pick them.
The easiest and most common method of selecting an object is by using
two commands, "Select next" and "Select previous", both found in the
Pick/Select menu. Using "Select next" repeatedly will cycle through
all of the objects in the order that they were created or loaded.
This command does NOT care whether the object is picked or not; it
will select all objects one at a time. "Select next" is often a
command you want to repeat, so knowing the keyboard shortcut of
right-amiga-n is almost necessary. By repeatedly using select next,
ANY object can be selected because Select next will eventually reach
it. "Select previous", right-amiga-p, will select objects in the
opposite order, in case you overshoot with select next. One
convenience is that when an object becomes selected, your view will
jump to center the object on the screen, always allowing you to see
what you just selected.
When an object is selected, there are certain commands that will cause
it to become picked or un-picked. The most common command is called
"pick select", which can be found in the Pick/Select menu. When you
use this menu option, the selected object will become picked. If the
selected object is picked and you want to un-pick it, you can use
"unpick select" from the pick/select menu to unpick it.
"Select next" is kinda klunky, especially if you know exactly what
object you want to select. One quick command that is sometimes useful
is "Home", which selects the very first object you created or loaded
into the Editor.
Two other useful commands to quickly select specific objects are "Find
by Name" and "Find requester", both found in the Functions menu. "Find
by Name" allows you to type in an object's name (assigned in the
Attributes requester, more later) and your view will shift to center
on the object you named. In addition, the object becomes selected,
allowing you to pick-select or unpick-select it. The "Find by
Requester" does the same thing except it displays the names of all of
the currently loaded objects, and you just click on the name you want
to select. This requester is also useful because it tells you the size
(# of points, edges, and faces) of each object, which is an excellent
judge of object complexity. It's also fun to say "Cool! My tomato has
1,821 points!"
----------
Continued in the next file...
From spworley@ATHENA.MIT.EDU Tue Jun 11 21:15:50 1991
Received: from E40-008-11.MIT.EDU by ATHENA.MIT.EDU with SMTP
id AA05348; Wed, 12 Jun 91 00:17:48 EDT
From: spworley@ATHENA.MIT.EDU
Received: by e40-008-11.MIT.EDU (5.61/4.7) id AA03799; Wed, 12 Jun 91 00:17:43 -0400
Message-Id: <9106120417.AA03799@e40-008-11.MIT.EDU>
To: imagine@ATHENA.MIT.EDU
Subject: Introductory Detail Tutorial (File 3 of 3)
Date: Wed, 12 Jun 91 00:17:42 EDT
Status: RO
-------------------------------------------------------------------------
V. Hierarchies and Complex objects
-------------------------------------------------------------------------
With complex models, sometimes you don't want to make one huge, mungo
object to represent the entire model. You might want to make a forest
object that has 20 trees in it, and it seems silly to carve the whole
thing out of one block. Or, you might be building an object that is
logically a bunch of separate parts, like a clock with a face, a
pendulum, two hands, and a frame.
Another important ability you might want is to be able to give
different parts of a complex object different attributes, or colors.
Imagine lets you color and define the look of your objects in
different ways, and you can even tell it to make different parts of
the same object look different. But when you're building something
like a window, the glass panes are considerably different than the
wood frames; it is easier to define each as a separate object then
somehow group them together.
There is a function that lets you do exactly this- group objects
together. When you have a model that you want to make (and keep!) in
separate sections, Imagine allows you to establish a group of objects
which will stay together. It allows you to treat the group as an
entire ensemble (if you want to move everything, or apply a command to
the whole set), or you can pick out one particular object and deal
with it independently.
Grouping is very easy to do. If you want to group two objects
together, you click on one object, then press the shift key and click
on the other. Remember that this is just the method of picking more
than one object at once. When you have multi-picked the objects, you
select "group" from the Object menu. A purple line will appear joining
the axes of the objects. The first object that was selected becomes
the "parent" of the group. If you group more than two objects, the
purple "group" lines all run from each "child" object to the parent
object. This lets you see which axis to click on to pick the entire
group. Sometimes it is nice to assign a lone axis as the parent of a
group, especially when no part of a group really doesn't lend itself
to being a parent.
Splitting a group back into it's component parts is also easy; just
pick the group by clicking on the parent. The entire group will become
picked, and selecting "Ungroup" from the Object menu will split the
group. The purple joining lines will disappear, and each child will
be independent again.
Once a group is made, it can be treated almost identically to an
ungrouped object. You can pick it (by clicking on the parent) and the
entire group will become highlighted. You can then move, scale, or
rotate the entire group as a whole. If you click on a CHILD object,
the child will be picked, but not the group. You can then move, scale,
or rotate it independently of the group, assign it individual
attributes, or perform a command on it independently of the rest of
the group. Even when you move the child object around, it will STAY
grouped; you must use "ungroup" to ungroup objects. There are modes
where you can pick parents separate from their children; this is
described in the next section.
In addition, you can make groups of groups. Or groups of groups of
groups. This is done exactly the same as before; you can pick one
group, multi-pick a second, and group them. Having these multi-layer
groups is sometimes very useful. One excellent example would be in
modeling a human figure. You might make a finger group that contains
all of the knuckles, a hand group including a palm, four finger
groups, and a thumb group, an arm group consisting of a hand group, a
wrist, a forearm, and an elbow, and a body group consisting of a head
group, a torso, two leg groups, and two arm groups. This kind of
nested grouping is called a "hierarchy", where the body is the
great-granddaddy of a knuckle. One great advantage is obvious when you
want to move an arm. You pick the arm, and rotate it around the
shoulder. All of the arm's children follow it, so the arm moves as a
whole. You do NOT have to move 15 knuckles, a palm, a wrist, a
forearm, and so on. If you want to adjust a finger, you can manipulate
it and the knuckles will move together, but the arm will be
unaffected. If you move the main parent body group, everything follows
along as if the body were just one solid object, as opposed to dozens
of parts. Hierarchies are obviously suited for complex models.
Groups are useful when you have sub-parts of an object you want to
keep together. Sometimes grouping simple objects is still useful even
if there is no hierarchy to follow, since the individual objects are
free to move apart from the parent, and can easily be assigned different
attributes.
For example, if you're designing a human face, you might cause the
eyeballs in the head to be an additional grouped object as opposed to
just molded into the main face. Later, if you wanted to change the eye
(make it a different color, or replace it with a different type of eye
(chrome eyeballs! Cool!)) you can easily select the eye and change or
replace it. This advantage compounds the other advantages of grouping;
you can later animate the eyes looking in different directions, and
you can easily change the attributes or texture of the eye while
leaving the face undisturbed.
-------------------------------------------------------------------------
VII. Pick, Add, Drag. Pick, Add, Drag. Geez, how boring!
-------------------------------------------------------------------------
There are some useful commands that act on picked objects other than
just moving, rotating, and scaling. Two of the most obvious are "Load"
and "Save". Load will load a new object in from disk- it will give you
a file requester which you can choose the filename from. The most
common place to put objects are in your "objects" subdirectory in your
project directory.See the Project Editor tutorial for the complete
Imagine file structure.
Am important suggestion; use descriptive names and extensions. I
talked about this a lot in my Project tutorial, but it's worth
repeating. "Obj1" is going to mean nothing to you an hour from now.
"tablecloth.iob" tells you that this is an Imagine object of a
tablecloth- a useful description. Some suggested file extensions:
.iob Imagine Object. Loads into the Detail Editor
.iout Imagine Object which is a faceless outline
.ifm Imagine Form. Loads into the Form or Detail Editor
.iff Amiga picture or brush (standard)
.ham Amiga picture or brush in Hold-And-Modify format
.iff24 24-bit Amiga picture of brush. Highest quality.
.spth Imagine spline path
.lpth Imagine line path
Save will take the picked object or group and save it onto disk.
Note that GROUPS will save as one big group, as long as you have the
whole group picked by clicking on the parent. You can give the saved
object or group any name you want, and you'll probably want use an
extension of ".iob". If you pick a child of a group and save it,
you save ONLY that object (and its children), and NOT the entire group
it belongs to.
Another command you can apply to picked objects is "Snap to Grid" from
the Functions menu. It operates on all picked objects, moving each of
them so that their axis lies on top of the nearest grid intersection.
This is very useful in trying to line up objects or for precise
positioning. This is much like a one-time "Lock".
There are a few other utility object commands. "Cut", "Copy", and
"Paste" are found in the Object menu. "Cut" will remove your object
from the Imagine world and store it in memory. When you select
"Paste", the object will be re-inserted into the world at the same
place it was prior to the cut. In fact, the object is STILL retained
in memory, so you can move the restored object around and use "Paste"
again to get a second copy to manipulate. You can repeat "Paste" as
many times as you like to get copies of objects. "Copy" is like cut,
except the object is not removed from the world after being copied to
memory. You can use "Paste" to add multiple copies to the world.
Since the pasted objects are all put in the same location, often
you'll have to move one copy to get to the next. Judicious use of
"Redraw" can help in showing exactly what copies are still floating
around.
An incredibly useful command for making complex objects is called
"Join", which can be found in the Functions menu. If you pick two or
more objects, join will assemble them into one single object. The
new conglomerate object will have use the axis of the first object
that was picked, and will contain all of the points, edges, and faces
of all of the joined objects. Joined objects are difficult to
unjoin later, so only use it when you WANT a solid object. Join
is used constantly- you might build a car with the body sides, and
"join" on a side mirror, then join the roof on, then join the floor.
Remember the advantages of groups though; you probably DON'T want
to join the tires to the car; if you group them you can rotate them
later, as well as define the chrome hubcap separately from the car's
paint and the rubber tire.
"Merge" is also found in the Functions menu. It is more of a utility
command. It will remove any duplicate faces, edges or points in your
object. Especially after you JOIN objects, you might have a lot of
points lying on top of one another. Merge removes these extra,
unneeded points, speeding rendering and even display in the editors.
Merge also helps Phong shading; more about Phong shading in the soon
to come Attribute Tutorial.
Delete is pretty obvious command. It can also be found in the Functions
menu. When you use delete, every picked object will be removed from the
world. This command is used a lot to get rid of cruft and deadwood, so
knowing the keyboard shortcut of right-amiga-d is useful.
As with all of the editors, Imagine has one level of "Undo", which can
be selected from the Project menu. When using dangerous commands like
Delete, being able to recover from the command is important. Undo will
work with almost any command. You can also undo an undo, reinstating a
command you decided you wanted anyway.
-------------------------------------------------------------------------
VIII. Spraypaint and Picture Frames
-------------------------------------------------------------------------
The low-level commands to create and manipulate objects are sufficient
to create any model you can think of. An additional level of control
you have is the ability to define the surface color and attributes of
your object. A flat plane might be made of two triangles, but
depending on how you set the attributes of the plane, it might render
as a pane of glass, a reflective mirror, a wood tabletop, a piece of
graph paper, or a picture of your grandmother. Defining the surface
characteristics of objects gives them their character. Luckily,
Imagine gives you excellent control of these attributes.
Every object has a set of attributes that can be modified. In a group,
every object can have different attributes from the parent; when you
select a group, you only modify the parent's attributes. To change any
attributes, just pick an object and select "Attributes" from the Object
menu. A requester will appear, and you can select different properties
to change. In addition, you can place brush maps and textures on the
object, as well as add or change the object's name.
Choosing and setting attributes is immensely important to make your
objects look good. Setting textures and especially brushmaps give you
near-infinite control on what your object's surface looks like. I
have written full tutorials on both the use of texture and brushmaps,
and plan to write one on setting attributes. The choices in the
attributes requester are so important that they deserve a tutorial
unto themselves. I haven't written the attribute tutorial as of today
(6/11/91), but look for it by the end of July.
-------------------------------------------------------------------------
IX. A Mode for Every Season
-------------------------------------------------------------------------
The basic commands to pick, move, and view the world and everything in
it are very important, as they are used constantly. The actual work
you perform in building objects depends on the user changing the view
and manipulating the objects almost without thought.
No matter how good we are at manipulating objects and changing the
view, using these commands will never BUILD an object for us. To do
this, Imagine has different MODES that it performs different actions
in. Some modes allow us to manipulate objects and groups, as we have
been doing already. Other modes let us pick and manipulate not
objects, but the POINTS of an object, or the edges, or the faces.
Still other modes let us drag points around in different ways. Some
let us add NEW points, edges, and faces. (Aha! So that's how we can
build our own objects!)
These modes are easy to change; you can just pull down the Mode menu
and select which mode you would like to be in. The current mode is
always displayed in the status line at the top of the screen; this is
often handy when you get confused about what you're doing. The
keyboard equivalents for changing the current mode all use right-Amiga
and a digit; this makes the keypad become a "mode selector" if you
don't want to use the pull-down menus and have stuff it takes to
remember which digit is which mode. Personally, I don't have the
stuff, so I bear with the pulldown menu rather than strain my poor
brain.
The default mode is "Pick Groups", which means that whenever you click
on a group, it will be picked. (Simple!) If you want to pick
individual objects, EVEN IF THEY ARE THE PARENT OF A GROUP, there is
a mode called "Pick Objects." Just select it from the mode menu, and
now when you click on any object (in a group or not, child or parent)
it will be selected. You cal obviously multi-select it using the shift
key. When you are dealing with ungrouped objects, "Pick groups" and
"Pick objects" work identically.
Different modes let you deal with the different parts of an object. Up
until this time, we've always dealt with entire objects at a time. We
could rotate, scale, and move them, add them, group them, and delete
them, though we could not affect their basic structure. The remaining
modes all work on PARTS of objects, not objects themselves. One
important note is that to even enter these other modes, you must have
selected at least one object (or group) for the new modes to act apon.
You'll also find that I consistently lied to you in most of the
previous sections. I always referred to picking objects as opposed to
picking anything else. ALL of the pick and select commands except Find
work equally well in picking faces, edges, or points as opposed to
just objects or groups. Most other commands like Delete will work on
the parts of an object as well.
One new mode is "Pick points." If you pick an object or group and
enter the pick points" mode, the object will turn white (the object is
NOT picked anymore!) and it's points will all become visible (they
will show up as small squares.) Now you are in a different mode; you
are no longer picking and selecting OBJECTS, you are dealing
exclusively with points. You can then click on the points which will
turn orange as you pick them. You can use the shift key to multi-pick,
or the lasso and drag box to grab many points at once. You can also
select points, and use all of the selection tools to help you get any
subset of points you want. Selected points are green, picked points are
orange, and picked and selected points are yellow.
When you're picking points, edges, or faces, Imagine will work ONLY
with the points, edges, or faces in the object that was picked before
you chose the "pick points (or edges or faces)" mode. This prevents
you from confusing one object's points with another's. When you scroll
around your view or redraw the screen, the other objects won't even be
updated, so don't get scared if they seem to disappear. When you
re-enter pick objects or pick groups mode, all of the objects will
re-appear.
Just because you can pick something doesn't mean you can perform every
command on them. In the case of points, you can delete your picked
points, or use the transformation requester to translate them;
interactive dragging is actually another mode of it's own, though.
When you delete a point, you delete any edges and faces that that
point help form. You cannot do things to selected points that make no
sense (like grouping them, or saving them to a file)- that's just
weird.
You can perform some other commands that aren't applicable to objects
as a whole, however. For example, a very useful command is called
"split." It takes the selected points, removes them from the
original object, and gives them their own axis. In effect, the
original object is split into two parts defined by the points you
picked. Any connecting faces or edges are deleted (two objects do NOT
share!). This might be very useful when you have a logo and want to
pull one letter out of the object to do something special with it.
One command that is unique to pick points mode is "taut", which is
found in the Functions menu. If you select three or more points and
select "taut", the middle points will jump to the line segment defined
by the first and last points. This command might be useful to line up
a bunch of points in a straight line quickly. Taut does NOT work with
anything other than picked points.
Picked points can be manipulated with the Transform command. The
picked points can be translated, scaled, rotated, and positioned
INDEPENDENTLY of the rest of the object. Rotations and scalings all
use the object's axis as a reference point. Absolute positioning will
move the FIRST point you pick to the location you choose, and the
rest of the picked points will be translated an equal amount. Interactive
dragging is accomplished using the "drag points" mode.
Picking edges is similar to picking points, except to specify an edge
you just click on the two points that make it up, or lasso or drag box
the entire edge. Just like points, you can't perform every command on
them. You can delete them and split them.
You CANNOT translate edges or use taut on them. Deleted edges will
delete any face they belong to, but the points in the edges will NOT
be removed.
A new command you cannot perform on points but can use on faces is
called "fracture." This command is in the Functions pull down menu,
and is often very useful. The fracture command will take and break
each edge into two edges, with an additional point added to the
midpoint of each selected edge. This command is very useful when you
need to increase the detail level at a certain area of an object; the
extra edges that appear allow you to manipulate them to add finer
details and structures.
Select Faces is again pretty straightforward. You must click on ALL
THREE of the points that make up the face to select it. Fracture works
very well on faces; it splits each face (one triangle) into four
triangles defined by the midpoints of the face. The new faces can then
be manipulated for higher object definition.
Deleting faces removes the faces, but not the edges or points that it was
made up of.
Picked faces allow you to characterize an object's appearance in local
areas. The attribute requester normally allows you to give the object
overall color, reflection, and transparency values. You can actually
set these for every single face, if you like. You can pick one or more
faces, select "attributes" from the Object menu, and use the sliders
to set the color, transparency, and filter values for the face or
faces.
You will NOT see any change in the appearance of your object when you
do this, but when you render, the faces you selected will all override
the default object color with the attributes you selected. A danger is
that face attributes are somewhat fragile. If you join or merge
objects or start deleting or adding points to it, all face coloring is
often lost. To keep this from happening, color individual faces LAST,
just before saving your object.
A final note about face coloring; don't depend on it for coloring your
objects in complex ways. Using grouped objects or brush maps is much
more robust and allows better control. Coloring individual faces is
useful mostly for quick and dirty attribute definition or for making
small details that aren't worth the bother of a brushmap or extra
object.
Both "pick edges" and "pick faces" will allow you to split off the
selected parts of the object to create two new objects by using
"split", just as split works with selected points.
Three additional modes are "add points", "add edges", and "add faces".
Add points will add an additional point to your object in the location
you click on. Add edges lets you click on TWO points and will add a
new edge joining them. Add faces mode will let you add a new face to
an object by clicking on the THREE points that make it up.
"Add lines" mode is a convenient combination of "add points" and "add
edges". As you click, a new point is added in the location you point
to, and further clicks will add additional points along with an edge
joining the latest point to the one that was immediately preceding it.
Thus, a few clicks around the border of a rough circle will make a set
of points with the edges following the outline of that circle.
Carefully clicking on the location of an existing point will cause the
new line to connect to to that point, so making closed shapes is
easier.
"Drag points" mode allows you to interactively drag individual points
in your object around. If you select this mode, you can click on any
point and drag it to a new location interactively. Any edges or faces
that this point is connected to will follow the point to its new
location.
Dragging multiple points is also easy- just use the shift key,
multi-pick the points by clicking on each in turn, and when you want
to start dragging them, just release the shift key.
AN IMPORTANT TECHNIQUE: What if you want to select a point or points
in one view, and drag them in an orthogonal direction? For example,
you have a plane defined by a horizontal 10 by 10 grid, and you want
to select a bunch of points from the middle and pull them up. If you
click on the points from the top view, you can easily select any of
the points you're interested in, but you can only drag them left and
right, forward and back. You want to be able to drag them UP.
Here's the method for doing this: it is invaluable, so remember it.
Whether you want to move one point or a hundred, press the shift key
to multi-pick the points. Click on the points you want to move in ANY
view, keeping the shift key depressed. To move all of these points,
KEEP THE SHIFT KEY DEPRESSED and move the mouse to the view where you
want to move the points in. Press and hold the left button, then
RELEASE the shift key. The picked points will move with your mouse for
as long as you keep the button held down. Releasing the button will
anchor the points.
In the example with the 10 by 10 horizontal grid, you would press
shift, click on the points you want in the top view, move to the front
(or right) view, release the shift key, move the points up, and
release the mouse button. That's it!
Magnetism, a more complex way of dragging points will be covered in
the "advanced" Detail tutorial.
One problem with manipulating points, edges, and faces is picking the
RIGHT point. When the object is complex, the wireframe displays can
get very cluttered. There is a convenient way of simplifying a view to
get points out of your view- it is a mode called "hide points". In
hide points mode, any points you select (with click, drag box, or
lasso) will disappear from view- they will go away. They still exist,
they just aren't displayed and can't be picked or manipulated. You can
"hide" whatever points that get in the way of your work area, then
change modes, and manipulate the non-hidden parts of your object.
Selecting "pick objects" or "pick groups" will make the hidden points
re-appear.
For example, if you're working on a helicopter model and you want to
work on the rotor alone, you might select "hide points" mode, and use
the lasso to indicate the main helicopter body. The rotor is left
alone, and after changing into drag points or select faces mode, it is
easy to indicate what portion of the rotor you want to deal with
without accidentally modifying the helicopter body. Selecting "pick
objects" mode makes the entire helicopter, with the rotor changes,
reappear.
In theory, you can create any object by adding an axis, then adding
points, edges and faces. In practice, these are very low level
commands; you generally use the more powerful commands like "mold" and
"slice" found in the Object editor. The low level select and add modes
are built to give you the low level control that you sometimes need;
however, they are more for defining basic outlines that are then used
in the more powerful Object commands, or for touching up small details
on nearly complete objects. The next Detail tutorial will talk about
these commands.
-------------------------------------------------------------------------
X. More to come
-------------------------------------------------------------------------
This tutorial describes the important fundamentals of using the Detail
Editor. Remember that most object creation mostly uses the advanced
functions like "mold" and "slice". My next tutorial will deal with
these powerful tools; however, the basics that are described in this
tutorial are very useful and knowing how to move your view and
manipulate objects is virtually essential. I also plan to write a
general tutorial (with examples!) describing object creation; knowing
all the menu commands doesn't give you a sense of the strategies to
follow or steps to take to create a specific model.
Another important discussion in the followup Detail Tutorial will
describe different classes of objects: lone axes, line paths,
outlines, flat objects, and "normal" objects. Expect the second
tutorial around the middle to end of July, 1991.
Whew! Another tutorial whipped out! Actually, this one only covers 2/3
of an Editor, but including everything would really stretch the limits
of a coherent text file. (This one is only 71K!) I am very glad to
have gotten a lot of positive response from my last tutorial on the
Forms Editor; I hope this one (which covers a much more complex
Editor) is equally well received.
If you have any questions, you are welcome to write me or send
e-mail to the Internet Imagine Mailing list, imagine@athena.mit.edu.
Any suggestions or "I want to see this in a tutorial" questions
sent to me personally will be gladly accepted.
-Steve
-------------------------------------------------------------------
Steve Worley spworley@athena.mit.edu
-------------------------------------------------------------------
Steve Worley
290 Massachusetts Ave. (this address soon to change, but mail sent
Cambridge MA 02139 here will eventually make it to me anyway...)
----------------------------------------------
This file and the text therein is Copyright 1991 by Steven P. Worley.
All rights reserved. This file may be distributed freely in computer
or paper form as long as 1) It is unchanged and unedited 2) is
distributed in its entirely 3) gives proper credit to the author,
Steven Worley.