PatchDance was written using MetroWerks CodeWarrior C++ for PowerPC and the PowerPlant application framework. PowerPlant Constructor and Mathemaesthetics Resorcerer were used to construct the interface. The Debugger by Jasik Designs proved invaluable.
Thanks to Jordan Zimmerman for his excellent Color MDEF.
Mercutio MDEF from Digital Alchemy Copyright © Ramon M. Felciano 1992-1997, All Rights Reserved
PatchDance and all associated files and materials are copyright ©1994-2000 Paul Sexton. All rights reserved.
Questions/comments? Want to register, perhaps even pay the shareware fee and have the program's full capability available? If so, and you have a modem ready, e-mail the author here!
INTRODUCTION: (DON'T SKIP
THIS!)
TERMINOLOGY | POINT /
VERTEX | SELECTION |
SPLINES |
PATCHES | OBJECTS
GENERAL REFERENCE Miscellaneous
topics.
MODEL WINDOWS |
TEMPLATES |
CAMERA WINDOW |
DATA READOUT |
CAMERA WINDOWS |
HELP WINDOWS |
SNAP & SNAP PALETTE |
AXIS CONTROL |
DEPTH CONTROL |
GRID |
COMBINING DRAG AND NUDGE
| QUICKCOLORS |
TEXTURES |
MODIFIER KEYS |
THUMBWHEEL |
SLIDE WIDGET |
NUMERIC DATA |
3D CURSOR |
COLOR BUTTONS |
UNDO/REDO |
REPEAT |
CUT & PASTE |
SHOW CLIPBOARD |
HIDE / SHOW |
GUIDE SPLINES
TOOLS
ARROW(A) |
SPLINE ARROW (B) |
OBJECT ARROW (C) |
MOVER (D) |
TRACKBALL(F). |
HAND (H) |
MARQUEE (M) |
NAME ARROW (N) |
SHAPES (O) |
PEN (P) |
DEFORM (Q) |
ROTATOR (R) |
SCALER (S) |
ZOOMER (Z) |
SCISSORS (2)
MENU REFERENCE
FILE MENU |
EDIT MENU |
SELECTION MENU |
MODEL MENU |
TEXTURE MENU |
ANIMATE MENU |
RENDER MENU |
WINDOWS MENU
OPERATIONS REFERENCE Modeling
operations plus the Operations palette
OPERATIONS
PALETTE |
INTERFACE |
SMOOTH / UNSMOOTH... |
SWEEP |
LATHE / REFLECT... |
EXTRUDE... |
FLIP |
JOIN... |
LOFT... |
RANDOMIZE... |
TRIM... |
NEW PATCH |
FILL MESH
FILE REFERENCE Saving and loading
files in all supported formats.
FILE IMPORT |
FILE EXPORT |
SAVE ALTERNATE |
POLYGON OPTIONS |
SAVE DIALOG |
DXF OPTIONS |
3DMF EXPORT OPTIONS |
POV-RAY OPTIONS
OBJECTS REFERENCE The Hierarchy and
Objects systems
PREFERENCES All settings and
preferences
INTRODUCTION: (DON'T SKIP
THIS!)
A few suggestions:
Most 3D programs are object oriented, meaning that they work with
complex objects: spheres, cubes, meshes. Better ones allow for
adjusting individual vertices, but very few allow you to create and
destroy them, or arbitrarily create objects by simply creating new
points and splines.
PatchDance is vertex oriented: all objects, regardless of their
source, are treated as collections of points, (and splines and
surface patches); most operations work on any or all SELECTED points,
splines, and patches regardless of which "object" they belong to. The
only other Macintosh modeler offering this degree of control is
Sculpt3D, whose power and interface helped to inspire
PatchDance. This method gives tremendous flexibility in what CAN be
built, but may take some getting used to. Sculpt users will find
PatchDance familiar in many ways, but should not assume that they
already know how to use it.
All this power comes at a price: export and rendering is difficult, texture mapping is limited, and modeling operations that are based on specific types of objects don't work. As a result, starting with v0.4.8 PatchDance is becoming partially object oriented. This will begin with the ability to export objects rather than huge numbers of patches and/or polygons, and progress to object oriented modeling and very high-end texture mapping, using QuickDraw 3D. And the vertex oriented tools are still there when needed!
TERMINOLOGY: (DON'T SKIP THIS!)
These terms are used interchangeably. Both refer to a specific
point in 3D space, containing a Point/Vertex entity. Point is used
more often in this manual: vertex implies a corner point, where plane
polygons join; a PatchDance Point joins curved splines and may not
form a visible corner.
PatchDance operates on arbitrary sets of points, splines, and patches. Points help to define splines and patches: a point can exist alone while the others cannot.
In general, tools operate on all selected points and ignore
deselected points. (the Arrow tools, when used for dragging, are an
exception). Points are usually created in the selected state and are
displayed in the current selected color; deselected points are
displayed in a different (deselected) color (see Preferences).
Selection can be changed in a variety of ways (see Arrow (A, C, N),
Marquee (M), the Selection Menu, and Hierarchy). It makes absolutely
no difference where the selected points are located or what they are
connected to. You can scale half of two different objects at once, or
rotate half the points in a single object. You can also delete any
part of an object, add new parts to existing objects one point/spline
at a time, and individually texture any patch in a model.
A few operations refer to selected splines or patches. A spline is
selected if BOTH its endpoints are selected; a patch is selected if
ALL the points that make it up are selected.
IMPORTANT: Normally, selected points stay selected until you explicitly deselect them. Points may be selected in any order or combination by any available method, with no effect on each other. By default, clicking in empty space has NO effect on selection. (This can be changed by setting "Alternate Interface" in the Preferences.)
IMPORTANT: The ability to work with arbitrary Point sets is the key to patchdance's power; however, vertex editing of objects can destroy their status as named Objects and convert them into collections of patches. The key is to use vertex level modeling to create complex, asymmetrical objects, while leaving as much geometry as possible in Object form.
Important notes about Splines and Patches follow this section.
PatchDance uses cubic Bezier splines to construct objects. Most
modern drawing packages use similar type splines, and they should
already be familiar. Note, however, that PatchDance's implementation
provides completely 3D splines and has more options than most 2D
programs.
Two-dimensional programs usually limit a point to 2 splines,
forming a linear object that is called a path. PatchDance has no
limit to the number of splines attached to a point (allowing you to
create 3D meshes as well as paths). PatchDance does use the term Path
in a special sense, see Spline Paths for details.
There are 3 basic spline types that you will encounter: All 3
types are identical (internally) and can be freely converted, but
they behave differently and many dialogs and tools allow you to
choose the type you want to create.
There is no direct provision for permanently unlocking the handles
on a point to create a corner. Corners are made by option-dragging a
point with the Arrow (A) or Spline Arrow (B) tool and can be removed
simply by adjusting a handle with the option key up. Many modeling
functions can also produce corners.
PatchDance describes a surface (what you see in a rendering) as a
collection of Patches. A patch is a closed figure made of 3 or 4
splines (3 or 4 connected points) that contains a Patch entity. There
is no limitation as to the shape or size of a patch: ANY splines can
be used. Patches render smoothly regardless of size or shape (they
are a mathematically defined surface), though they may appear faceted
in the Camera window, which emphasizes speed rather than image
quality.
The terms "Spline mesh" and "Surface" are often used
interchangeably but they are not the same thing. Unlike many
polygonal modelers, PatchDance does not automatically create a
surface whenever it finds a suitable closed shape. If you draw a
square with the Pen tool, you will have exactly what you see: an
EMPTY square shape that is INVISIBLE in a rendering. (You could
choose Make Patch or Fill Mesh from the Patches submenu of the Model
menu to "fill in" selected, 3 or 4 sided, closed shape(s)). You can
use the Camera window to ensure that you have surfaces everywhere you
want them before starting a high-quality rendering.
Most 3D operations automatically generate patches when they create a surface. In general, the Pen (P) tool is designed for creating spline paths that are then used by the 3D forming operations (Loft, Extrude, Lathe, etc) to create a patch surface. While you certainly may create a surface one spline at a time, it is usually not the best way. When exporting PatchDance models to other software, empty meshes may become surfaces if they contain closed shapes meeting the other program's definition of a surface and the other program is capable of reading the information (many programs cannot handle pure spline/mesh data).
PatchDance defines objects as any collection of Points, splines, and patches that can be managed as a unit. When the word is capitalized (Object) it refers to an object that has been defined and named by PatchDance as a result of the modeling operation that created it. This allows, for instance, for a sphere to be exported as a sphere primitive rather than a mass of polygons, and to be assigned a default testure mapping appropriate to a sphere.
Obviously, vertex level editing of an Object can change its nature and remove its Object status. This new capability will require some practice to use efficiently: edit where necessary, leave alone as much as possible.
There are two other basic types of objects, neither of which has special significance:
IMPORTANT NOTES: More about Splines
and Patches
PatchDance was designed to place as few limitations as possible
upon the user: there should be almost nothing that CANNOT be built.
On the other hand, there are some allowed operations that will lead
to problems or cause poor results.
Cubic Bezier splines are easier to work with than B-Splines (NURBS
are a type of B-Spline) and very versatile. Their main limitation is
that they cannot form mathematically exact circles and ellipses
(conic sections). For non-drafting purposes, though, they are
generally accurate enough. B-Splines can also make it easier to
create fair (equal slope) curves; PatchDance has special added
support for this.
It is possible, though not generally recommended, to create more
than one spline between 2 points. (This cannot be done with the Pen
Tool (P).) It is NOT possible to make a 2 sided patch, so this type
of construction will ALWAYS render as a hole.
It is easy to divide splines into smaller pieces: try not to use
more than 120°of curvature in a single spline (PatchDance itself
never exceeds 90°, and this is even better). Large curvatures
lead to highly "stressed" surfaces that can cause problems with the
camera view (in shaded mode) and spline based operations such as path
extrusion. It may also increase rendering time and memory usage, even
if the actual number of patches is less.
PatchDance surfaces are based on a mathematical formulation called a Coons patch. These are very general (no limitations on boundary curves) but may lead to problems if used carelessly. Several points to remember:
Using QuickDraw 3D
PatchDance supports many QuickDraw 3D features. In order to use them, you must install the QuickDraw 3D shared libraries (available online, or preinstalled on late model Power Macintoshes). This in turn requires that you have at least 16MB of RAM (and several MB) free, or the system won't work: commands requiring it will either be disabled or display an alert.
The Show Clipboard command also requires the QuickDraw 3D Viewer
shared library.
When importing or rendering large models, be aware that much more memory than 16MB may be required. PatchDance should be able to recover from most out-of-memory errors, but that definitely isn't guaranteed.
PatchDance generally uses a "standard" interface, familiar to
Macintosh users. There are a few exceptions, discussed below. Also
see Selection, which is quite different from
standard behavior.
Many menu items are enabled whether or not they can actually be done. This doesn't mean that a given operation is possible, it's just not practical to check all the possibilities every time the menu bar is updated. If you try to do something that doesn't make sense, you'll be notified by an alert, usually with a reason, which is more helpful than a disabled item anyway.
MODIFIER KEYS: A lot of effort went into making these consistent! Modifiers can be added wherever it makes sense. There are several exceptions and tool dependent uses: see individual Tool descriptions. In most cases, the Prompt Window at the bottom of the screen lists the modifier keys available with the current tool.
The Snap and QuickColor Palettes have unique modifier key arrangements: they are listed on the palette.
These are used to set colors. They consist of a small square of
color with a black border. Clicking causes the Color Picker to
appear. If a Color Button is Command-clicked,the Color Picker does
not appear, but the current color is copied to an internal clipboard.
(Note that the cursor becomes an eyedropper.) When a button is then
Option-clicked (note that the cursor changes to a paint bucket) the
copied color is pasted into the new button. This allows copying
colors without having to write down numbers from the Picker dialog.
See Preferences Dialog for an example of these buttons.
It is also possible to enter colors in HTML format ( #rrggbb): to do
this, shift-click the button.
IMPORTANT: The buttons on the QuickColor Palette are NOT Color Buttons: the standard QuickColors are changed in the Preferences Dialog.
The thumbwheel feature allows you to quickly adjust a numeric value without having to type a new number. It's difficult to explain in print: type a value into an edit field, place the cursor in the middle, and press the up/down arrow keys until you see how it works. Note that the FIRST time you press a key, the target digit (if deselected) is selected but not changed. You CANNOT use the up/down arrow keys to move to the beginning or end of an edit box; use Home and End instead.
This is a small, low overhead replacement for the standard Mac slider type control. They are used only for interactive (real time) operations that provide their own feedback, and where there is not enough room for a standard slider. Examples are the roll and zoom controls at the bottom of the Camera window. When these are clicked and the mouse dragged (horizontally, in this case) the result is immediately displayed in the Camera window, as well as numerically in the edit fields next to the controls. Slide Widgets always have a red border, unlike all other controls.
Fields for numeric entry can be picky about what they accept. If the computer beeps and/or refuses to accept a keystroke, chances are you are trying to enter a value of the wrong type (some fields accept only integer values) or outside the allowed bounds: the allowed range (if any) is usually listed in the Prompt Bar at the bottom of the screen if you point to the edit field.
Also called the Cursor (capitalized). It should be clear from the context whether the normal (mouse cursor) is intended. The 3D Cursor appears in the Modeling windows as a small cross in the current Marker color. It has several uses: