Render Madness!

Hollywood loves computer graphics techniques; one favorite is rendering. All forms of rendering, including ray tracing and radiosity, are becoming useful and profitable to the advertising and entertainment community. The quality of a rendered image is so high that many of us have not yetrealized how this form of 3D graphics has permeated our lives--at least those of us who watch lots of television.

Television and Advertising

Rendered images on television are everywhere. To start with, consider commercials. Numerous examples could be given, but I'll give my favorite example--the Coca-Cola polar bears. You might remember the series of commercials featuring those cute, big, polar bears that ice skated, snow jumped, and luged around the time the 1994 Winter Olympic games aired. Those polar bears, as you suspected, are not real, but are computer-generated. In fact, they are rendered images.

The rendered images used in commercials such as the Coca-Cola spots are made up of hundreds (or even thousands) of still images, created one at a time. Naturally, rendering applications such as Caligari trueSpace and Autodesk 3D Studio make the task much easier. Regardless, making a 30-second commercial is a long and painstaking process.

Animated corporate logos also are the rage now. Everyone has to get an animated logo. Many of these logos are rendered images, too. Companies such as StanleyCorp. "the business that makes hand tools--have a five- to ten-second animated logo made of tools flying into their proper places in a garage, with the Stanley logo appearing when all the tools are in place. This is not a commercial, but a logo. When shows that are sponsored by Stanley show the Stanley logo, they are showing the five- to ten-second animated spot instead of a boring, non-moving picture.

Real Estate

Television and advertising are not the only sectors of our society that have been afflicted with the rendering bug. Real estate, both commercial and residential, is the perfect target for three-dimensional rendering.

Want to add a new deck to your house? Thanks to applications such as trueSpace and 3D Studio, a rendered image can show you what the project will look like upon completion--before you even apply for that pesky building permit. The final product could have flaws in its basic design. Those flaws could appear in the rendered image. Just think of the time and money you can save. For instance, you can check a certain color to make sure it will match your house. Or perhaps oak is the wrong kind of wood to use. You could even plot the movement of the sun so you could tell if any unwanted shadows appear. The possibilities are almost endless.

So you need to sell the idea of a downtown mall to the city commission? No problem. Why bother with those silly, white plastic models that cost a ton of money and take forever to make? You can have your dream mall rendered and show a videotape of a walk-through of the rendered mall's stores, sidewalks, people, and all. Using rendered images, you can demonstrate how the mall would fit in with the downtown area, as well as create more business for the downtown area, without adding to traffic or parking problems.

The usefulness of rendering and real estate run the gamut. From a basic home project to a massive skyscraper, three-dimensional rendered images are proving to be valuable tools.

Legal System

You can't expect something as cool as three-dimensional rendered graphicsto go unnoticed by lawyers, can you? Lawyer jokes aside, rendered images are also proving their usefulness in the courtroom.

Many legal cases have been and are being fought using rendered images as evidence to support a particular case. On both sides, prosecution and defense, specially rendered images are provided to the court in order to re-create ordemonstrate an event pertinent to the case. For example, an automobile accident can be re-created using a renderer to show the trajectory of the accident upon impact, the effect of the speed of the vehicle or vehicles involved, the angle of impact, and many other important items. A plane crash can be re-created to show that the airplane's rudder failed to operate properly or that the wing fell off before impact--again a limitless number of possibilities. Even the JFK assassination has been re-created to prove (or disprove) the conspiracy theory.

Computer technology is being used not only to entertain us, but to save us time and money, and assist in confirming innocence (or guilt).

Autodesk 3D Studio

Autodesk 3D Studio is one of the most popular 3D rendering software packages available. Its power, flexibility, wide range of features, and user interface are top-notch (considering that it is a DOS program). However, it is an extremely expensive package--around three-thousand dollars. Because of this, the 3D Studio software is not on the CD-ROM disc that comes with the book.

Don't be too disappointed, because a Windows-based rendering application called Caligari trueSpace (by Caligari) is included on this book's CD and is discussed thoroughly in the chapters following this one. So you definitely got your money's worth by purchasing this book!

The first section in this chapter is a brief discussion of Autodesk 3D Studio Release 2, with comments that reflect features new to the latest version, Release 3. This book's CD also includes a free-running demo version of 3D Studio that you can run to see the process of creating a 3D-rendered image.

System Requirements

