Ray Dream Mysteries


Introduction

I have been playing around with Ray Dream Designer 3.0x for a couple of weeks, now. As most users have noted, there is some strangeness in the operation of this otherwise fine product. To make things worse, the manual is less than helpful in some areas. Through some experimentation, I have found some information that may be helpful to others. This document grew a little large to post in the message board, so I am uploading it as a text file. This file deals with modeler issues; extrusion paths, cross sections, scaling envelopes, etc. If there is a positive response to this, I may upload similar information on other parts of RDD like shaders and things. The people at Ray Dream have not seen, provided, or approved any of this, so take it with a grain of salt. I am just describing how the program seems to behave, as opposed to how is was intended to behave. If you have any comments, you can post them in the message area. If version 3.04 gets released soon or if the revised manual shows up, this may all be obsoleted, but anyway...

- Ron Gumbrecht, April 22 1994

Mystery # 1 - The Extrusion Path

For simple objects, with one cross section, the extrusion path is just the "flight pattern" that the single cross section takes as it is extruded. (See the manual for explanations of "pipeline" and "translation" geometry. They are pretty clear.) The translation geometry mode is easier on your brain (more on the pipeline mode a little later). You should always keep in mind that the two views of the path that you can see and manipulate are merely projections of the three dimensional path. This is why, if a point is moved in one view, it may effect the points in another view, as well.

For more complicated objects, with many cross sections, the path "may" be almost irrelevant. In this case the path seems to be calculated, automatically, from the "bounding box" of the objects in each cross section. More specifically, the midpoint between the leftmost and rightmost points in a given cross section will be the point on the "bottom" path projection that corresponds to that cross section. Likewise, the uppermost point and lowermost point in a given cross section will be used to calculate the path point that is seen in the "left" view. Objects that do not get extruded because they have a unique shape number will be included in the calculation. There is no "weight" attached to the number of objects or their size. As you move objects in a cross section, or move individual points in objects, the position of the path points will be recalculated to keep this relationship true. This, in my humble opinion, is a perfectly reasonable tactic. The Ray Dream people are breaking some new ground with the user interface for this 3D modeler, and have to make some choices. Unfortunately, any Bezier control points that are moved outward so that they extend past the limits of this bounding box, will be treated as the new "outermost" point to recalculate the path. My opinion is that this is an oversight on the part of the Ray Dream software team. These points are part of the user interface, not part of the object.

In light of the above explanation, I should mention something about "pipeline geometry". When you are in this mode things can get very strange, indeed. I do not pretend to understand this completely, but here goes. When in pipeline mode, remember, the object is extruded with the shape always perpendicular to the path. If you have multiple cross sections, you will see that they are typically not orthogonal to the workspace. As you move a shape in one of the cross sections, the usual path recalculation takes place. The lines in both path projections might now enter this cross section at different angles. This causes a recalculation of the path perpendicualr at this cross section point. The result is that the shape you moved and the drawing plane that it was in, have moved to a new location and orientation. Yes, that's right, the cross section and drawing plane have been translated and rotated in three dimensional space. If you select "Drawing Plane" again, you will be iviewing the shape from it's front, again. This is disconcerting, to say the least, but I can't think of a better way of doing, either. End of pipeline discussion.

Now, the reason that I said that the path "may" be irrelevant is that if you have carefully designed all our your cross sections, your object may be exactly what you want, even if the path projections look wacked. If it isn't, you can control what happens between cross sections by adjusting the points in the extrusion path projections. If you move the point along the extrusion (the "Y" direction), the corresponding cross section will move, also. If you move the point perpendicular to the extrusion (the "X" or "Z" direction), the position of all objects in that cross section will be moved, as well. One of the more powerful features of RDD is that you can convert the straight line segments of the extrusion path to curves. This is accomplished in the usual way with the point convert tool. You can add more points to the path, even if you do not intend to add cross sections. In this way, you can tailor the shape to behave any way you like in between the cross sections. For points on the path between the "real" cross sections, an interpolated or in-between cross section is calculated by the software. One word of advice: if your cross section shapes have been carefully designed and positioned, do not move the path points that have cross sections. You will just muck things up. I have seen cases where points and objects in a cross section that were created with a "snap-to" grid have moved off-grid as a result of moving the path points. Constrain yourself to adjusting the Bezier control points and the "non-cross section" path points. This way you can tweak the object without undoing all of your careful work on the cross section shapes.

Mystery # 2 - The Scaling Envelope

This is one of the most powerful features of the modeler in RDD 3. Like the Extrusion Path, its operation is clear and intuitive for single cross section extrusions. For simple shapes, and full symmetry, this can be viewed as a "lathe" type function, where the envelope delineates the boundary of the object. The one important difference is that the envelope does not "cut" into the material of the extruded object, it proportionally scales it toward the center. The center is defined as the path position at that point. For this (and probably other) reasons, there is a strict correspondence between the points on the envelope and the point on the extrusion path. If you add a point to one, the software will automatically add a point to the other. There are four points in the scaling envelope for each point on the path; "top", "bottom", "left", and "right". Each point on the envelope controls the scaling on it's side of the path. If you move a point on the scaling envelope along the direction of extrusion (the "Y" direction), it will move the corresponding point in the path, as well as the other three points in the scaling envelope. Note that this is true regardless of the "Symmetry" selection. In "Symmetry" mode, any movement of a point in the scaling envelope toward or away from the path point will move the other three points accordingly. For "Symmetrical in Plane" mode, only the opposite point in the same plane is effected.

For objects with multiple cross sections, things get much more "interesting". In fact, the interactions between these two functions are so counterintuitive that you should consider picking one mode or the other. But if need to use both multiple cross sections and the scaling envelope on the same object, there are some things you need to know.

1) I strongly recommend that you try to complete all work on your cross sections without enabling the Envelope function. When you enable the envelope with existing cross sections, the software will place the envelope points at the outermost points in your cross section shape. You can view this as a normalizing of the scaling to the existing shapes. Once the envelope is enabled, I recommend that you do not move these points again. The reasons will become clear in the next paragraphs.

2) If you move points on the scaling envelope that have cross sections, the part of the shape that is between the path and the envelope will get stretched or squeezed with respect to the path point. Now, this may be exactly what you want, but because of some side effects, you could easily get lost in a maze of corrections and re-corrections, especially if you are in "Free" or no symmetry, mode. Here is what is going on: Changes to the envelope may effect the path. This is because the path is always being recalculated from the bounding box of all shapes in a cross section. As you shrink one side of the object with the envelope, the path is recalculated to reflect this center shift. A subtle result of this is that there may be points that used to be on one side of the path before the operation that now are on the opposite side. If you move the same point again, it may affect a different set of points in the cross section than the first operation. The bottom line here is that even moving an envelope point, and then moving it back to it's original position, may produce distortion in your shape.

3) If you have created shapes with a "snap-to" grid in the drawing plane, the points may no longer be located at grid points after you manipulate the envelope. This produces shapes that have some points that are on the grid and some points that are not. This will probably prevent you from lining a shape up with corresponding shapes in other cross sections, and will make you crazy.

4) As with the path points, you may manipulate the Bezier control points and the envelope points without cross sections freely, with one caveat: the "undo" function is unreliable. (more on this in the "Drawing Plane" section, later.)

5) If you change the symmetry mode after you have an existing envelope curve, the software will make some changes to enforce the new symmetry rules. It is not clear to me how it decides which curve to copy to the others. It might be the last modified one, I don't know. In any case, be prepared to do some rework if you change modes. The "undo" function will probably not get you back to where you were before.

6) You can "fold" the path and envelope back on itself to produce objects like the champagne glass example that is provided with RDD 3.0. This works well only for very simple shapes and full symmetry. I have found no good method of extruding shapes with multiple protrusions, like a hand with palm facing upward, using the scaling envelope. You will get holes between the fingers, but the "skin" will be webbed between the fingers. This is probably not what you wanted. Although I have a hard time verifying it, I can swear the program sometimes introduces unwanted symmetry to point manipulations in this mode. Unless you are very good at visualizing three dimensional objects from 2D projections, your mind will be boggled by the complexity of using the scaling envelope in this way.

Mystery #3 - Working with Cross Sections

For objects with complex curves and multiple protrusions, you will probably want to work with multiple cross sections. A cross section is what you would see if you sawed the object in half, perpendicular to the extrusion axis (the "Y" axis). Actually, that is not strictly true. The cross section will perpendicular to the axis if you are using "translate" geometry. If you are using "pipeline" geometry, the cross section is perpendicular to the path at that point. You should experiment a little with each of these a little until you are confident that you understand the difference. Once you have made your choice, you can change back and forth, but you may have to do a lot of work to get it looking right, again. Here are some guidelines for using cross sections:

1) Use the fewest cross sections that you can get away with. If you have an object with lots of cross sections, even minor changes to the shape may prove very time consuming. A new cross section is generally required when you have some discontinuity or transition in the shape. By discontinuity I mean things like; when an object splits into multiple parts or when you have a hole in the object. Squared off edges can be produced by cross sections if desired. The shape of the object in between the cross sections can be altered with the Scaling Envelope (see previous section). When used with care, this can produce very nice results. Don't fill your object with many similar cross sections. If you find that you have a sequence of cross sections with the same number of similar shapes, you can probably eliminate some of them.

2) Managing multiple cross sections - When you have decided how many cross sections you are going to need, you can start to create them. Each cross section has a corresponding point on the extrusion path. You can create a new cross section by simply holding the option key down when you create a new point on the path with the add point tool. A little planning and some knowledge of how cross sections are created may save you some work.

There is always on cross section at the beginning of a freeform object design. If you put a shape into this cross section before you create any more, that shape will be automatically copied to the drawing plane of the next cross section you create. If your cross sections are all very similar, this will save you the time of having to cut and paste shapes between cross sections after creation. If your cross sections are "progressive" in the sense that #3 is more like #2 than #1and #4 is more like #3 than either #1 or #2, then you should create them in this order, also. This means that you should complete the shapes in #1 before creating #2. When you create #2, it will have a copy of the shapes that are in #1. Make whatever changes are needed in #2 and create #3, and so on. If your first and last cross sections are similar, and the intermediate cross section are, well, "intermediate", then you should put the needed shapes into the first cross section, create the last cross section, make any necessary changes, and proceed to create the middle ones. As you create new sections, the software will adjust the objects to fit into the flow. The software can also automatically generate any number of evenly spaced cross sections, but I don't use this very much. Since I try to place cross sections only at "discontinuities", these would only be valid for a very regular object. Of course, you can later move the cross sections to where you actually need them, but they are generated to fit in a particular place in the "profile" of the object. To get them to look right in the new location you will have to do some fine tuning.

As you are working on the cross sections, sometimes you will want to view all of the sections together. This is useful for aligning shapes in multiple sections. If there was a reference line displayed in a different color on the drawing plane grid, you could do a pretty good job of inter-section alignment without turning all sections on. But there isn't, so you can't. When you are working with the shapes in a given section, the shapes in the other sections may confuse and distract, so you should turn them off. Also there is an undocumented (as far as I can tell) feature, when you view all of the sections. If you happen to click on a shape in a different section, the section containing that shape will be selected. If you are not careful, you may find yourself changing the wrong shape. I learned this the hard way. It is not easy to tell which section is active when you are in the cross section drawing plane. If you select "Go to Cross section" under the Sections menu, the default in the text field is in fact your current section number. It would be helpful if the section number was displayed somewhere, like the window title bar, for instance.

3) Multiple shapes - Whenever you have an object that has multiple parts or fingers, like the fork example in the manual, you will need to use multiple shapes in a given cross section. As it is implemented in RDD 3.03, it works quite well, and it is not hard to understand. The explanation in the manual ("The following should get you started:") is inadequate, and the implementation of the fork itself is cheesy.

When you have multiple shapes in a cross section you will need to use "shape numbering" under the "Sections" menu. Shapes will extrude only to shapes in the next cross section with the same shape number. The shapes do not have to be in a straight line. In fact you can have extrusions pass through each other by having shapes on one side connect with shapes on the other side in the next section. In theory, the shape numbering is straight-forward. In practice, there are a few glitches. If you have shapes that are about the same size and overlap almost completely, only one shape will have it's number displayed. The other number will not be visible unless you move the top shape out of the way. In most cases, though, you can check for proper shape numbering by simply examining the preview result. Another thing you have to watch for is that some operations seem to cause shapes to get renumbered. I think it may be when a shape gets deleted, but I have not been able to pin this one down.

The basic theory of using multiple shapes is simple. In any given cross section you must have a shape for each of the corresponding shapes in the previous section and a shape for each of the corresponding shapes in the next section. Take the fork example on page 2- 19 of the manual. If you look carefully at the second cross section you will see four shapes. There is one larger rounded rectangle, that corresponds to the "fork handle" rounded rectangle in the first section. There are also three smaller rounded rectangles that correspond to the three "prong tip" shapes in the third section. It is at the second cross section that the object makes a transition from an object with a single shape to an object with three shapes.

The way that the fork is implemented in the manual may or may not produce acceptable results for your object. If you examine the fork on page 2-24 closely, you will see that the prongs look like they are protruding from a flat face of the fork handle. This results from the fact that there are parts of the large shape in section that are not covered by the small shapes. There are times when this is exactly what you want. If this is the effect you are looking for, don't forget to select "filled" from the cross section options, otherwise you will be looking into a hollow object. Now, I know that a fork is a small thing, and that it would be silly to add more detail for an object that may be a minor part of a larger scene. But there may be other objects that would not look natural with a sharp transition like this. If you need to make multiple shape transitions look smoother, here is one way to do it:

The first thing you need to do is insure that the shapes related to the next section and the shapes related to the previous section cover exactly the same area. This leaves no part of the incoming extrusion face exposed. In the fork example you would make the center prong shape a rectangle instead of a rounded rectangle. The right prong shape would be changed such that the right side of it matched the curve on the larger shape and the left side would match the side of the center shape. A similar change would be applied to the left prong shape.

The next step is to create a new cross section very close to the "transition" cross section. This section contains only those shapes that are required for the continued extrusion into the next section. In our fork example, this section would have the three prong rounded rectangle shapes in it. They would be closer to the final prong shape than the shapes in the transition section. Since the extrusion between these sections is going to be on a straight line, you can make the transition look smoother by adding more intermediate cross sections to approximate a curved surface. There are no Bezier control points to adjust, here.

4) Holes - Even though RDD 3.0 does not support CSG (Constructive Solid Geometry) or Boolean operations you can usually do a pretty decent job of putting holes in objects regardless of the orientation. By the way, the CSG "union" operation is already implied for all shapes in the cross section because they all belong to the same freeform object that you are working on. The "Group" function lets you move things together at the 2D drawing plane level and to let the shape extrude to the next cross section as a single shape number.

Holes that run all the way through the object along the extrusion axis are the easiest. You simply draw the hole in the cross section drawing plane, select the shape and the hole, and select "Make Compound" from the geometry menu. Some people have had difficulties with objects that have more than one hole. The current wisdom seems to be that if you are having this problem, you can break the object up into smaller pieces with each having fewer holes. I have found another method that seems to work for everything I have thrown at it so far; you simply draw the solid shape, draw the hole and compound as usual. Then draw the second hole and compound it with the previous compound. You can continue adding holes like this, one at a time. It seems the Boolean operations only like two operands. Do not overlap holes. The results can be unpredictable and wrong.

If you need a hole that only goes part of the way through the object, you will need at least two cross sections. The first will contain the basic shape, the second will contain the same basic shape and the same shape with a hole. These two shapes will need to be positioned exactly over each other. You will then need to insure that the basic shapes in the two cross sections have the same shape number. If there are shapes in subsequent cross sections, they should have the same shape number as the shape with the hole. To recap: you should now have two cross sections. The first one has a single solid shape in it. The second cross section has two shapes in it. One is identical to the shape in the first cross section and the second has the compound shape with a hole in it. If you want it to seem like the hole has a bottom, check "Filled" in the cross section options for the second cross section. If you want it to appear to be a hole looking into a hollow object, don't check filled.

If you need a hole that is perpendicular to the extrusion axis, that is, a vertical or horizontal hole through the extruded object, it is a little more difficult, and the results are less satisfactory. Basically, the approach is to split the shape in a cross section into two shapes. In the cross section where the hole is to start, these two shapes should exactly cover the solid shape, as explained in the previous section. In subsequent cross sections you copy the two shapes but put an ever increasing gap between them. When the hole is big enough, you start decreasing the gap in subsequent cross sections, until you can join the pieces back into one shape. Depending on the shape of the intended hole this may work well. Rectangular holes can be done in two cross sections. Circular holes may take many more. The "fidelity" of the hole will depend on how much work you want to put into it. In case it is not clear, yet, this stinks. What you would really like to have is a 3D "Compound" function at the hierarchy/group level. This way you could take an object, put a cylinder through it and tell RDD to perform the CSG difference function. (Are you listening Ray Dream?)

Objects that have cutouts in the sides can be handled in a similar fashion. Instead of splitting the shapes, though, you simply make notches in the shapes where you want the cutouts to occur. Continue with the notched shape through all of the cross sections where the cutout is supposed to be, and return to the un-notched shape when the cutout ends. As in the hole example, above, the fidelity of the cutout is dependent on the number of cross sections used. You will usually want the cutouts to look like they are cut out of solid material, so use the "fill" option for the starting and ending cross sections.

Mystery # 4 - In the Drawing Plane

The tools available in the drawing plane are familiar enough to most Macintosh users that they will feel right at home in the drawing plane environment. There are some differences and idiosyncrasies that you need to be aware of, though.

1) The cursor for the "Convert Point" tool is the same as the pointer tool. You can easily mistake the two. You may want to start making use of the keyboard command for the Point Convert tool (its the * on the numeric kepad). When you invoke the tool this way, it only works once and you revert back to the pointer tool.

2) There is no way to "Send to Back" or "Bring to Front" to help you select a point that is covered by another point. You just have to move the covering shape out of the way. Even if you select an entire shape with an option-click, you may still be unable to select some of the individual points in the shape.

3) The "undo curve changes" function is unreliable. This is especially true for making changes to Bezier control points. Sometimes multiple "undo" / "redo" cycles will produce constantly changing results.

4) When pasting a shape into a section that already has shapes in it, insure that none of the existing shapes or points are selected. If they are, after you paste the new shape, they will still be selected. If you move the new shape to a different position the other points will move too.

5) If you create an open shape with the pen tool (the last point is not connected to the first point), it will probable extrude as a sheet. Since this is not a documented feature, it may not continue to work this way in future releases.

6) Avoid shapes that have lines that cross over themselves. This can produce weird and wonderful results, but is unpredictable.

7) You can manipulate the individual points in a "canned" shape such as the square or circle by "Ungrouping" the shape.

8) If you ever find yourself in the situation where you are viewing the drawing plane on edge, you will notice that you can still see the points on the plane. They are, of course all in a single line. Resist the tmeptation to move these points. You stand an excellent chance of converting your object to antimatter. If you succeed in finding your object, again, you will find that some of the points are in a different zip code. You can't do anything useful in this mode, anyway, so leave 'em alone.

9) After you use the "add point" tool, make sure that only the point you want to move with the pointer tool is selected. Add point leaves a selected point, and leaves previously selected points, still selected.

General Recommendations

1) Plan the object before you start. If you have an object with complex curves, try to extrude it with the complex curves in the "front" or cross section plane. You can import curves from a drawing program into this plane, but not the path planes. The best extrusion axis is not always the longest dimension. If you are having difficulties, try looking at the problem from a different angle.

2) If you are going to use cross sections, try to complete as much of this work as possible before enabling the Scaling envelope. Afterward, avoid moving path or scaling envelope points, if possible.

3) Don't worry about the path too much. If the object looks right, who cares about the path.

4) If the complexity of your shape defies your attempts to extrude it in one piece, break it up into smaller objects. The "Alignment" function will let you put the pieces together with relative ease, later.

5) If you read through the "Drawing Plane" section of this document thinking that I am whining and picking nits, please understand that I am using RDD on an old Mac II. Every time you make a change, Ray Dream redraws. If you have to undo and correct, that is three redraws. As your objects get more complex, this can start eating up a lot of your time. Add to this the unreliability of the "Undo", and you will soon learn work habits that get it right the first time.


Return to Ray Dream Designer
Ray Dream Mysteries / David Ramirez / dram@netcom.com / 28 April 1995