home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-09-07 | 158.5 KB | 2,978 lines |
- The Imagine Compendium: Appendices
- (8/27/91)
-
- edited by Sandy Antunes (antunes@astrod.astro.psu.edu)
-
- ======================== INDEX ==========================================
- APPENDIX A: DETAIL TUTORIAL (by Steve Worley)
-
- APPENDIX B: FORMS TUTORIAL (by Steve Worley)
-
- APPENDIX C: VIDEOTAPE
- i) dumping to videotape
- ii) comments on dumping to videotape
- iii) more comments on dumping to videotape
- APPENDIX D: CENTAUR TAPE:
- i) review
- ii) second review
- APPENDIX E: SURFACE MASTER
- i) Advertisement
- ii) Review 1
- iii) Review 2
- iv) Additional Details
- APPENDIX F: TTDDD (an excellent shareware package).
- i) getting coordinates with TTDDD.
- ii) making threads.
- APPENDIX G: WAY COOL PROJECTS
- i) extruding picture
- ii) rolling sphere
- iii) 3-D font
- APPENDIX H: Credits and email addresses
-
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- APPENDIX A: DETAIL TUTORIAL (by Steve Worley)
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 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.
-
- 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.
-
- -------------------------------------------------------------------------
- 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!"
-
- -------------------------------------------------------------------------
- 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.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- APPENDIX B: FORMS TUTORIAL (by Steve Worley)
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- This is my long-promised tutorial on the Forms Editor. It is split
- into two sections in order to keep mailers from choking. The first
- part (which you are reading now) describes how the Forms Editor creates
- its objects and what each menu option does. The second file contains
- three step-by-step examples that show you how real objects are planned
- and built in the Forms Editor.
-
- There is a set of screen grabs and example pictures on hubcap.clemson.edu
- in the pub/amiga/incoming/IMAGINE/MISC directory in a file called
- Form_Tutorial.lzh. You might want to download this file to help with
- the example forms I describe.
-
- I've spent a LOT of time in writing over 40K in text to make this
- tutorial and especially the example pictures. Any feedback is GREATLY
- appreciated, as it will spur me on to doing a Detail Editor tutorial
- sooner.
-
- The Imagine Forms Editor
-
- The creation of objects in Imagine is certainly not as intuitive as
- the process you used in kindergarten to squeeze clay into vague animal
- shapes. Instead of a real life view of the object, you get a
- complex quad-view display. Instead of using your grubby fingers, you
- have a very 2-D mouse. Most importantly, if you wanted to change the
- shape of a clay model, you just pushed and pulled on it. In Imagine
- (and any other computer modeler) you have to use a very specific set
- of tools to manipulate your objects. No matter how powerful these
- tools are, they are still going to limit the ways you can manipulate
- your creation.
-
- This tutorial is a taste of the Forms editor. The editor is VERY
- powerful, but not necessary easy to describe. It allows you to create
- certain types of detailed object shapes quickly and easily, and is
- certainly not limited to the asteroid-like example in the Imagine
- manual.
-
- ---------------------------------
- Part I- What IS the Forms Editor?
- ---------------------------------
-
- You might have noticed that Forms has in essence NO description in
- the Imagine manual. The manual's tutorials do not describe how the Form
- Editor works or why you should use it other than "It is very powerful"
- and "It can make organic forms easily." I don't blame Rick Rodriguez-
- the Forms Editor is difficult to understand and hell to explain even
- in person.
-
- It is very hard to describe how the Forms Editor works. It uses a very
- strange method of defining it's objects that is difficult to put into
- words. You might want to re-read this explanation a few times, since
- the Form Editor is much easier to control when you know what it is
- doing and how it determines your object's shape.
-
- The Forms Editor defines it's objects as a set of varying radii
- cross-sections. You have a great amount of control over both the shape
- and size of these cross-sections.
-
- Think of an orange, and the wedge-shape segments that make up the
- orange's cross section. If the orange wedge were in the shape of a
- square instead of a half-circle, the orange would become a cylinder
- instead of a sphere. If you make the square wedges in one direction a
- different size than the wedges at 90 degrees to them, the orange
- distorts into a squashed cylinder which looks like an oval from the
- top.
-
- If you define the wedges to be square in one direction and crescent
- shaped the other (90 degree) direction, you will get an orange shaped
- like a cross between a cylinder and a sphere- the resulting object is
- something like a sphere with two ends sanded to a smoothly
- beveled edge.
-
- Another way we might mutate the orange is instead of changing the
- shape of the wedges, we can change the radius of each wedge
- as we look at them from the top of the orange. If the wedges on the
- front side of the orange have a larger radius than the rest of the
- wedges (but the same shape), the orange is going to look like it is
- ballooning with air pressure with one swollen side.
-
- If the radius of each wedge changes as you go around the orange
- (perhaps an alternating big-small-big-small), the orange will take on
- a fluted, star-like horizontal cross-section. Any vertical
- cross-section will still be circular.
-
- Got that so far? Well, this is exactly what the Form Editor allows you
- to do. You can define a the shape of these wedges in both the
- front-to-back and left-to-right directions, as well as having
- completely independent control over the radial size of these cross
- sections.
-
- When you mix these abilities, you can produce an AMAZING number of
- complex shapes, especially since each wedge can loop up and down and
- form holes and cross over itself. No tree ever made an orange with the
- peel intersecting itself, but the Forms editor will gladly create a
- shape like this for you. The Forms editor handles all of the details
- and bookkeeping, and lets you worry about your form.
-
- The actual mechanics of producing the object are a bit complex, though
- straightforward. There are four user-defined cross sections (at 0, 90,
- 180, and 270 degrees, looking from the top) each with the same number
- of points defining it. Every section around the orange comes out at a
- certain angle (like 45 degrees) and its cross section is interpolated
- from the four pre-defined cross sections (probably linearly, it's hard
- to tell). For the 45 degree example, the cross section would be
- formed by taking the 0 degree and 90 degree user defined cross sections
- and assigning each 45 degree cross section point a position mid-way between
- its corresponding location at the 0 degree cross section and its
- location at the 90 degree cross section. Thus, the cross section will
- smoothly change from one shape to another as you move around the form.
-
- Once the vertical cross section is determined, they are scaled
- radially by an amount given by the radius of the user defined
- HORIZONTAL cross section (the top view). An area where the horizontal
- cross section has a radial bulge will cause the wedge at that point to
- stick out a bit more. These bulges can be as severe as you like.
- Instead of a bulge, it is easy to make a sharp knife point.
-
- This method of defining objects gives you an amazing amount of
- control. The radial control alone is completely flexible, allowing
- you to use negative radii, or move the points so that the outside
- surface actually reverses itself and backtracks. The vertical cross
- section is equally malleable, allowing you to make self-intersecting
- walls that are either closed or tube-like. [Or both!]
-
- That's it! The user defined vertical and horizontal cross sections
- completely determine the shape of the object. It is very useful to
- know how the form is actually constructed- it is not easy to figure
- out, and the documentation does not describe the method at all. Once you
- understand how Imagine makes the object, you can actually plan how to
- build a specific shape.
-
- One great advantage to the Forms Editor is the fact that the form is
- continuous- it is made one piece. This means that making smoothly
- rounded corners is easy. Organic forms in particular do NOT have sharp
- right angles and flat planes in them, and are particularly well suited to
- creation in the Forms Editor. Any object created in the Detail Editor
- tends to be made of extruded or primitive objects joined together- there
- is rarely any smooth transition between the joined segments.
-
- --------------------------------
- Part II- Use of the Forms Editor
- --------------------------------
-
- The actual creation of these cross-section forms is pretty easy. The
- Form editor is particularly fast in it's response, since the tri-view
- does not have as many points to update as the view in the Detail Editor.
-
- When you start up the Forms Editor, you have the option of loading in
- an old form or starting a new one (By choosing "load" or "new" from the
- Object menu). You have a decision when you make a new object on
- whether you want an X-Y cross-section or an X-Z cross section. The X-Y
- option makes your object like the orange- the segments are all
- arranged around the vertical axis. X-Z orients the object on its side,
- like a piece of wood on a lathe. (The Form editor can emulate a lathe
- very easily, but is much, much more versatile.) Most of the time
- you'll want an X-Y cross-section, but everything works similarly for
- an X-Z.
-
- You also have a choice on how many points and cross sections to add.
- The "# of slices" is NOT the number of orange segments, but the
- number of points that defines each orange segment. The "# of points" is
- the number of orange slices you have. These labels are defined sort of
- backwards, but if you confuse them it is easy to fix. I feel the
- default numbers are very large- its easier to start with a simple
- version of your form and add points later for detail. It is EXTREMELY
- easy to increase (or decrease) the number of points and segments
- later, so I usually start with something like 12 points, 8 sections.
- Again, this is easy to change later. If you start with many
- points, it takes a considerable amount of time just to move each of
- the points into your coarse shape before you refine details.
-
- The default start up form is that of a sphere with two small holes in it
- at the top and bottom.
-
- The Form Editor does NOT display objects in it's triview like the
- stage and detail editors do. It shows the vertical cross sections (the
- orange wedge shapes) in the front and right views, the horizontal cross
- section (wedge radius as you go around) in the top view. The perspective
- view is accurate, and you can select wireframe, solid, or shaded mode
- by using the View menu just like you would in the other Editors. I prefer
- solid because many forms get very complex very fast, and it is difficult to
- see the basic structure in the wireframe mode.
-
- To manipulate a cross section, you just grab a point and move it to
- where you want. You can change all FOUR of the vertical cross
- sections- if you look in the bottom views, each cross section is a
- separate string of points. If you select a point, it's corresponding
- points on each of the other cross sections will highlight for
- comparison. You can define each cross section completely
- independently- the front view will let you manipulate the cross
- sections of the orange at 0 degrees and 180 degrees, and the right
- view will let you set the 90 and 270 degree cross sections.
-
- Note that the 4 cross sections are not connected at the top and
- bottoms. You are free to move the top and bottom away from the center
- axis. Moving the points so they lie on top of each other on the Z axis
- will cause the object to close at that point. Moving one or more points
- away from the axis will cause a hole or entrance to the center of your
- object to appear. This allows your object to be open at the top and/or
- bottom, so you could have a tube or bowl instead of a sphere.
-
- If two opposing cross sections (like 0 and 180 degrees) touch and the
- other two do not, you will end up with an object with an intersection in the
- shape of a bow tie. If you do connect any of the points (you can
- connect in the middle, too!) you might want to make sure they are
- EXACTLY on top of each other and then use the Detail Editor MERGE
- command when you're finally done with design. This will decrease the
- file size of your form, increase rendering speed, and increase the
- ability of the Phong shading.
-
- Most of the time you don't need to control each individual point, and
- if you were making a simple object it would be irregular due to slight
- differences in the cross-sections. The Form Editor has a very useful
- feature called symmetry that will fix this problem. If you turn on
- symmetry, whenever you move a point, it's corresponding point(s) will
- follow and put themselves in the corresponding position. There are
- five options for symmetry:
-
- o None. Every point is completely independent. Default.
-
- o Front. The 0 degree points will follow the 180 degree points
- and vice versa. 90 and 270 are completely independent.
-
- o Right. The 90 degree points will follow the 270 degree points
- and vice versa. 0 and 180 are completely independent.
-
- o Both. The 90 degree points will follow the 270 degree points
- and vice versa. The 0 degree points will follow the 180
- degree points and vice versa. Think of it as "oval"
- symmetry.
-
- o 90 Every point will follow the corresponding point in every
- degree view. Complete radial symmetry.
-
-
- These symmetry options are very easy to use. Note that turning on
- symmetry does not immediately make the cross sections symmetric-
- only points you touch and move will change.
-
- Most graceful objects have at least one axis of symmetry, many have
- two, and some have 90 degree symmetry. Note that 90 degree symmetry is
- actually completely circular. Thus, any swept object (from the Detail
- editor) can actually be made by using 90 degree symmetry and keeping
- the radius constant (the top view of the horizontal cross-section).
-
- The top view does not have any symmetry controls, and sometimes it
- would be nice to be able to keep the points somewhat ordered. One way
- around this is to use "lock" from the select menu. Lock will
- automatically snap any point you move to the nearest grid location to
- where you let it go. This is very useful for making straight lines,
- or for creating symmetric cross sections in the top view. You can also
- select a bunch of points at once (using the shift key) and use "snap
- to grid" in the object menu. This makes each point move to the grid
- location closest to it. You can use the drag box or lasso to help
- choose what points to select.
-
- Grid size is obviously very important when using lock, since it
- determines the grid intersections. I definitely recommend using grid
- sizes like 32, 64, and 128. Using 20, 25, 50, 100 certainly seems
- reasonable until you start dealing with grids like 6.25 or 3.125. The
- power-of-two grids also work well with zooming, since zoom-in and
- zoom-out double and halve the screen scale. This is obviously a matter
- of choice for each user. Some times when dealing with real blueprints
- or measured objects, different scales are much easier to deal with.
-
- There is no question that when you want to build an object in the
- Forms Editor, you should start simple and work up. Unlike the Detail
- Editor where adding new (non-modular) details is difficult, adding
- more polygon resolution is a snap in the Forms Editor.
-
- There are actually three modes to the Form Editor. The default is
- "Edit" which allows you to drag points around to define the
- cross-sections. However, you can also add new points by selecting
- "Add" and clicking on CURRENT points. A new point will be added on the
- line connecting the point you clicked on and one of it's neighbors.
- You can also position this new point by keeping the mouse button down
- and dragging the point to its new location. You can edit these new
- points in Edit mode at any later time.
-
- If you add a new radial point (top view) you'll see the point appear
- at the next (clockwise) segment. If you add a new vertical cross
- section point, you'll see FOUR points appear, one in each of the four
- cross section (this is reasonable- the cross sections can't have
- different numbers of points!) Deletion is done by selecting delete
- mode and clicking on the unwanted points. Again, 4 points will go away
- if you select a cross section from the front or right views.
-
- It is so simple to add points that defining a new object with a lot of
- starting points is silly. It is VERY difficult to control that many
- points, especially in the top view where there you can't use symmetry.
- It is easier to start off with about 8 points per vertical cross
- section and around 12 radial sections, and arrange these in a coarse
- approximation of your object to get general shape and proportions,
- then add more points for details. Trying to stretch a cross section
- with a lot of points can be a royal pain.
-
- Remember, the plan is to start off with a few points and work up. You'll
- often find you don't need as many points as you thought to get a well
- defined object. The example projects all use a few points to define the
- coarse shape, then add point to make fine details.
-
- ------------------
- Part III- Examples
- ------------------
-
- As a final demonstration of how the Form Editor is used, I'll describe
- three tutorial objects you can make. You are EXTREMELY advised to sit
- down an make these objects. Reading the tutorial is fine, but moving
- the mouse around is the best way to learn how to make these sorts of
- things yourself.
-
- There are some screen grabs of some key steps in these tutorials in a
- file called Form_Tutorial.lzh on hubcap.clemson.edu in the
- /pub/amiga/incoming/IMAGINE/MISC directory. These screen grabs show
- the step by step evolution of the examples, as well as a couple of
- rendered examples. You might want to get these (especially for the
- last example) but you're welcome to wing it by using the text alone.
- The file also has a copy of this text in it, so you won't have to
- separate this mail message out if you're getting it on the mailing list.
- If you don't know what FTP is, ask a local computer wizard and hope
- you have access. :-)
-
- ---------------------------------------------------------------------
- A Coke (TM) Can
- ---------------------------------------------------------------------
-
- The Detail Editor has a powerful tool called sweep that can create
- simple radially symmetric objects like a soda can or a candlestick
- holder. However, the Forms editor can one-up sweep pretty easily.
-
- Our goal is to create an object in the shape of a standard 12 ounce
- soda can with all the details like the hollow on the bottom and the
- little metal ridge on the top. The Forms Editor can create objects
- like this with no trouble, and do it faster and much easier than using
- the Detail Editor to spin a line outline of the can would take.
-
- Enter the Form Editor, and make a new form (in the Object menu) with 4
- slices and 20 points. A can at first approximation is just a cylinder.
- We need many points around the radius to get a nice smooth circle
- cross-section, but only a few slices to define the rectangular
- vertical cross-section. For this example, we'll never muck with the
- 20-point circle cross section.
-
- The cylinder is obviously radially symmetric, so we will probably want
- to turn on 90-degree symmetry from the symmetry pull-down menu. The
- points that you manipulate in the front and right views will now move
- their corresponding siblings, keeping the object radially symmetric.
-
- To make a quick and dirty cylinder, move each point in the vertical
- cross sections so that they are on the same Z line- they should stack
- vertically on top of each other. I like manipulating the right hand
- cross section in the Front view. Remember, the symmetry mode will move
- the other three points for you. You can use the perspective view to
- see what effect you're having on the form. You might look at the
- screen-grab called can_one to see how the first simple model should
- look. Again, these screen-grabs have to be downloaded from the FTP
- site hubcap.clemson.edu.
-
- What do we get? Well, our horizontal cross section is unchanged, its
- still a nice circle. We don't want to muck with it. Our horizontal
- cross section is a nice straight vertical line. If you think about it,
- this should give us an object in the form of a tube. If you look at
- your perspective view and don't see a tube, something is wrong. Look
- at the can_one picture again to see what the problem is.
-
- There are two problems with this tube. First, the sides are a bit
- wavy, since each point was moved manually and they might not be
- exactly on the same vertical line. Second, if we really want to make a
- Coke can, we should at least get the proportions and scale right so we
- don't have to squash and stretch things later to get it to look
- reasonable.
-
- To fix the wavy line problem, we just use "lock" mode from the
- select menu. Remember, this will make any point we move jump to grid
- intersections, so if we move the points around by the same Z line
- they'll all line up on the same grid line.
-
- We should also figure out how to get the right can proportions. If you
- get out a ruler, you'll find a standard Coke can is 12.2 cm tall and
- the main body is 3.25 cm in radius. It is difficult to accurately
- change the radius of our form, but we can make every other measurement
- use the default radius of 100 Imagine Units as a reference. Hence,
- there are 3.25 cm in 100 Imagine Units, so the can should be 375 units
- high. If we change the grid spacing to 25, our can should be fifteen
- grids high. It is easy to automatically set the height of our object,
- because the points will leap to the right position when we move them
- to the correct (coarse) point. You might want to turn on "coordinate"
- mode from the display menu to help identify where you are moving your
- points.
-
- It might occur to you that we also don't want a tube, we want a solid
- cylinder, with ends. This is easy to make, we'll just take the top
- cross section point and move it to the Z axis to enclose the top and
- move the bottom point to the Z axis to enclose the bottom. This gives
- us the rectangular cross-section we need to form a cylinder.
-
- We'll make our can so that the axis is at the very bottom, at 0, 0, 0,
- and the can rises to a height of 375 in the Z direction.
-
- To actually change our rough tube to this properly proportioned, capped
- cylinder, set the grid size to 25, turn on lock, and move the top
- right point in the FRONT view to the 0, 0, 375 grid intersection. The
- other views should show the corresponding points moving up as well.
- Move the second point to form the outside top edge of the can, to 100,
- 0, 375. The third point forms the side, at 100, 0, 0, and the last
- point will define the bottom, and should go to 0, 0, 0.
-
- Your can should look like the picture can_two.
-
- Ok, this DOES indeed look like a nice cylinder. So how do we get the
- nice details like the top rim, and the dent on the bottom, and the
- narrower "lip ridge" just below the top rim? I said that it was easy
- to add detail once you had a basic, crude form. Let's make the bottom
- dent of the can. Turn _off_ lock, so that we can move the points
- freely to whatever location we want. We want to add come points to the
- vertical cross sections so we have more control over the shape of the
- can.
-
- Select 'Add' from the mode menu. Now, whenever you click on a point, a
- new point will appear at the midpoint of the line below it. We want to
- add a point to the very bottom line segment (Which is currently the
- horizontal line making the bottom of the can). Just click on the
- bottom outer point and a new point should appear on the bottom
- horizontal line. Enter 'Edit' mode from the mode menu, and you'll find
- this new point is just as easy to manipulate as the originals.
-
- To form the bottom dent, we want to move the very last point on our Z
- centerline UP to make a cavity. The point should be moved about a third
- of a cm, or 10 units. You might want to turn on 'coordinates' from the
- display menu to help measure the distance. Once you move the point up,
- you'll see the dent in the perspective view if you move it so you can
- view the bottom of the can. The new point that we added can be moved
- up to make the bottom dent more bowl-like instead of a cone.
-
- The trick to adding detail is to identify where you want to add a new
- feature. If you want to add a new dent or bulge, a new point added at
- the location you want can be moved in or out to make the feature. If
- you need to line things up, judicious use of changing the grid size
- and using 'lock' will let you place the points accurately. Note that
- the Forms editor LACKS the transformation requester that you find in the
- Detail Editor, so you can't just type in coordinates for critical
- points. You have to use grid size and lock to accurately place
- objects.
-
- OK, we know how to add details. Now how do you take the measurements
- off of the can? There are a few ways- you could judge by eye, you
- could take a ruler and measure everything, or you can try sneaky
- tricks. If you fake it by eye, your model is obviously going to be
- somewhat inaccurate, even if you use a can sitting right next to you as
- a model. Measuring distances works quite well, though. I used a finely
- measured rule and a sheet of graph paper to transcribe the shape of all
- the ridges and bumps. Inputting these coordinates to Imagine involves
- using the Coordinates display and matching points.
-
- However, there is a quick and dirty trick you can use, though this
- probably isn't applicable to most objects you model. Zoom the front
- view so that it takes up the whole screen. Center your can in your
- display by using the "set center" command in the Display menu and
- clicking at the center of your object. Now, zoom in or out until the
- size of the outline on your monitor approximates the real size of a
- Coke can. Take a real can, and press it against your monitor, then
- eye it. Use the radius as the determining factor, not the height.
- Now repeatedly use the "set zoom" command from the display menu and
- muck with the zoom to get the screen can size as close as you can to
- the real can size when you press it against the monitor. On my 1950
- monitor a zoom of 1.05 worked well, but it will vary from monitor to
- monitor.
-
- Once you match sizes, you can actually press the can against the screen
- with one hand, and move points to match the can outline with the
- other. [You'll look like a fool if anyone else is around, too!]
- However silly this seems, I found it the easiest way to input the
- shape of the can. When I sat with a ruler and some graph paper, my
- paper diagram turned out to be less accurate as the screen method and
- took much more time.
-
- A rehash on adding the fine details: You have a rough outline. To
- refine it, just pick the area you want to refine, add a new point on
- that line, and drag it where you want it. I found that getting a highly
- accurate cross-section (using 17 points) took less than 3 minutes with
- the admittedly stupid screen trick. Using a ruler I spent 10 minutes
- measuring and converting before I even moved the mouse.
-
- When you're done, you should have an outline similar to mine, which is
- shown in the picture can_three.
-
- Take a look at your object in the perspective mode with the window zoomed
- to full screen, and solid display mode on. Rotate the view up and down.
- Nice, huh?
-
- What about the top hole, and the tab? The tab is easy to add in the
- Detail Editor, by extruding a flat outline. If you expected to make it
- as an integral part of the can form, I'm sorry to say you were
- expecting a bit much. The Form Editor likes to make single-piece
- objects, and you can see how the tab is really a separate part of the
- can "form." This doesn't prevent you from making a separate tab object
- and sticking it on, and this is exactly what I did.
-
- The hole, on the other hand, is pretty easy to include using the Form
- Editor! If the hole is facing towards us as if we were going to take a
- drink, the hole is obviously non-radially symmetric, and it is not
- front-back symmetric. It IS left-right symmetric. Turn the symmetry
- from the radial '90-degree' to 'right'. Now, in the FRONT view, move
- the top point (that is now on the Z axis) straight OUT about a third
- of the way to the outer radius. This is the WIDTH of the hole on top.
-
- In the RIGHT view, move the left-top point (which is the front-top on
- the can) about 90% of the way to the can rim. Leave the right-top
- point where it is. The finished can form can be seen in picture
- can_four.
-
- See what we've done? Moving the points away from the center made a
- hole. We made the front-to-back cross section asymmetric to one side,
- so the hole location is moved. Look in the perspective view. Play
- around with moving the hole around and turning symmetry on and off.
-
- Why did this make the asymmetric hole? Remember how the form is
- generated? Each cross-section is interpolated from the 4 defined cross
- sections. The front cross section blends to the right, which then
- blends to the back, then to the left, then back to the front. This is
- very hard to describe, but play with the points and you'll see the
- kind of control you have.
-
- Note that the hole is an oval, which is not quite true for a can. The
- Forms editor really won't let you do much more unless you want to
- start mucking with radius modulation, but that's for the next example.
-
- This completed can object can object can be loaded into the Detail
- editor, at which point it becomes a normal object. You can move
- individual points, apply brush maps, attributes, textures, and
- manipulate it in any way you would a normal object. After manipulation
- in the Detail Editor, the objects are generally not reloadable back
- into the to the Forms editor. Using the Detail editor, you might make
- and attach the can tab, or move individual points on the top hole to
- make the ellipse to match a real can's hole more accurately.
-
- A final rendered view of a can generated using this tutorial can be
- seen in the HAM image 'Craftsman', where you can see two separate
- versions of the can. The carved wood Coke logo was an experiment that
- turned out well. The Coke logo itself was made with wire cutters, a real
- can, Digiview, and an hour's touchup in DPaint III.
-
- The can could have also been generated in the Detail editor by using
- the powerful "Sweep" mold function. However, sweep certainly does not
- provide the interactive updates that the Forms Editor does, and can
- only make completely symmetric objects. The next examples will show
- how much more powerful the Form Editor is when it makes very
- non-lathed objects.
-
- ---------------------------------------------------------------------
- Building a Water Splash
- ---------------------------------------------------------------------
-
- Think of a ball dropping into a pool, and how a corona of water spurts
- out around it. The splash is vaguely symmetric, and is certainly not a
- group of primitive cylinders and tori merged together.
-
- Building a splash like this using the Forms Editor is obscenely easy,
- much easier than the Coke can! It is even simple to animate the
- splash!
-
- If we want to make a crude splash model, we should first envision what
- a cross section of such a splash would look like. The picture
- splash_one is a 10 second DPaint line drawing of how I see water would
- splash up and away at the peak of the splash. The center is disturbed
- but mostly flat, and there is a steep "wall" of water at at certain
- radius pointing out and up. It curls a bit at the top, with a bulge at
- the peak, and slopes back IN and down. Outside the wall the water is
- less disturbed. The wall is the 'shock wave' and is expanding (and
- falling) with time.
-
- It is very, very easy to make a primitive version of this in the forms
- editor. We pretty obviously want our main axis that our slices are
- centered around to be vertical. Start a new form, with 30 points and
- 10 slices, which should give us enough detail to rough something out.
-
- Initially, we'll want to make the splash symmetric. Later, we can add
- asymmetric details, but for now we want the coarse primitive to be
- radially symmetric, since it will define the basic structure of the
- form. Use the '90-degree' mode in the Symmetry menu.
-
- The initial spherical horizontal cross section is completely useless
- for our purposes. Pick a height at which you want to base the splash
- (the bottom point of the cross section is a logical choice) and when
- you're building the splash, imagine that it is sitting on top of this
- water. It will give us a good reference point.
-
- Pull the top point of the cross section way out and down to the water
- level. Keep the bottom point in at the center, and also at the water
- level. The inbetween points should be moved into a crude outline of
- the sloping water wall that we envisioned. My initial model is shown in
- the picture splash_two. It took about a minute to build.
-
- Look at the perspective view. A bit bland, but it is certainly on the
- right track. Add a few points to the cross section at the top of the
- water wave to give it a more complex, bulging appearance. You might
- want to add some points near the base, especially on the inside, and
- make the water near the wave a bit more ragged.
-
- Now what? Our coarse form was trivial to make, but is far to
- artificial. Let's jazz it up! Turn OFF symmetry, and muck around with
- ALL FOUR cross sections. You can increase the height of the wave in
- one, make the water a little rougher in another, make the peak on one
- a bit more curved... give them character. DON'T make huge changes like
- adding a second wave (you're welcome to try!) but certainly make them
- a bit different from each other. Think of adding a 25% noise level.
- You might keep an eye on the perspective view, as well- it will show
- you how the Forms Editor copes with blending these different shapes
- together.
-
- Now what? A little more variation? There's no reason the splash has to
- be a perfect circle, or even an oval, is there? Of course not. The TOP
- display shows what the HORIZONTAL cross section of our splash looks
- like. Right now it's a nice circle. Now, our splash really should be
- pretty circular when looked from above, but not perfectly... Go ahead
- and muck with the shape, and again, watch the perspective view to see
- what happens. You might want to leave SOLID mode on, especially with a
- fast machine, since the wireframe of such a non-structured object is
- often very confusing.
-
- You can move the radial points any way you like. I suggest that you
- only move them generally in and out, or the splash will get somewhat
- lopsided. Also, avoid having sharp spikes. You can see how easy it is
- to make our splash look like the Statue of Liberty's crown. 2 or 3
- point bulges look very nice, major details formed with just 1 point are
- sharp and look like knives. Not very appropriate for a soft water splash!
-
- My final splash is shown in the picture splash_three. A
- rendered version with three different splashes is called Ocean_Sunset.
- Ocean_Sunset is actually a still from the current version an anim I'm
- working on. It has the dolphins jumping around, the water moving with
- wind-driven waves, and eventually will have a ship slowly steaming
- along with a nice wake and smoke. The animation of the splashes
- still need a lot of tweeking, but it's getting better. This is still a
- work in progress, but it looks nice even now.
-
- What about animation? I said it was easy to animate, but how? Well,
- let's think of what the animation SHOULD look like, then figure how to
- implement it. How does a splash evolve? The big wall of water starts
- at the center of the circle and moves outward at a pretty constant
- speed. It grows in height, curls over, and crashes down as is
- progresses. If we make maybe 4 or 5 splashes, one for each stage of
- the splashes growth, we can just move from one to the other. How?
- Morph! Morph is easy to forget when you're dealing with complex
- objects like splashes. Since morph requires its objects to have the
- same structure, different complex objects often won't work with each
- other. However, if we use the same basic starting form for each of
- the splashes (same # points and slices) we can have Imagine smoothly
- interpolate from one form to the next.
-
- Considering the fact that creating the splash took maybe 5 minutes,
- you can see that making an entire animated splash is a 15 minute task.
- You don't even have to make new splashes, just modify old ones! When
- animated, you might add frills like separate objects for flying water
- droplets, and have them follow parabolic arcs. The Form Editor won't
- let you make detached objects like that, so you'll have to make them
- as separate objects that fly out, as opposed to pinch off and fly
- away... You might also use two different splash forms superimposed to
- give the splash a more complex character. The splash we built is still
- a bit plain.
-
- This example should impress how easy it is to make complex shapes with
- an amazing amount of speed and control. Asteroid-maker, indeed!
-
-
- ---------------------------------------------------------------------
- A Complex Boat Hull
- ---------------------------------------------------------------------
-
- Making a boat hull might not seem very easy. If we want to use the
- Form editor, shouldn't there be some sort of near-radial symmetry? It
- turns out that you can really push the Forms Editor around in ways
- Impulse hoped we'd discover.
-
- A boat hull is a pretty simple object, right? Well, sorta. If you
- wanted to build one in the Detail editor, you'd make an outline the
- shape of an iron (as in for pressing clothes), then you'd extrude it
- and use slice to make the bottom.
-
- Well, this would work, but it's a pretty cheesy boat hull, no matter
- how good your iron outline was. Even if you were a good modeler, made
- a series of outlines and used skin to blend them, you are going to get a
- hull that is boxy as opposed to a nice graceful curve.
-
- Think of a big ocean-going vessel, not a cheeseball rowboat. The prow
- is sharp, to cut into the water, and it angles down and back. The body
- of the hull is fairly straight, and the stern rounds off smoothly with
- a flat face as opposed to the prow's sharp point. At no point,
- however, does the hull look like it was constructed of different
- sections. To reduce drag, the shape smoothly changes both from the top
- view (a teardrop with a squashed bottom?) and the side view. It has
- one axis of symmetry (left/right).
-
- How could we ever model this in the Detail Editor? Not easily, and
- certainly not in one piece.
-
- Well, fine. But how could we ever model this in the Forms Editor,
- either? It certainly is not very obvious.
-
- A big hint of how we would design a form for the hull lies in where
- we place the center, the radial point, of our cross sections. We also
- have to decide whether the slices should be coming out horizontally
- (like the axis was a vertical mast) or at right angles. The choice is not
- obvious.
-
- If the axis is horizontal, then the radial sections would tend to
- form a dome over the hull. If you made the radii of the
- overhead portion negative (There is no problem doing this!)
- we could just make a double-thickness of hull. This is messy, but
- workable.
-
- The second option is to use a vertical axis, which gives us the
- benefit of a simpler object since there is no "dome" to add extra
- needless points. We want to make a new form object with an XY cross
- section. Select 3 slices and 7 points and we'll make a very simple
- version of the hull and work from there.
-
- The question is where to but the center of our (vertical) axis. There
- are three places on the hull where there is a sudden change in
- cross-section -- the bow, and the two stern corners. If we want to
- make these changes fairly sudden, we probably want to define each one
- of them as one of our 4 cross sections. The interpolated cross
- sections by definition are interpolated, so there's no major change in
- shape. Thus, we want the bow to be in line with one of the four cross
- sections, as well as in line with the two stern corners. This makes
- our choice easy- the only place we can do this is the very back of the
- boat, along the (port-starboard) centerline.
-
- Now that we've decided where to put the axis, how do we want to define
- the cross sections? Well, we want something that is left-right
- symmetric, and NOT front-back symmetric, so we should turn on
- left-right symmetry.
-
- We want to change the default nearly-closed spherical cross section to
- something more resembling an open gravy dish. Move the very top point(s)
- way out and down some. The front cross section point (the left one in
- the Right view) should be moved the most. The back cross section point
- should be moved down, but not out very much. Remember that the stern is
- very close to the axis, and does not have much detail.
-
- The Front view should look somewhat like a big "U", and the Right view
- should look like a sideways stretched "U" with one end (the bow) sloping
- back and the other pretty vertical.
-
- The horizontal cross section (top view) should look (reasonably) like
- a boat viewed from above. The front should be pointed, the back should
- be fairly blunt, but rounding off to the sides.
-
- Describing the shape of these forms is harder than describing a Coke
- can. Look at the picture hull_one to see what my crude shape looks like.
-
- You can see in the perspective view that this basic form has a little
- hull-like character. It is sharp in front, and has a blunt rear. You can
- add extra points to each of the views to make a smoother form with
- more details. My final boat hull is shown in picture hull_two. To get an
- idea of how complex the real object is, there is a picture of the same
- hull shown in the detail editor in picture hull_three.
-
- -----------
-
- The last example is much shorter than the rest, because there is
- little more to say about the Forms Editor. What is does is very
- complex, but there are few sneaky tricks once you learn how to control
- the shape of your objects. The best way to become proficient with the
- forms editor is to practice! I challenge you to build a banana. Or a
- light bulb WITH threads! [It's quite possible, though annoying]. How
- about a good pencil object with six sides?
-
- This wraps up the tutorial on using the Forms Editor. Sometime in the
- next month or so I'll be writing a similar (though probably even
- longer!) tutorial on the using the Detail Editor and another on the
- general process of object design and creation.
-
- -Steve Worley 5/28/91
-
- ---------------------------------------------------------------------------
- Steven Worley spworley@athena.mit.edu
- ---------------------------------------------------------------------------
-
- Because I was erked when my brush and texture tutorials were posted on
- Compuserve sans credit, I include the following:
-
- The text contained within this document as well as the associated
- computer files are (C) Copyright 1991 by Steven P. Worley.
- They be distributed freely under the following conditions: 1) The entire
- text, including this copyright notice, is kept entire and 2) Steven Worley
- is duly credited as being the author. The author reserves all other rights
- to this text.
-
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- APPENDIX C: VIDEOTAPE
-
- i) dumping to videotape
- ii) comments on dumping to videotape
- iii) more comments on dumping to videotape
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- i) VIDEOTAPE- dumping to videotape, by Steve Worley:
-
- Ian Lichter mailed me personally about dumping to videotape. There are three
- avenues you can take. If you have a 24 bit display and want to record the
- image in its professional glory, you're going to need a single frame video
- tape recorder, (about $2500!) and a transport controller to control it. (
- I get the feeling these run like $300, but I don't know). I don't know
- the details- I don't know anyone who has actually done this.
- A second, easier and cheaper solution is to use a product like DCTV, which
- animates and outputs direct NTSC which can be plugged right into your
- standard VCR. The quality is way lower than 24-bit, but the quality is
- also way higher than standard Amiga output.
- If you don't have a DCTV, you can dump standard Amiga output to video using
- a genlock. This is a device that overlays Amiga graphics on video, but it
- can be used to dump JUST the amiga graphics. The Video Toaster will do this,
- as well as any genlock. I've never used one, but I've read several good
- reviews of the $190 Minigen, and several bad reviews of the $99 Amigen.
- What do I use? I havn't had the $$$ for a genlock, so I have a piece of
- hardware called an encoder- it just converts Amiga RGB to composite video.
- In fact, you might really want to pick one of these up- I have an A520
- "RF Modulator for the Amiga 500", which I bought new for $35. It does
- a superior job at encoding- as good as any genlock or the Toaster. [A
- friend with a Toaster was in a huff until we compared videotapes. Couldn't
- tell the difference, both were excellent.] Don't let the name fool
- you- the A520 outputs both RF (for direct plug-in to a TV) and
- composite (I feed this to my VCR). It also works on any Amiga (I have
- a 3000). It plugs into the RGB port, though it does NOT have a
- pass-through for a monitor. The A520 is definitely the cheapest way to
- go if you just want to dump Amiga animation.
- Something to look for is Colorburst, which MIGHT be able to do really
- impressive color animation. [Nobody's seen this wonderful stuff yet, so
- its still vapor.] It outputs RGB, which would have to be encoded by an
- external genlock (or an A520) before being able to be saved on videotape.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- ii) VIDEOTAPE- more comments, by Scott Sutherland:
-
- Just to clarify, the DCTV hardware itself does not animate (I am sure
- that all of you realize that, but (as they say about winning the Florida
- lottery) 'Ya Never Know'!). What it can do is to 'decode' images with the
- special DCTV color information in them as they are played back using the
- standard RAM animation techniques (ANIMS ;^)). It DOES look really nice.
- The HAM-E will do this as well.
- On Genlocking devices...
- Steve Worley writes:
- >I've never used one, but I've read several good
- >reviews of the $190 Minigen, and several bad reviews of the $99 Amigen.
- I read many articles on genlocking devices for the Amiga, including
- some very technical ones which analyzed their output with professional
- equipment (way out of my field) including a vector scope, all of which panned
- the Amigen. Well, I was using a CMI VI-500RF (now DigiFEX, I think)
- encoder, similar to the A520, for dumping my video to tape (it also has a
- really nice output and can easily be converted to work with SVHS as well).
- I had wanted to play around with genlocking video and graphics, so when I
- got a chance to buy a used Amigen for $50, I did it, despite the BAD reviews.
- I have played around with it, as mentioned in one of my previous postings,
- and the quality is surprisingly good. At least for my HOBBY work. The
- colors look nice and bleeding is not too bad. It IS hard to read text (same
- for my encoder), but that is to be expected. I understand that where the
- poor output of the Amigen will hurt me will be if I do multi-generational
- dubbing and/or copying. But by then the VHS quality will not be to great
- either. For JUST putting TITLES on videos or simple one-pass video/graphics
- interactions, the AMIGEN will work just fine. If you see one used and want
- to play around with genlocking (I highly recommend it. It's GREAT FUN and
- can really get the creative juices flowing!!!), I recommend it. If you are
- doing anything that will be BROADCAST or even dubbed/edited into a final copy
- and your final generation will be third or so, the Amigen will probably fail
- miserably (my guess is that this is true for the Minigen and Progen as well).
- However, when doing this type of editing, you will probably be doing SVHS
- anyway, so that might help. BROADCAST quality IS OUT, though.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- iii) VIDEOTAPE- still more comments, by Mark Thompson:
-
- Steve Worley writes:
- > If you have a 24 bit display and want to record the
- > image in its professional glory, you're going to need a single frame video
- > tape recorder, (about $2500!) and a transport controller to control it. (
- > I get the feeling these run like $300, but I don't know).
- Actually, animation controllers run from about $1500 to $6000. However, the
- soon to be released JVC S-VHS VCR will do single frame recording without
- one (the first of its kind). It should sell for about $2200. Also, recordable
- video disk units do not require a transport controller.
- > A second, easier and cheaper solution is to use a product like DCTV, which
- > animates and outputs direct NTSC which can be plugged right into your
- > standard VCR. The quality is way lower than 24-bit, but the quality is
- > also way higher than standard Amiga output.
- I was doing this over the weekend. In 3bit mode I got about 15 fps and some
- fairly high contouring (banding). In 4bit mode, image quality was much better
- (though contouring was still evident) but my frame rate dropped dramatically,
- maybe 5 to 7 fps. I was using PageFlipper F/X on a 2500/30 with 640 x 400
- images. I might note that these were camera "flybys" through a city scape
- at up to 105 miles/hour so there was a good sized delta from image to image.
- The 60 frame animation was over 5meg in 4bit mode and about 3.3meg in 3bit.
- Anyway, one thing to note about DCTV images converted from 24 bit renderings,
- both 3 and 4 bit modes exhibit a fair amount of rainbowing. Any area that
- is too "hot" (too much color bandwidth) will show a rainbow of colors. DCTV
- includes a filter to reduce this effect (at the cost of sharpness).
- > I have an A520 "RF Modulator for the Amiga 500". It does a superior
- > job at encoding- as good as any genlock or the Toaster. A friend with
- > a Toaster was in a huff until we compared videotapes. Couldn't tell
- > the difference, both were excellent.
- You will probably not notice much difference on a low quality VHS unit.
- But believe me, when viewed with high quality video equipment (D2, U-matic
- SP, recordable laser disk, etc.) there is no comparison. In video, one rule
- *generally* holds true, "you get what you pay for".
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- APPENDIX D: CENTAUR TAPE:
-
- i) review
- ii) second review
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- i) Centaur Tape Comments, by Richard Nollman:
-
- I believe that this IS NOT the tape offered in the Impulse newsletter. I
- talked with Steve Worley last night who is in frequent contact with Rick and
- asked the same question. He said that as far as he knows it is not. I thin
- k Steve said something about it not being finished (not sure about this).
- But the best person to ask of course (or second best) is Steve. I am sure
- he will post something about this.
- I met the guy who did the Centaur Imagine tape. He was stapling the plastic
- bags of people going into the Creative Computers booth (large Amiga mail
- order house) at the AmigaWorld Expo in NY last weekend so that people would
- not steal things. Pretty crude I thought. Anyway, I went to the Centaur
- booth to see the tape before I bought it, and their machine was broken.
- The person in the booth suggested that I talk to the person who made the
- tape, took me over the the bag stapler, and introduced me. I questioned him
- for about 10 minutes or so (which was very difficult -- Creative Computers
- was very busy and every 10 seconds or so a new crowd of people would need to
- be stapled before they entered the booth). Anyway, I described the initial
- problems I had with the manuals, the help I received from the Imagine
- mailing list, and a friend who spent quite a bit of time working through
- the various editors with me. I told him that I was creating simple
- animations with spheres moving and camera moving and doing chrome and
- reflectivity etc. He said honestly that he felt that at that point I was
- beyond the tutorial. It really was designed for people who could not use
- the manual to get started. He said that it did not really get into much
- depth on setting attributes and things at that level. So fortunately I did
- not spend the money. I met a poor soul who had some very nice Imagine
- renderings that were being displayed at the Black Belt booth who had bought
- the tape (very excited about it). We had a great discussion about Imagine
- and ray-tracing. He seemed very advanced. I am sure he was pissed when he
- played the tape...I hope he can get his money back...
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- ii) Second Review of Centaur Tape, by Mark D. Manes:
-
- Warning Will Robinson... Danger, Warning!
- Folks, I recently checked out the new Imagine video tape from Centaur
- Software... in a word, I think it, well, sucked.
- I hate to use words that strong, but the narration was terrible. I
- felt as though I was hearing stream of thought rather than a nice
- presentation of the Imagine program. Further after watching the
- nearly 90 minute tutorial (yawn) the creation that I suffered
- 90 minutes to see was ugly to bone.
- The tutorial seems to be disjointed and does not explore the
- detail editor with any depth. Further it breezes through the
- description of adding faces to an object without ever really
- showing you how to do it. I about died when I watched the section
- on the attributes requestor, the tape said things like the filter
- gadget adjusts the filter settings! Great, I could not have
- guessed that. :-)
- I _have_ created many interesting pictures just from following the
- tutorials in the Imagine manual! This tape would be great if
- they had simply recreated the tutorials that are in the manual,
- instead of taking me on a disjointed chaotic trip through Imagine.
- This tape should be avoided at all costs.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- APPENDIX E: SURFACE MASTER
-
- i) Advertisement
- ii) Review 1
- iii) Review 2
- iv) Additional Details
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- i) (I uploaded this from People/Link a couple of days ago - Mark Davis.)
-
- Introducing "Surface Master" for IMAGINE by Louis Markoya. A
- comprehensive collection of Attribute and Texture settings which
- allows you to master your renderings and achieve professional results.
- The Surface Master package comes with a detailed manual explaining
- all Attribute and Texture parameters, effects and how to animate
- those effects plus hints and tips on special applications. A disk
- containing IFF pictures illustrates each Attribute and Texture
- setting. All objects and many attribute files are included.
- Attributes for many surface qualities like Chrome, Glass, Gold,
- Brass, Diamond, Emerald, etc., are included and explained. Proper Index's of
- Refraction and custom settings are used for the best results in
- different Global situations. In addition to these, many other preset
- examples explore the realm of possibilities within IMAGINE.
- Texture variables will be explained as well, with a wide array of each
- Texture's possibilities presented. For Example, Wood, has a matrix of
- settings to explore all of its parameters, and seperate settings for
- Pine, Oak, Zebrawood etc.. Pictures illustrate the wide array of all
- effects possible. The actual objects rendered are included. Settings
- and the discussion of their variation are covered in the manual.
- Textures can be animated and hints for the best settings are offered.
- The effects of moving the axis and the interaction of object size to
- Texture settings are explained.
- Surface Master is of great value to both the novice and pro,
- eliminating the struggle to achieve those special results.
- Those knowledgeable of his work are fully aware of
- his abilities, especially in Turbo Silver and IMAGINE. Now he shares
- many of his "secrets". The Surface Master package is available for
- $30.00 only through direct mail from Louis.
- Send Bank Check or Money Order to;*
- Surface Master
- Computer Imagery
- 49 Walnut Ave.
- Shelton, CT 06484
- Make checks payable to Louis Markoya
- * Personal checks accepted, but shipment will be delayed for check
- clearance.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- ii) Review of Surface Master, by Richard Nollman:
-
- I received my copy of Surface Master on Monday and within minutes it paid for
- itself in time saved and frustration avoided. Unless you are a master Turbo
- and/or Imagine user, this program will save you hours (days, months, years?)
- of experimentation.
- For those of you who might not have read the initial advertisement
- posted last week, Surface Master is described as "a comprehensive
- collection of Attribute and Texture settings which allows you to
- master your renderings and achieve professional results." The
- software makes good on the promise.
- I am a novice 3D modeling, Imagine, and Amiga user (bought my 3000 at
- the end of October). Within ten minutes I created an animation with a
- gorgeous wood grain chesspiece and four reflective spheres with
- varying reflection values on a blue highly reflective plane. I have
- been concentrating my time on just learning how to set the basic
- attributes (to do things like glass, chrome, etc). I thought that
- things like texture mapping would have to wait. Well, I loaded up
- Surface Master, wrote down the values for the wood texture of a
- Surface Master object (textures, unlike attributes, cannot be loaded
- directly because they are not saved in the same way) and applied these
- values to my chesspiece. I was astounded at the quality of the
- rendered image.
- The first thing that struck me was the prompt arrival of the software.
- I sent in a money order last week and received my copy on Monday.
- The software has a simple program that consists of two levels of
- menus. The first contains a matrix of windows with attributes and
- textures that correspond to the ones found in the Imagine Attribute
- requestor. Click on an attribute or texture and next level menu
- appears with 4 sets of 4 objects (spheres or cubes) rendered with
- various settings for that attribute or texture. Sometimes a window
- will have several attributes described. Each object has a value
- assigned to it (R,G,and B values or a single value) that
- you can write down on paper. In most cases you do not have to; the
- objects that appear in the Surface Master menus come in Surface Master
- directories. When you are working in Imagine, simply load in the
- object or the attribute from the Surface Master directory. Markoya
- used them to create the Menu screens. To get the texture values, load
- in the objects with the texture values you want, invoke the Attribute
- requestor for the object, choose texture, and write down the values.
- Just one texture, wood, is worth the price of the package. Surface
- Master includes 16 different samples of wood grain combined with
- linear, random and radiance(?). In addition, there are 16 samples of
- different types of wood (mahogony, ash, pine, oak, zebrawood, etc.).
- In a few minutes, without having to puzzle over Imagine
- documentation (which usually ends up providing little or no help), I
- understood how to use the linear texture to create my wooden chesspiece.
- For the color attribute, Surface Master includes a color wheel of
- spheres. Load these spheres individually as objects to your
- rendering project or the attributes associated with them. Very
- helpful in getting just the right color for an object without having
- to diddle around (or at least get a close approximation).
- Color and wood are only a few examples.
- Finally, the documentation. The manual is very small, but clearly and
- thoroughly presented. Each attribute and texture is described in
- detail. Impulse could learn alot about documentation from this
- manual. It packed so much information in such a small space that I
- need to go back and read it several times to really get the meat of it
- (mostly I was just eager to try out the software). From many it will
- probably become a standard text on Imagine attributes and textures.
- And all for just $30. Amazing...
- My hats off to Louis Markoya. I hope that he is going to continue to enhance
- Surface Master. I would love to see a disk of objects and other attributes.
- Maybe an entire disk concentrating on reflection or chrome. If he has more
- Imagine-related software coming out, put me on the top of the list.
- I do have one complaint. It comes with what appears to be a projector
- program. But it is not documented and I cannot figure out how it works.
- If anyone knows how to contact Louis, please pass this on.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- iii) Review of Surface Master, by Harv Laser:
-
- To explain this a little further, Surface Master is made up of a full
- disk of some different parts:
- -There's a Projector (tm Right Answers Grouop) sequence of screen shots
- showing all the various attributes and textures available on the disk,
- such as a screen full of wood spheres of different kinds of woods. I don't
- remember offhand how many screen shots but at least a dozen.
- -There's a directory full of objects from which all those screen shots
- were made. Say you wanted to use Zebra wood on one of your objects in a
- rendering. You'd load the zebra wood object (which you could see in the
- slide show) into Imagne, select it and then select the attributes
- requester, jot down the wood settings, then select your own object and
- punch in those same settings to get that same wood.
- -There's a directory full of attribute settings for which you do not need
- to load in Louis' objects nor copy down any settings. These attributes
- can be loaded directly into the attribute requester and applied directly
- to your own object - without interfacing at all with the "textures" that
- come with Imagine. Stainless Steel, Chrome, Emerald, Diamond, etc. would
- be examples of attributes which can be loaded in right from disk without
- textures, whereas Woods, Dots, Grids, Checks and other texture effects
- require the extra step of loading in Louis' object and copying down and
- then re-entering the textures for your own objects.
- The beauty of this disk is that Louis has done all the hard work. You
- don't have to sit there trying to figure out how to make something look
- like chrome or like ivory. All the settings are on the disk in one of
- the two forms described above along with pictures of them all.
- So it's a lot more than just a disk full of pretty pictures or numbers
- painted on the screen.
- disclaimer: Louis Markoya is a friend of mine and he's marketing this
- product on his own and I just want people to know that it exists. I
- get no "cut" from the money he makes from it.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- iv) Details, from Richard Nollman:
-
- In response to a request to post the attributes and textures covered in the
- Surface Master software, I post the following:
- Spheres and cubes are rendered in color on menu screens (very nice)
- with libraries of objects, attributes and textures included in the
- package. Each of the following categories displayed on a submenu screen:
-
- Reflect/Filter 4 x 4 matrix of spheres with RGB and intensity values
- Dithering/Roughness 2 x 4 matrix of spheres with intensity values (50-225)
- Specular/Hardness 2 x 4 matrix of spheres with intensity values (50-225)
- Color 49 colored spheres in a color wheel;9 spheres in grayscale
- Shininess 3 x 4 matrix of spheres with shininess, filter, and index of
- refraction values
- Index of Refraction 3 x 3 matrix of spheres with intensity values (1-3.4)
- Linear/Radial (textures) 4 x 3 matrix of spheres with transition width
- and reflect/filter RGB values
- Checks/Angular (textures) 4 x 3 matrix of spheres with angular, checksize,
- and reflect/filter RGB values
- Grid/Dots (textures) 4 x 4 matrix of cubes with gridsize, reflect/filter
- RGB, and dot spacing values
- Bricks (texture) 4 x 4 matrix of cubes with XYZ shift, Y shift with Z value,
- Z shift with Y value, and reflect/filter RGB values.
- Disturbed (texture) 4 x 4 matrix of spheres with amount, wavelength, X
- separation, and small values
- Wood (texture) 4 x 4 matrix of spheres with ring spacing, exponent,
- variation and random seed values
- Preset Materials 4 jewels (diamond, ruby, saphire, and emerald) and 12
- spheres (glass, crystal, water, quartz, steel, pewter,
- plastic, ivory, chrome, gold, brass, and copper)
- Woods 12 spheres with the following types of wood: birch, mahogany, cherry
- oak, pine, red cedar, zebra wood, red mahogany, black walnut, ash
- walnut and tulip (? - can't read my own writing)
- Combos 16 cube assortment demonstrating mixed textures including:
- wood/grid, grid/wood, linear/disturb, bricks/linear, bricks/wood,
- and bricks/linear
-
- That's the list. Have fun with it (I sure am). Just want to mention that I
- do not even know Louis Markoya so I am just posting this as a satisfied
- customer.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- APPENDIX F: TTDDD (an excellent shareware package).
-
- i) getting coordinates with TTDDD.
- ii) making threads.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- i) Coordinates, by Glenn Lewis:
-
- Doug> First and foremost.... how can one get the coordinates out of
- Doug> Imagine for the points without going to each one and writing down
- Doug> the coordinates?
- Piece of cake. Get TTDDD.zoo from ab20.larc.nasa.gov (I think
- it is in the incoming/amiga directory).
- Type: "ReadTDDD Enterprise.object > Enterprise.ttddd"
- Now take a look at "Enterprise.ttddd", and it's got all the
- information you need, I believe. Scott mentions some commercial package
- that does the same thing. TTDDD, like Scott's, works on Turbo Silver
- objects, but it can read Imagine objects, and will simply skip the IFF
- "chunks" that it doesn't understand (and will tell you what ones they
- are). Whenever I get the Imagine IFF format specification, I plan on
- upgrading the TTDDD package.
- Disclaimer: TTDDD is ShareWare, written by myself.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- ii) THREADS, by Glenn Lewis:
-
- >>>>> On Mon, 25 Mar 91 20:58:40 EST, spworley@ATHENA.MIT.EDU said:
- Steve> Anyone have any good ideas on how to make threads, like on a
- Steve> bolt?
- Sure. Piece of cake. In the last twenty minutes, I cooked up a
- little Perl script that creates a threaded object whose parameters I can
- control. I used, of course, WriteTDDD. In fact, here is what I typed:
- thread 60 0.5 10 4 5 | WriteTDDD > thread.tddd
- Here is the Usage information:
- Usage: thread NUMPTS SPACING HEIGHT IN_RADIUS OUT_RADIUS
- where NUMPTS is the number of point in a single revolution
- SPACING is the number of units between threads
- HEIGHT is the total height of the bolt.
- IN_RADIUS is the radius of the inner thread.
- OUT_RADIUS is the radius of the outer thread.
- Does this sound like something you would want, Steve?
- Unfortunately, I don't have my Amiga with me right here, so I
- can not see if it looks like what you want. So I'll send you the
- object, Steve, and let you take a look at it.
- Nevertheless, here is the Perl script that I used to create it.
- If anybody doesn't know what TTDDD is, you can grab it off of
- ab20.larc.nasa.gov and it will give you more information. It stands for
- "Textual Three Dimension Data Description", and was written by me.
- Have fun.
- -- Glenn Lewis
-
- ********************************************************************************
-
- #!/usr/local/mcfg/bin/perl
- if ($#ARGV < 4) {
- print STDERR "Usage: $0 NUMPTS SPACING HEIGHT IN_RADIUS OUT_RADIUS\n";
- print STDERR "where NUMPTS is the number of point in a single revolution\n";
- print STDERR " SPACING is the number of units between threads\n";
- print STDERR " HEIGHT is the total height of the bolt.\n";
- print STDERR " IN_RADIUS is the radius of the inner thread.\n";
- print STDERR " OUT_RADIUS is the radius of the outer thread.\n";
- exit(0);
- }
- print
- "/* thread.ttddd - Written by Glenn M. Lewis - 3/26/91\
- * Steve Worley had asked on the Imagine mailing list how to create\
- * a thread-like object for Imagine. Instead of saying 'how about\
- * using TTDDD to create it, I thought... I'll see if I can create\
- * a thread using TTDDD. Since my Amiga isn't handy, I'll let somebody\
- * else pump this through WriteTDDD to get an object and check it out.\
- */\
- \
- OBJ Begin\
- DESC Begin\
- NAME \"Thread\"\
- SHAP Shape 2\
- SHAP Lamp 0\
- ";
- # OK. Start calculating the position of the points, edges, and faces...
- $NUMPTS = $ARGV[0];
- $SPACING = $ARGV[1];
- $HEIGHT = $ARGV[2];
- $IN_RADIUS = $ARGV[3];
- $OUT_RADIUS = $ARGV[4];
- $PI=3.14159265;
- #
- # Calculate the points needed...
- #
- $height = 0.0;
- $heightstep = $SPACING/$NUMPTS;
- $theta = 0.0;
- $thetastep = $PI/$NUMPTS;
- $count = 0;
- while ($height < $HEIGHT) {
- $outer_x[$count] = sin($theta) * $OUT_RADIUS;
- $outer_y[$count] = cos($theta) * $OUT_RADIUS;
- $outer_z[$count] = $height;
- $theta += $thetastep;
- $inner_x[$count] = sin($theta) * $IN_RADIUS;
- $inner_y[$count] = cos($theta) * $IN_RADIUS;
- $inner_z[$count] = $height;
- $theta += $thetastep;
- $count++;
- $height += $heightstep;
- }
- #
- # Start writing the TTDDD data...
- #
- # First, list the points...
- #
- printf(" PNTS Pcount %d\n", $count*2);
- $edge = 0;
- for ($i=0; $i<$count; $i++) {
- printf(" PNTS Point %d %g %g %g\n", $i*2,
- $outer_x[$i], $outer_y[$i], $outer_z[$i]);
- printf(" PNTS Point %d %g %g %g\n", $i*2+1,
- $inner_x[$i], $inner_y[$i], $inner_z[$i]);
- # Count up the number of edges we need
- if ($i<$count-1) {
- $edge += 3; # O[i]..O[i+1]..I[i]..O[i]
- if ($i>=$NUMPTS) { $edge += 3; } # I[i]..I[i+1]..O[i-N]..I[i]
- if ($i+1<$count) { $edge += 3; } # O[i+1]..I[i+1]..I[i]..O[i+1]
- if ($i>=$NUMPTS) { $edge += 3; } # I[i+1]..O[i+1-N]..O[i-N]..I[i+1]
- }
- }
- #
- # Second, list the edges...
- #
- printf("\n EDGE ECount %d\n", $edge);
- $e=0;
- $face = 0;
- for ($i=0; $i<$count-1; $i++) {
- printf(" EDGE Edge %d %d %d\n", $e++, $i*2, ($i+1)*2);
- printf(" EDGE Edge %d %d %d\n", $e++, ($i+1)*2, $i*2+1);
- printf(" EDGE Edge %d %d %d\n", $e++, $i*2+1, $i*2);
- $face++;
- if ($i>=$NUMPTS) {
- printf(" EDGE Edge %d %d %d\n", $e++, $i*2+1, ($i+1)*2+1);
- printf(" EDGE Edge %d %d %d\n", $e++, ($i+1)*2+1, ($i-$NUMPTS)*2);
- printf(" EDGE Edge %d %d %d\n", $e++, ($i-$NUMPTS)*2, $i*2+1);
- $face++;
- }
- if ($i+1<$count) {
- printf(" EDGE Edge %d %d %d\n", $e++, ($i+1)*2, ($i+1)*2+1);
- printf(" EDGE Edge %d %d %d\n", $e++, ($i+1)*2+1, $i*2+1);
- printf(" EDGE Edge %d %d %d\n", $e++, $i*2+1, ($i+1)*2);
- $face++;
- }
- if ($i>=$NUMPTS) {
- printf(" EDGE Edge %d %d %d\n", $e++, ($i+1)*2+1, ($i+1-$NUMPTS)*2);
- printf(" EDGE Edge %d %d %d\n",$e++,($i+1-$NUMPTS)*2,($i-$NUMPTS)*2);
- printf(" EDGE Edge %d %d %d\n", $e++, ($i-$NUMPTS)*2, ($i+1)*2+1);
- $face++;
- }
- }
- #
- # Third, list the faces...
- #
- printf("\n FACE Tcount %d\n", $face);
- $e=0;
- $f=0;
- for ($i=0; $i<$count-1; $i++) {
- printf(" FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
- if ($i>=$NUMPTS) {
- printf(" FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
- }
- if ($i+1<$count) {
- printf(" FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
- }
- if ($i>=$NUMPTS) {
- printf(" FACE Connect %d %d %d %d\n", $f++, $e++, $e++, $e++);
- }
- }
- #
- # Now wrap up the object description...
- #
- print "\nEnd DESC\nTOBJ\nEnd OBJ\n";
- exit(0);
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- APPENDIX G: WAY COOL PROJECTS
-
- i) extruding picture
- ii) rolling sphere
- iii) 3-D font
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- i) Way cool project 1, by Steve Worley:
-
- This was way-cool! Try it.
- Get an object. A sphere will do, but whatever you want.
- FLAT map a brush onto it. Make sure the brush Y axis is bigger than the
- object, make sure the object just fits in the positive x positive z quadrant.
- Go to "transform axis" in the brush requestor, select "size", then write down
- the x & z scalings.
- Make a plane. Map the same brush on it. Use transform to get the same size.
- make sure the plane's size is at least as large as the brush.
- Go to the stage editor.
- Put the object DIRECTLY behind the plane. Orientation and position are
- critical- you want the brush maps to line up. [They're the same size.].
- Put the camera on a 45 degree view so you don't have a dead on shot.
- Make a path that moves the object straight THROUGH the plane, for about 20
- frames.
- Animate it!
- Here's what you'll see. You'll see a flat picture slowly take on a three-d
- form, "extruding" exself into a third dimension. The join between plane
- and object is indetectable because the brush maps are identical.
- This effect is REALLY cool, though you have to be careful to line everything
- up right. Use "transform" to set position and orientation of the
- objects and their maps exactly if you're having trouble.
- You can render this in scanline- it doesn't need trace.
- You could make a room with a framed picture (I have a REALLY nice picture
- frame) with a picture of something on it. Camera moves to an oblique view,
- zooms in a little, picture starts "extruding." Maybe out a little, then back,
- then out then back, then finally, the object finally makes it all the way
- out (and the picture behind has a new brush map without the object!). Then
- the released thing (whatever!) could explore the "Real World". An idea. Run
- with it if you like, post how it goes.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- ii) Way cool project two, by Steve Worley:
-
- I've been working on an animation that seems to be coming out
- very nicely- there's a couple of techniques dealing with brushes
- that people might find very useful.
-
- I created a still first. It started as a "mirrored balls on a checkerboard"
- setup, with the centerpiece being a big, black, glossy sphere with
- a picture of me "trapped" inside the sphere. Later I turned it into
- an animation with the camera moving about so that you could see the
- different sides. It looked cool- the real goal was to see how well
- a "traditional" mirror & glass sphere populated plain would look.
-
- It turned out so well that I changed the animation to a still camera
- and having the ball roll around the scene, in front of mirror-balls
- and in back of glass balls to see the neat effects. [Remember the
- long transparency essay I wrote? I was tweaking the crystal spheres
- for this anim.] Making the ball roll was a trick. How do you get
- something to roll (at the right speed!) while following a path? Getting
- it to spin (like a plane doing a barrel roll) is easy- you align to
- path, then set Y rotation to be from 0 to 360 and it will do a complete
- spin. This is not in the right direction for a rolling ball, though.
- [Annoying feature- you can't say from 0 to 720 for two spins,
- or 0 to 3600 for ten.] To get it to roll I created a second path, which
- was basically a larger copy of the first, so the first path was
- just inside of the second path. I had an axis (a track) follow this
- new, outside path, then used "align to object" to make the sphere point
- to the axis. Thus, as the ball moved along its path, one end (the positive
- Y axis direction) was always pointed at right angles to the direction
- of motion. Is this clear? Now using the "initial Y angle" and "final Y
- angle" I set them to 0 and 360 and it rotated as it rolled. As a special
- effect, I raised the "track path" a little in the Z direction so the
- sphere looks a little bit like a top rolling around, since the spin
- axis was not horizontal anymore.
-
- An alternative would be to make a cycle object, rolling around the X axis.
- This is equally valid, but I did it this way first.
-
- The picture of me on the sphere was pretty easy. I used Digi-View
- to take a picture of me with a scared/concerned expression and
- my hands palm forward outstretched a little. I stood in front of a
- clean, white background. I saved the pic as an IFF24 picture from Digi-
- View, and used The Art Department to balance it. Digi-view's balancing
- controls are fine- TAD has a couple of nice features, though, like
- scaling and especially gamma correction, which increases contrast by
- expanding color scales. (I'll explain if someone wants me to.) I saved
- the pic as a 900x600 16 color IFF, then loaded it into Deluxe Paint III.
-
- Deluxe Paint is a wonderful program, and has no objection to loading large
- IFFs. I touched up a couple scanning artifacts with the smooth and blend
- tools, then removed the background. To do this, I first used the filled
- rectangle tool to fill in the big, easy to clear spots of background
- (a wall in my case). I then used the stencil (frisket to you Disney
- folks) to let only the brightest few whites be changable. A pass or two with
- a big brush along the edge of my body, and woosh- the background was gone.
- I then added a new background ( a grid of white lines) by picking my body
- up as a brush and stamping it on a grid I made on the spare page. I saved
- the picture, and I was done!
-
- Imagine does not care what size the picture it maps is- they all get
- normalized to the brush-axis dimension. Thus, my LARGE picture was of
- significantly better quality than just a screenful. Optimally, if I had a
- 24 bit paint program, like the Firecracker paint program, Colorburst's
- paint program, or Toasterpaint, this would have given the highest quality
- output. Anyone want to give me a Colorburst?
-
- Wrapping is an art, and everyone should read Mike Halvorson's brush-wrapping
- posted about 2 weeks ago. Its pretty good, though he mis-describes Y axis
- functionality in wrap-wraps, but not in flat-flats (though maybe I'm wrong).
- Luckily, wrapping spheres is a snap- you can't screw up as long as your
- brush's Y axis is smaller than the radius, and the axis is centered.
- Complex shapes are much more difficult, and best described in another post
- sometime. [Like after I can do them consistantly!]
-
- Anyway, the result mapped onto the sphere looks real cool. The grid wraps
- around the sphere like longitude/latitude lines, and I was smart and made
- my grid match up from one side to the other. This made the join on the back
- of the sphere look UTTERLY undetectable, so it isn't obvious this is a flat
- object wrapped onto a curve.
-
- I rendered this 80 frame anim over about 6 days, (hires raytrace) and
- it was beautiful! The glass in particular looked sleek. I then wanted to
- spiff it up even more, so I added a glass arch (half a stretched torus) for
- the prison-sphere to roll though, and I animated myself on the sphere.
-
- How did I animate myself on the sphere?? This is a VERY useful trick, and
- I learned it long before I had Imagine, when I was into DPaint anims. What I
- did was I took a camera and VIDEOTAPED myself kinda waving my hands around
- like a mime (the invisible wall in front of me, palms outward)
- with the concerned/scared look on my face. After a few takes, I thought I had
- the right feel, so I booted my 3000 [well, sat down in front of it- its
- always on!] and started Digiview.
-
- Time out: IMPORTANT! Digiview DOES work on a 3000- you must use 'CPU
- nocache noburst' before you start Digiview, or it will die! I almost sold
- my DV until I said "hmm. I'll try one more time. What if I .." and it worked.
-
- Anyway, I played the tape and freeze-framed on the start of the part I liked.
- YOU CAN'T USE A CHEESY 2-HEAD VCR! You need good stills.I digitized a frame,
- then spent a good 10 minutes perfecting the balances. [I didn't use TAD
- because it would have been a pain saving all the frames (1/2 meg each!) and
- loading/balancing/saving them again. ADPro has an AREXX interface, and so
- does Digi-view. This would have been an IDEAL application of AREXX!] Once I
- had the balance perfected, I re-digitized, balanced, and saved the picture as
- 'steve001'. The 001 is important- if you save it as 'steve1' it will be
- a bit harder to load into DPAINT. [You'll see!] I then forwarded 3 frames,
- and digitized, and saved as 'steve002'. I did this for 40 frames. Yes, its
- mind-numbing, but really only takes half an hour, and you can be listening
- to tunes or talking on the phone or whatever.
-
- Finally, I started DPaint, and blessed my extra RAM. I went into 'load
- picture', selected file 'steve001' and at the bottom of the name requester,
- entered '40 frames'. Dpaint then loaded the next 40 frames (alphabetically)
- as an anim. See why we have steve001? It loads steve001 to steve0040
- correctly. If I used 'steve1' the order would be steve1,steve10, steve11,
- ... steve19, steve2, steve20 and so on.
-
- OK, I have an anim. I play it, and voila! There I am, looking like a person
- acting like he's trapped in a sphere! :-) The quality of this method is
- SURPRISINGLY good. Try it- even if you don't use Imagine. It's lots of fun!
- 320 by 400 animates faster if you're not doing it for Imagine, but just
- want to muck around. [well worth it!] Here's an idea- tape yourself throwing
- and catching a volleyball, then digitize your best friend. Remove his or her
- head as a brush, then paste a copy of the head on top of the ball in every
- frame of your anim. Voila! Macabre juggling! Works really well if they're
- smiling.
-
- Back to the Imagine anim. I digitized in hi-res for quality- it doesn't
- animate as well in DPaint (more bandwith -> slower anims) but for our
- purposes this makes no difference at all. I cleaned out the background
- for all the frames by using "anim-painting"- holding down the left-amiga
- as you paint. [3000 owners, you might have to change the WB prefs- this
- is the default way to drag screens] By using big brushes for the easy stuff,
- then stencils, a smaller brush, and a much slower pace for the edges near my
- body, I removed the background from all the frames.
-
- I picked up my body as an animbrush, then anim-painted onto a 40 frame anim
- of a stationary grid. I then used "save picture" [NOT anim!] and saved 40
- frames as stevebg.. DPaint is smart, and makes stevebg001, stevebg002,... and
- so on.
-
- Now what? To Imagine! I call up my project, which currently has a static
- brush on the sphere. If I were starting from scratch, I would render the
- anim in HAM scanline to insure the pacement of the brush and feel of the
- anim. Once you animate the brush, it is not a trivial matter to change its
- position on the object you're wrapping.
-
- However, I have already done a static test. I know that my brush is in a
- good position- I'm upright and centered just as I pass the camera- a good
- shot. I then went into the detail editor and loaded sphere.iob [my
- _I_magine _OB_ject] and entered the attributes selector, and select the
- brush map already there. I changed the picture filename in the gadget to
- say 'stevebg.001' and exited and saved the object as sphere001.iob. I then
- went back to the brush name, changed it to 'stevebg002' and saved the sphere
- as sphere002.iob. Note there is no need to RELOAD the sphere- I just save
- it. This goes by VERY fast once you get started, and I had 40 objects in 5
- minutes. Also, every sphere has the same attributes and same brush position,
- etc. The only thing to change is the name of the brushmap.
-
- To the stage editor! I already had my rolling sphere set up- remember, I
- did a static version before that looked good. I deleted the "actor" that was
- my sphere, keeping the position and alignment that were already there.
- I then added a new actor from frame 1 to frame 1 called sphere001.iob.
- I then added a new actor from frame 2 to frame 2 called sphere002.iob.
- I then added a new actor from frame 3 to frame 3 called sphere003.iob.
- I then added a new actor from frame 4 to frame 4 called sphere004.iob.
- .....
- I then added a new actor from frame 40 to frame 40 called sphere040.iob.
- I then added a new actor from frame 41 to frame 41 called sphere041.iob.
- ....
- and so on. My anim was such that my repetitive motion made a pretty clean
- transition from beginning to end [in DPaint] so repeating it looked all
- right. If not, ping-ponging would have worked [instead of 1 2 3 4 1 2 3 4
- 1 ... it goes 1 2 3 4 4 3 2 1 1 2 ...] Also, I made sure the best views
- (by the camera) didn't have a transition, anyway. Entering the 80 objects
- again is boring, but the file requestor is fast enough (and has last file
- defaults!) so it only took 10 minutes. Alternatively, it might have been
- neat to see what morphs would do- this would fade out one frame while
- bringing in the next (I think) and might be worth trying sometime. This
- would be done by changing the object every other frame (or even less often)
- and setting the # of transition frames to 1 or more.
-
- Well, thats it! The ray-traced anim is rendering now- the scanline version
- showed me waving around just fine, and it really looked smooth! I thought
- that people might like to try this technique- its roundabout, but the
- results are worth it!
-
- A note- Animation Journeyman (another renderer) supports animbrushes... must
- be nice, though I haven't seen it.
-
- If anyone wants me to clarify anything I'll be happy to. This little
- essay has grown a bit in length... :-) I won't be able to post the final
- anim, its HUGE!, as is the project itself (40 pictures, > 40 objects..)
- though I might put a still or two on ab20 if people want me to.
-
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- iii) 3-D FONT, by Steve Worley:
-
- I was mucking around trying to make a new "Imagine" picture for the startup
- sequence, and thought it might be neat to ray-trace a nice version.
- The question is what is the best way to get nice 3D fonts? Well, you get
- a nice big font (I used my Pro-Page Helvetica-Bold at about 80 pixels high)
- and save the word(s) as a picture, then convert this to an outline in
- the Detail editor and extrude. You can auto-face using "slice", being careful
- to only slice 2 or 3 letters at once to keep an Imagine bug at bay. [It will
- hang if you have too many letters. It's not the number of points- perhaps
- too many pieces. Anyway, a bug.
- This gives you a nice 3D font.
- Well, not really. It gives you a 3D font, but to be honest, its kinda boring.
- Its just flat letters with depth. Ugh.
- Wouldn't some neat color or chiseled edges or something help?
- "Yes!" I said to myself. Beveled edges all the way around would look
- way-cool! OK, lessee, I can put a smaller copy of each letter on top of
- itself, um, no, I could drag the points on the outline in, um, no, argh!!!
- It is VERY difficult! I couldn't come up with a good way to do it. Remember,
- you don't want a letter becoming smaller as it reaches the surface of the
- letter, you want it to become THINNER. A smaller copy on top would make
- a cone-like effect. Not what I'm looking for.
- Finally, I came up with a method that worked really well. First, go into
- DPaint and pick up your word or whatever as a brush. Then use shift-O to
- THIN the brush. I thinned three times- you might do more with a bigger
- font, less with a smaller font. An font less than about 50 pixels high
- is gonna die.
- I then saved the picture with "IMAGINE" stamped on it twice- thick and thin.
- I loaded it into Imagine and converted to an outline.
- Now, I wanted to make a surface that went from the big outline to the thinner
- one. An ideal job for skin, right? Yes!
- Well, almost. Skin requires both objects to have the same number of points.
- (What would it do with the extras on one or the other?) The thinned letters
- were considerably more complex than their thick versions. [The curves were
- tighter, and right angles were rounded.]
- What I did was copy the thick font's outline, and superimposed it onto the
- thin version. Then I used "drag points" on each letter to make the big font
- look just like the thinned one. I also used my judgement in what looked good-
- the thinned font was a guide, not an absolute.
- When I was done, I deleted my original thin letters. I was left with
- "IMAGINE" in normal letters, and "IMAGINE" with thin letters. Both versions
- had the same number of points.
- The letters should have some depth, so I copied the thick version again,
- and extruded it into a tube.
- To make the chiseled faces, I placed the thin version directly on top
- of the un-extruded version, then raised it up a little bit in the
- direction towards me. Then I picked them both and skinned.
- Putting a front face on the letters was pretty easy. I just used the
- slice method shown in the tutorial manual. Messy, but it works. I used a HUGE
- triangle (primitive plane, one corner deleted) placed over the IMAG
- letters at a depth JUST under the thin letters, and sliced. I deleted
- the crufty leftovers (the outside triangle bits, the VERY small parts
- chopped from the skinned chisel section). I repeated for the INE
- letters. I then selected all of the faces and chisel parts, and JOINED
- them into one object.
- I was then left with an "tube" and a "cap". I placed the cap (the
- front face and chisel edge) directly over the tube and joined them
- both. I didn't bother with a back face, but you could face it if you
- like, or even copy the cap and scale it in its depth direction by -1
- to get an inverted version that will fit on the back.
- Thats it! I used "merge" at the end to connect everything together. Be
- careful to turn Phong _OFF_. You WANT a faceted appearance.
- I haven't completed the picture, and I should really work on my water
- waves. Or my thesis. Sigh.
- Anyway, the final letters looked VERY slick. Try it!
- Another idea would be using the letters to slice out a hollow in a
- solid object, to get a carved/stamped surface.
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- APPENDIX H: Credits and email addresses
- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
- Sandy Antunes (antunes@astro.psu.edu)
- Edward Chadez (echadex@carl.org) Colorado Alliance of Research Libraries
- Mark Davis (davis@soomee@rust.enet.dec.com)
- Matt Feifarek (mattf@picard.cs.wisc.edu)
- Duane Fields (n350bq@tamuts.tamu.edu)
- Kevin Goroway (pawn@wpi.wpi.edu)
- Mike Halvorsen
- Jim Lange (jlange@oracle.com) Oracle Corporation
- Harv Laser ({anywhere}!crash!hrlaser)
- Glenn Lewis (glewis%pcocd2.intel.com@Relay.CS.Net)
- Mark D. Manes (manes@vger.nsu.edu)
- Stephen Menzies (S.Menzies@CAM.ORG)
- Richard Nollman (rnollman@maxzilla.encore.com)
- Helge Egelund Rasmussen (her@compel.dk)
- Marc Rifkin (r38@psuvm.psu.edu)
- Dave Schreiber (davids@slugmail.ucsc.edu)
- Udo Schuermann (walrus@wam.umd.edu)
- Sean Schur (schur@isi.edu) California Institute for the Arts
- Bill Squier (u93_wsquier@vaxa.stevens-tech.edu)
- Colin Stobbe (umstobb1@ccu.umanitoba.ca)
- Scott Sutherland
- Mark Thompson (mark@westford.ccur.com) Radiant Image Productions
- Juan Trevino (tucker@mammoth.cs.unr.edu)
- Steven Webb (webbs@handel.cs.colostate.edu)
- Robert Wallace
- Don Whitaker (dcwhitak@nyx.cs.du.edu)
- Steve Worley (spworley@athena.mit.edu)
- (denbeste@ursa-major.spdcc.com)
- ============================= END OF FILE ===============================
-