3D Studio is a DOS protected-mode program that requires lots of memory. A protected-mode program is one that can access all the RAM the computer has to offer. (Ordinary DOS programs cannot.) In order to access all this memory, 3D Studio must use a DOS Extender Utility, such as the Phar Lap 386 DOS Extender. This program is the connection between protected-mode DOS programs and the extended memory. In order to properly run 3D Studio, you must have the following computer equipment:

IBM PC/Compatible 386 or better: Although a 386 will do, a 486 is preferred. It will greatly enhance your rendering speed.
A math coprocessor: The Weitek 3167 or Intel 80387 is recommended for the 386-class machines. A 486 has an on-board math coprocessor, but the Weitek 4167 will enhance the system's performance even further.
4MB of RAM: This is the minimum amount you'll need. The preferred number is 8MB or 16MB. 3D Studio is a memory hog that will use all the memory it can get. When there is no more RAM, it will use the hard drive for temporary memory. Naturally, system performance will drastically be reduced when the computer has to use the hard drive for temporary memory storage. Therefore, the larger RAM size is recommended.
12MB of free disk space: This is necessary in order to install all the materials and bitmaps, as well as all the other 3D Studio program files. You should have lots more free space if you want to actually get any work done.
DOS 3.3 or later: DOS 6.2 is recommended because of its more efficient use of memory, which is always a plus for memory-intensive programs like 3D Studio.
VGA or frame buffer card: Most standard VGA cards work well for displaying the main 3D Studio windows but are sometimes as inadequate as the display on which the 3D model is rendered. An adequate display card can display either 16 bits per pixel (bpp) or 24/32 bpp. A second type of display setup would be to combine your VGA card with a secondary frame buffer card, such as the Truevision TARGA+ and ATVista cards supported by 3D Studio. With a card such as one of these, you can render into the frame buffer card, shown on one monitor (connected to the TARGA+, or ATVista), while still viewing the main screen, shown on the VGA monitor.
Microsoft-compatible mouse: A preferred alternative is a SummaSketch or compatible tablet by Summagraphics. A serial port is required to connect the Summagraphics tablet.

The 3D Studio Look and Feel

One of the controversial aspects of 3D Studio is its user interface. Because it's a DOS program, 3D Studio must create its own user interface style. Whether you like the interface or not is strictly a matter of opinion. In any case, there are three main sections to 3D Studio: the 2D Shaper, the 3D Lofter,and the 3D Editor.

The 2D Shaper

The 2D Shaper is a tool provided by 3D Studio that enables you to create two-dimensional shapes. With it, you can make your own custom shapes that will ultimately be transformed into three-dimensional objects (in the 3D Lofter) and then rendered using the 3D Editor. The full process of shape creation to final rendered image is shown in Figure 4.1.


Figure 4.1. Render file creation process.

Terminology

Before you continue, you should understand a bunch of terms, as defined by 3DStudio. These terms are used extensively in this chapter:

Vertex: A vertex is the point in space at which two segments meet. This term is somewhat similar to the same term for a 3D object in a mesh file--mesh file vertex. A vertex is different than the mesh file vertex, however, because it is visible. A mesh vertex is not. The vertex can be moved or deleted to alter the appearance of the shape. Also, more vertices can beadded after the shape has been created.
Segment: A segment in the 2D Shaper is a line that connects two vertices. In other words, a segment is a part of a straight or curved line. It is not an entire line, just the piece of a line that is between two vertices. This term differs a bit from the definition in a 3D object. Make sure you do not confuse the two.
Step: A step is a segment divider that enables a segment to be curved. You can define how many shapes exist between vertices in order to minimize or maximize the smoothness of the curve. More steps increase rendering time, so use as few as possible to produce the desired curve.
Polygon: A polygon is one or more straight and/or curved lines. A polygon can be a circle, square, line, triangle, parallelogram, zigzag, trapezoid--any shape or combination of shapes that you can imagine.
Shape: A shape is a series of polygons that you have grouped together and declared to be a shape. A shape must be defined so it can be placed into the 3D Lofter for transformation into 3D.

The 2D Shaper Screen

When the 2D Shaper program is executed, the Shaper's main screen looks like the one shown in Figure 4.2.
Figure 4.2. 2D Shaper screen.

2D Shaper Menu

In reality, there are two menus: a horizontal menu (menubar) and a vertical menu (Command Column). This dual menu setup is unique. Although the menus take some getting used to, they save time.

Menubar

The traditional (horizontal) drop-down menu was popularized by the Macintosh in the 1980s and is typically called the menubar. 3D Studio's menubar doesn't appear until you move the mouse to the top of the screen. When the menubar is invisible, its space is used as a status line to keep track of the current mouse position and other things. The 3D Studio menubar has four menus: Info, File, Views, and Program.

The Info menu contains such items as system status, configuration, and the About box. When you need to change the mouse tracking speed, or set the tablet COM port or the default directories, open this menu. Because of the nature of the menu, you will not use it very often after you are comfortable with your configuration settings.

The File menu is similar to the File menu found on the Macintosh or in Windows. Use the File menu to open, close, and save Shaper files. When you select Loador Save in the File menu, you are loading or saving filename.SHP files, which are shape files used to store two-dimensional shapes for storage or later editing. Also select Quit from the File menu to get out of 3D Studio.

The Views menu enables you to set up and determine the various views settings for the current viewport. The 2D Shaper has only one viewport, so the capabilities of the Views menu is limited compared to the Views menu of the 3D Lofter and 3D Editor.

The Program menu is a cool shortcut that lets you jump around between the 2D Shaper, 3D Editor, 3D Lofter, Keyframer, and Materials Editor. Plus, it enables you to exit to a DOS shell and even add your own DOS programs that you can execute directly from the menu.

Command Column

The vertical menu is called the Command Column. The Command Column is used to create, edit, and delete polygons in the Shaper. When you click one of the menus, a list of items appears underneath the Command Column. This is the list of menu items that would normally appear as a drop-down menu list in the standard menubar style. When you click a different Command Column menu, the current list disappears and is replaced with the new menu list. From a visual standpoint, it looks quite odd, but you'll probably prefer it over the menubar approach because it takes less space, is easier to maneuver around in, and does not cover up any of your views when you have the menu open.

2D Shaper Icon Panel

The Icon Panel appears in the 3D Editor, 3D Lofter, 2D Shaper, and Keyframer, but not in the Materials Editor. Each screen mentioned has its own set of panel icons, but each panel contains a common subset of icons. See Figure 4.3 for a picture of the 2D Shaper's Icon Panel. The panel provides a shortcut mechanism for often-used features such as Zoom In and Zoom Out.


Figure 4.3. 2D Shaper Icon Panel.

In the lower-right portion of the 2D Shaper screen is the Icon Panel. The icons, or buttons, are broken into two main categories: view control buttons and selection control buttons. There are exceptions, but most of the buttons fall into one of these two categories. Some buttons stay selected when pressed in order to facilitate multiple commands. An example of this is the Zoom button. When the Zoom button is pressed, the zoom command stays on until a right-mouse click or the selection of another command takes place. Other buttons activate the feature only once, requiring the same button to be pressed again and again to continually activate the feature. Other buttons are toggle buttons that affect the way commands are carried out. When a button is pressed, the feature is activated until the button is pressed again, deactivating the feature. For the Icon Panel, a button is selected when it is red and deselected when it is gray. Any feature in the Icon Panel can be activated by a keyboard shortcut key.

2D Shaper Viewport

The big square that takes up most of the screen is the viewport. This is where you do all of your object creation and editing. This viewport is two-dimensional; therefore, you cannot draw objects that have depth.

The Wine Glass

The image I am going to create using 3D Studio is a simple wine glass. The 2D Shaper's job in the process is to create a two-dimensional version of the glass.

The first task is to understand what the glass needs to look like in 2D space so it can be lofted properly in 3D space later. Lofting an object such as a square into a cube is easy to figure out, without a great deal of forethought. A cylindrical object such as a glass is not as easy. However, in order to make the glass appear realistic, I must draw the wine glass as though it were a sliver, as shown in Figure 4.4. Basically, the sliver is 1/360th (one degree)of the wine glass.


Figure 4.4. Wine glass shape.

Once I have completed drawing the wine glass shape, I can loft it in the 3D Lofter.

The 3D Lofter

The 3D Lofter is the second of the three programs offered within Autodesk 3D Studio. Its purpose is twofold:

  • To import a shape from the 2D Shaper or hard disk, and transform or loft it into 3D space
  • To import a shape from the 2D Shaper to be used as the path from which a 2D shape is transformed

The input of the lofter is a 2D shape you created using the 2D Shaper. The output of the lofter is a 3D mesh object that is sent to the 3D Editor for rendering (adding lighting, cameras, texture maps, and all that cool stuff). In addition, the output mesh object of the 3D Lofter can be sent to the keyframer for creation of 3D animation files.

Terminology

In typical Autodesk form, new terms are introduced with every utility found within 3D Studio. You should at least recognize these terms:

Lofting: From an ancient term used when building ships, lofting is the process of transforming a two-dimensional cross section object into a complete three-dimensional object. Imagine what the hull of an old large woodenship looks like before the outer skin is put on (a series of cross sections placed in a row), and you can image what lofting does.
Lofting path: The lofting path is very similar to a straight line drawn in the 2D Shaper. This line is used as the path onto which one or more 2D objects will be lofted.
Step: In the 2D Shaper, a line can be drawn with two end vertices and some number of vertices in between. In the 3D Lofter, these in-between vertices of the lofting path line are called steps.
Level: Each step on the path is called a level. When you import a shape into the lofter, it must be placed somewhere on the path line. The shape gets placed on one of the levels (steps) in the path.
Tweening: When an object is lofted into 3D, you have the option of placing a new cross section on each step in the lofting path, or only at the end vertices. The process of placing a new cross section at each step is called tweening.
Contour: There are two ways an object can be lofted with respect to the lofting path. The objects can be lofted so that they are always perpendicular to the path, or so that each object is parallel to the other. A contour forces each object in the path to be placed perpendicular to the path.

Lofter Overview

As stated before, the lofter takes one or more 2D shapes and lofts them along a lofting path, which results in a 3D mesh for later rendering. Figure 4.5 shows the process for lofting a square into a cube.


Figure 4.5. 3D lofting process.

The lofting path is the line that goes through the squares in the middle picture. Inside the lofter, the shapes and the path are collectively called a model. Once lofted into 3D, the resulting mesh can be imported into the 3D Editor, where it becomes part of the 3D scene along with other objects, lights, cameras, and so on. There are important differences between a model and a mesh. A model is made up of splines joined together to form a particular shape. A mesh consists of interconnecting triangular faces of three vertices, each with three sides. Many times a mesh object will not display one side of the triangles in order to display them as squared objects. (Two opposing triangles with invisible hypotenuses become a rectangle.)

3D Lofter Screen

When the lofter is executed, the lofter screen should look something like the screen in Figure 4.6.


Figure 4.6. 3D Lofter main screen.

3D Lofter Menu

As with the 2D Shaper, the 3D Lofter also has two menus--the menubar and the Command Column.

The File menu is similar to the 2D Shaper File menu with the following exception: When you select Load or Save in the File menu, you are opening or saving filename.LFT files. These are loft files, which contain one or more shapes (from the 2D Shaper) along with lofting information.

The Command Column contains commands that let you adjust and edit your shapes and loft them into three dimensions.

The Views menu enables you to set up and determine the various views settings for the current viewport. The current viewport has a white outline around its viewport's box. You can select any viewport to be the current viewport by clicking the mouse on the desired viewport area. Through the Views menu, you can do such things as force all drawings to snap to an invisible or visible grid, adjust drawing guidelines, and disable a viewport.

3D Shaper Icon Panel

The 3D Shaper's Icon Panel is slightly different from the 2D Shaper Panel, as shown in Figure 4.7.


Figure 4.7. 3D Lofter Icon Panel.

3D Lofter Viewports

The 3D Lofter contains four viewports. In fact, it has more than four, but itshows only four on the screen at any one time. The largest viewport is calledthe Shape viewport. It shows the shape that is on the current path. The Top andFront viewports show the top or front view of all the shapes on the path,respectively. The User viewport shows all the shapes on the path from aspecified angle.

Loft the Wine Glass

In order to loft the wine glass, you must import it into the 3D Lofter from the2D Shaper. Next, loft the wine glass around a circular path to create the glassshape, as shown in Figure 4.8.


Figure 4.8. Previewed wine glass.

The 3D Editor

The 3D Editor is involved in the last stage of the three-stage process in creating a single, rendered image. Although the 3D Editor is the program you use to render, it shouldn't be considered as the renderer itself. In fact,the renderer is simply one of the commands available inside the Editor program.

Note: Although I say this stage is the last stage, there are two other programs found in 3D Studio that play important roles in the creation and display of rendered images. They are the Materials Editor and the Keyframer. Although they are not part of the trilogy of rendering steps, they are very important utilities in 3D Studio. The Materials Editor enables you to create, edit, and delete surface materials that are used by the 3D Editor. The Keyframer is used to create animated images.

Terminology

Before you get down to business, it is important that you understand some terms that are used in the 3D Editor. A brief description of each follows:

Normal: A normal, also called surface normal, describes an invisible vector that is perpendicular to the surface of the object. The normal points upward from the surface like a rocket points to the sky when on the launching pad. It is called a normal because the value has been normalized, or reduced, to a fractional value between 0 and 1.
Orthographic viewports: An orthographic viewport displays only two dimensions of a three-dimensional object. Most of the viewports in 3D Studio are orthographic. For example, the Top viewport shows the top view of the object, but you can see only the width and depth cues--not the height cue. The same goes for the Left, Right, Top, and Bottom viewports.
Isometric viewports: An isometric viewport attempts to display all three dimensions at once. The User viewport is an example of an isometric viewport. Notice that in the User viewport you can see all three dimensions: width, height, and depth (or X, Y, and Z).
Camera viewports: You can create a Camera viewport to provide a distinct viewing angle of the scene. Therefore, all viewports that do not have a camera's angle are called non-camera viewports. A Camera viewport is also considered an isometric viewport because it shows all three dimensions.
Material. A material, or surface material, is a component that you apply to an object so it takes on a realistic appearance. An example of this is the ASPHALT material, which you apply to a flat surface to make it look like a driveway or parking lot. A material has properties assigned to it, such as shininess, transparency, color, as well as bitmap image definitions. A tutorial on creating your own materials is discussed in the next chapter, "Advanced Rendering Techniques."
Materials Library: The Materials Library is a file that contains a collection of these materials(discussed in the preceding paragraph). 3D Studio comes with a default Materials Library, but you can create your own library, or add, edit, and delete existing components in the 3D Studio Materials Library. For this chapter, only the default Materials Library is used. If you want to create your own materials, read the next chapter.

3D Editor Overview

The Editor program is a three-dimensional world from which you create a scene. The scene describes all the objects in this world (many of them created in the Shaper and Lofter), and their locations, sizes, colors, orientations, and so on. In addition, the scene describes all lighting, cameras, and materials found within the scene.

3D Editor Screen

When 3D Studio is executed, the 3D Editor screen appears first. This is the main screen, from which the 3D editing and final rendering take place. This involves the third step in the process. Figure 4.9 shows a sample 3D Editor screen.
Figure 4.9. 3D Editor main screen.

3D Editor Menu

The 3D Studio menubar has four menus: Info, File, Views, and Program. The File menu acts like the 2D Shaper and 3D Lofter File menus, with the following exception: When you select Load or Save in the File menu, you are loading and saving filename.3DS files. These mesh files are the standard files used in 3D Studio. They contain descriptions of all the objects, their placements, the lighting, cameras, and any other information pertinent to the final picture. The files do not contain the final rendered image--just the information necessary to render the final image.

The Views menu enables you to set up and determine the various views settings for the current viewport. Although the screen can show up to four different angles of your scene at once, you actually work in only one viewport at a time. For instance, when you create a sphere, you physically draw the sphere in the currently active viewport. The sphere will show up in all views, but you always do your working, editing, and rendering in only one view. The current viewport has a white outline around its viewport's box. You can select any viewport to be the current viewport by clicking the mouse on the desired viewport area. Through the Views menu, you can do such things as force all drawings to snap to an invisible or visible grid, adjust drawing guidelines, and disable a viewport.

The Command Column works the same as the Shaper and Lofter Command Columns, except that the 3D Editor Command Column one lets you create, edit, and delete objects (instead of polygons or shapes).

3D Studio Icon Panel

The Icon Panel appears in the 3D Editor, 3D Lofter, 2D Shaper, and Keyframer, but not in the Materials Editor. Each of these screens has its own set of panel icons, but many of them are similar to one another. See Figure 4.10 for a picture of the 3D Editor's Icon Panel. The purpose for the panel is to provide a shortcut mechanism for often-used features such as Zoom In and Zoom Out.


Figure 4.10. 3D Editor Icon Panel.

In the lower-right portion of the 3D Editor screen is the Icon Panel. The icons, or buttons, are broken into two main categories: view control buttons and selection control buttons. There are exceptions, but most of the buttons fall into one of these two categories. Some buttons stay selected when pressed in order to facilitate multiple commands. An example of this is the Zoombutton. When the Zoom button is pressed, the zoom command stays on until a right-mouse click or the selection of another command. Other buttons activate the feature only once, requiring the same button to be pressed again and again to continually activate the feature. Other buttons are toggle buttons that affect the way commands are carried out. When a button is pressed, the feature is activated until the button is pressed again, deactivating the feature. For the Icon Panel, a button is selected when it is red and deselected when it is gray. Any feature in the Icon Panel can be activated by a keyboard shortcut key.

3D Editor Viewports

The 3D Lofter contains four viewports. In fact, it has more than four, but it shows only four on the screen at the same time. The largest viewport is called the Shape viewport. It shows the shape that is on the current path. The Top and Front viewports show the top or front view of all the shapes on the path, respectively. The User viewport shows all the shapes on the path from a specified angle.

Create the Wine Glass Scene

I want to place the wine glass on a floor, with the glass near a wall. To accomplish this, I must import the wine glass, create the floor and wall, create the lights, and apply textures.

Create and Adjust Lighting

The first step in the process is to import the wine glass. This is accomplished easily by lofting the glass shape in the 2D Shaper. Once it is lofted, the wine glass appears automatically in the 3D Editor.

Assign Material

Setting up the lights is a two-step process. I set up the ambient light, which is omni-directional light that does not cast shadows. Next, I created a spotlight that does cast shadows. I pointed the spotlight at the wine glass. With the lights set up, I can now render the scene and see what I have. (See Figure 4.11.)


Figure 4.11. Wine glass, rendered with a spotlight.

Assign Material

For the wine glass, I chose a golden metallic look called CHROME SUNSET. Figure 4.12 shows what the image looks like when rendered.


Figure 4.12. Chrome sunset wine glass.

Add Floor for Glass

The first object I'll add is a simple floor, or platform, on which the glass can sit. Imagine what a floor is made of in a 3D world. In the realworld, it is a large flat plane that is anywhere from less than an inch thick to as large as several feet thick. Because the bottom of the floor for the wineglass won't be seen, you could make the floor very thin and still achieve the same effect. In any case, a 3D Studio floor is simply a box--a very large, flat box.

I created a three-dimensional box that represents the floor of the scene. With the floor in place, it needs to have a material assigned to it for realism. I chose the DARK WOOD TILE material to be used for the floor.

Once the process is complete, the rendered image should look something like that shown in Figure 4.13.


Figure 4.13. Wine glass on wooden floor.

Add a Wall Behind the Glass

The last object to create in the wine glass image is a wall. A wall in the 3D Editor is much like a floor, only it is vertical instead of horizontal. I created such an object and positioned it so that it sits at the edge of the floor behind the glass, as shown in Figure 4.14. See Figure 4.15 for the completed wine glass scene.


Figure 4.14. Add a wall to the scene.


Figure 4.15. Completed wine glass scene.

The wall will serve as a nice backdrop to the overall image. With the wall in place, I need to select an appropriate material for a wall. For this image, I used BROWN BRICK to create a brick wall behind the glass.

With the addition of a wall and a floor, the spotlight may need to be adjusted so that it shines on the wall and floor behind the glass, or I can add more spotlights to create additional shading and shadows. In fact, the sample wine glass has an extra spotlight created to do just that. Once completed, I rendered the image again, as shown in Figure 4.15.

Conclusion

This chapter covered the three steps in the rendering process using Autodesk 3D Studio. In the next chapters, you will be able to learn how to create and render your own scenes. In Chapter 5, you will be introduced to Caligari trueSpace, which is also a three-dimensional modeling and rendering program. What's really cool about this program is that it is a Microsoft Windows application. Then in Chapter 6, you will learn about Pacific Motion's 3D Workshop, which is a DOS-based modeling and rendering program.


(c) 1994, Macmillan Publishing USA, a Simon and Schuster Macmillan Company.

Basic Tricks for the Apple

3D Madness!

Author:

Publisher:
ISBN
Pages:
Price:

 
 
PO Box 2145 Mesa, AZ 85214 ph: 800.628.8280
Copyright © 2008 Discovery Computing Inc. All rights reserved