Introducing 3D Canvas

3D Canvas is a freeware 3D modeling and animation tool. You can use it to create models of simple items, or large scenes.

Modeling

3D Canvas provides tools that you can use to create, deform, sculpt and paint 3D objects.

Animation

You may place 3D Objects in a scene, and animate their position and shape using key-frame based animation.


Getting Started with 3D Canvas

Basic Set-up

Unzip the 3DCanvas.zip file using your favorite Unzip program. In the folder you created, there is a program called Setup. Run the Setup program by double-clicking it. This begins the Setup program for 3D Canvas which will prompt you with further set-up instructions.

Once the Setup program has completed, you may delete the folder that you created when you unzipped 3DCanvas.zip. We recommend that you keep the original 3DCanvas.zip file so you can install the program again in the future if you desire.

Running 3D Canvas

The 3D Canvas Setup program added a 3D Canvas entry to the Start Menu. To run 3D Canvas simply select 3D Canvas from the Start Menu.

Creating a Scene

A new Scene is automatically created when 3D Canvas is started. You will be presented with an empty scene which has been laid out with a grid to assist you in judging proportion and aligning items in your scene.

Scene Navigation

Navigating through your scene is done using the Navigation Control, or via mouse navigation.

Creating an Object

You may drag and drop any component on to the scene. A component may be a primitive, a light, a predefined object from the Object Library, or an object that you created yourself using the Lathe, Extrude, Surface or Text tools.

Moving and Modifying an Object

You may move an object within your scene using the Edit Control, or via mouse editing. You can also resize objects using the Edit Control or the mouse.

An assortment of tools including Deform Tool, Operations and the Object Intersection, Union and Subtraction Operations can be used to modify objects.

Color, Texture and other attributes can be applied to objects using the Material Palette.

Tutorials

The 3D Canvas Basics tutorial is a short introduction to 3D Canvas. It gives an overview of many of the commonly used 3D Canvas functions.


What's New

What's New in 3D Canvas 4.2

Weld Operation (3D Canvas Pro only)

Welds object points together.
Edge Operation (3D Canvas Pro only)

Creates an edge between two selected points.
Trim Operation Enhanced (3D Canvas Pro only)

The Trim operation can now trim edges.
Scale Operation Enhanced (3D Canvas Pro only)

The Scale operation can now scale an object to specified dimensions.
Microsoft Train Simulator Export (3D Canvas Pro only)

Exporting to Microsoft Train Simulator format (.s) is now supported.
Scripting Enhancement (3D Canvas Pro only)

An object can be added to another object using the new AddObject method.
Enhanced Shift Tool

An object's point of rotation can now be moved without affecting the position of the object.
Glowing Lights (3D Canvas Pro - Raytracing only)

Lights rendered with POVRay/MegaPOV .7 can now have a glow effect.
Atmosphere Enhancements (3D Canvas Pro - Raytracing only)

When rendering with POVRay visible light effects can be enabled without enabling fog.


Tutorials

Additional tutorials are available at the Amabilis web site.


Tutorials -- 3D Canvas Basics

3D Canvas Basics

In this tutorial we will give an overview of the basic 3D Canvas features.

A new Scene is automatically created when 3D Canvas is started.

You are presented with an empty scene which includes a grid to assist you in judging proportion and aligning items in your scene.

3D Canvas uses a 3D coordinate system where X is left-right, Y is up-down and Z is near-away.

The grid lies along the XZ plane.

TutorialBasics1.gif (16284 bytes)

Click on the Component Panel tab Button-Construction-Component.gif (728 bytes) which is located along the left side of the 3D Canvas Window.

This Component Panel includes all of the scene components that can be dragged and dropped on to a scene.
TutorialBasics2.gif (25000 bytes)

Click on PrimitiveSphere.gif (1739 bytes) , the sphere primitive, and drag it and drop it on to the scene.
TutorialBasics3.gif (25985 bytes)

Click on the sphere created. A bounding box will be displayed which shows the boundaries of the sphere.

In addition, the Edit Control is displayed in the bottom right corner of the view . It can be used to move, rotate and scale (resize) objects.

The Status Bar located at the bottom of the 3D Canvas window displays the selected object's position in the scene, and the number of faces (polygons) and points that make up the object.

TutorialBasics4.gif (27510 bytes)

Click on the sphere and drag it. This moves the sphere along the XZ plane of the scene.

As you drag the object, its position and the amount it has been moved is shown on the Status Bar.

If you want to move the object up and down you can right-click on it and drag.
TutorialBasics5.gif (26172 bytes)

Click on the sphere to select it.

Now click and drag on the Edit Control's light colored XZ plane. This plane causes the selected object to be moved along the XZ plane as though you are clicking on the object itself and dragging it.

The Edit Control can be tricky to use at first, but with some practice it becomes quite natural.

TutorialBasics6.gif (27513 bytes)

Click Button-Toolbar-RenderSmooth.gif (176 bytes) on the Primary Toolbar to turn Smooth Rendering off. The Primary Toolbar is the toolbar that runs across the top of the 3D Canvas Window.

Smooth Rendering is used for final rendering of scenes. During the modeling phase however it tends to obscure the details of an object making modeling more difficult. With Smooth Rendering off we can see the faces that make up the sphere.

TutorialBasics7.gif (27371 bytes)

Click on the sphere to select it.

Now click and drag on the Edit Control's dark colored XZ plane. This will scale the object along the XZ plane.

As you scale the object, the object's size and the amount the object has been scaled is shown on the Status Bar.

If you want to the scale the object equally in all directions you can ctrl-click on the object and drag.

TutorialBasics8.gif (28797 bytes)

Now right-click on the Edit Control's green axis and drag to the right or left. This will rotate the object around the Y (up-down) axis.

As you rotate the object, the objects orientation and the amount the object has been rotated is shown on the Status Bar.
TutorialBasics9.gif (29338 bytes)

The Navigation Control is located on the lower left hand part of the scene view. Click on the Navigation Control's right most XZ plane and drag. This plane causes a zoom.

Each of the planes of the Navigation Control provides a different form of navigation. The leftmost XZ plane provides standard XZ navigation, whereas the middle XZ plane provides game-style navigation, and the rightmost XZ plane provides zooming.

TutorialBasics10.gif (29383 bytes)

Click on the Navigation Control's green axis and drag to the left or right. This will cause the scene to rotate around its center (the center of the grid).

Notice that you can now see an object that looks like a camera. This is the Animation Camera. It is used to record animations to videos and take snapshots of the scene.
TutorialBasics11.gif (25247 bytes)

Right-click anywhere on the scene and select Camera->Layout from the popup menu that appears.

You are now looking through the animation camera.

Right-click anywhere on the scene and select Look at Scene. This will move the camera so that it looks at the scene from the default 3D Canvas view. If you ever find yourself lost after navigating, Look at Scene is the solution.

TutorialBasics12.gif (26582 bytes)

The sphere that we created was not very smooth. We can smooth it by applying the Smooth operation.

Click on the Object Operation Panel Tab Button-Construction-Operation.gif (726 bytes) to display the Object Operation Panel.

Click on the sphere to select it, and then click on Operation-Smooth.gif (525 bytes) to apply the smooth operation.

Notice that when you clicked on Smooth it added a layer to the Object Layers panel. This is a complete list of all changes made to an object. For this object it shows a sphere primitive that was scaled and had a smooth operation applied. This list of Object Layers can be useful for tracking changes to an object, or even disabling changes if you decide at a later time that you made a change in error.

TutorialBasics13.gif (24327 bytes)

Click on the Material Panel tab Button-Construction-Material.gif (723 bytes) to display the Material Panel.

Click on a texture in the Material Panel's Texture Library.

Click Button-Toolbar-FillTool.gif (941 bytes) on the Edit Toolbar to select the Fill Tool. The Edit Toolbar is located on the right side of the 3D Canvas window.

Click on the object to fill it with the selected texture.

Click Button-Toolbar-Select.gif (187 bytes) on the Edit Toolbar to return to Object Selection Mode.

TutorialBasics15.gif (30610 bytes)

We are done the modeling phase, so in order to have the scene look its best, click Button-Toolbar-RenderSmooth.gif (176 bytes) on the Primary Toolbar to turn Smooth Rendering on.
TutorialBasics16.gif (30589 bytes)

Select View->Animation Toolbar from the View Menu to display the Animation Toolbar.

The Animation Toolbar is located at the bottom of the 3D Canvas window.
TutorialBasics17.gif (31377 bytes)

Click Button-Animation-Animate.gif (1005 bytes) on the Animation Toolbar to enter animation mode.

Click on the animation slider which is located on the right hand side of the animation toolbar and move it to the middle position. This is the mid-point of the animation, 5 seconds of a 10 second animation.

Move the object off into the distance. As the object is moved, 3D Canvas displays the object's animation path.

TutorialBasics18.gif (29803 bytes)

Click on the animation slider and move it to the end.

Move the object again. You will see that the animation path of the object is now a curve.
TutorialBasics19.gif (30300 bytes)

Move the animation slider back to the middle.

Click on Button-Animation-Ghost.gif (161 bytes) to create a ghost view of the animation. Ghosted images are locations in the animation where 3D Canvas has interpolated a position for the object. Non-ghosted images are locations in the animation where you selected the position. These points in time where you have selected a position are called key-frames.

Click Button-Play.gif (908 bytes) to play the animation.

Click Button-Record.gif (942 bytes) to record the animation to a Video (AVI) file.

TutorialBasics20.gif (35143 bytes)


Tutorials -- Creating a Model Step-by-Step - Overview

Creating a Model Step-by-Step - Overview

A simple cube primitive can be transformed into a sophisticated model using a technique called Block Modeling .

In this tutorial we will transform a cube into a whale by application of the Operation-Extrude.gif (924 bytes) Extrude Operation and Operation-Smooth.gif (525 bytes) Smooth Operation.


Tutorials -- Creating a Model Step-by-Step - Part 1

Creating a Model Step-by-Step - Part 1

A simple cube primitive can be transformed into a sophisticated model using a technique called Block Modeling .

In this tutorial we will transform a cube into a whale by application of the Operation-Extrude.gif (924 bytes) Extrude Operation and Operation-Smooth.gif (525 bytes) Smooth Operation.

As always, when modeling it helps to have a photo or physical model of the object you want to create to use as a reference. I based this model on a few photos of whales that I found on the Internet.

Click Button-Toolbar-RenderSmooth.gif (176 bytes) on the Primary Toolbar to turn Smooth Rendering off. Smooth Rendering is typically used for final rendering of scenes. During the modeling phase however it tends to obscure the details of an object making modeling more difficult.

Drag and Drop a cube from the Primitives Panel onto the scene. This will be the basis for our whale.
TutorialBlockModeling1.gif (14267 bytes)

Enter Face Selection Mode by clicking Button-Toolbar-SelectFace.gif (906 bytes) on the Edit Toolbar. Select a single face. Note that the appearance of the face selected may not be exactly as shown here. You may find that the select face is outlined rather than being painted blue.

Set the parameters for the Extrude Operation, on the Operations Panel, by right clicking on Operation-Extrude.gif (924 bytes). An Extrusion Amount of 1 and a Bevel Amount of 0 is required. This will extrude the face 1 unit and bevel it 0 units.

Click on Operation-Extrude.gif (924 bytes) to perform the Extrusion Operation.

TutorialBlockModeling2.gif (14710 bytes)

Select the face extruded.
TutorialBlockModeling3.gif (14758 bytes)

Scale it using the Edit Control as shown.

You will find that you have to rotate the scene as you work using the Navigation Control.

We are extruding the rear of the whale which gets progressively narrower as it approaches the tail.
TutorialBlockModeling4.gif (14785 bytes)

Right-click on the face and drag upwards to shift it up as shown.

This will give us a more attractive looking tail.
TutorialBlockModeling5.gif (12571 bytes)

Repeat the Extrude-Scale-Shift procedure of above to extend the body of the whale. We are now approaching the tail.
TutorialBlockModeling6.gif (12645 bytes)

Now we will start on the whale's head.

This is simply a Extrude-Scale operation applied to the front face of the whale's body. No Shift is necessary.
TutorialBlockModeling7.gif (12979 bytes)

Working our way towards the whale's nose. We Extrude-Scale-Shift again applied to the front face of the whale's body.

This time however prior to extruding, right click on Operation-Extrude.gif (924 bytes) and set the Extrusion Amount to .5.
TutorialBlockModeling8.gif (13425 bytes)

Repeat the Extrude-Scale-Shift again applied to the front face of the whale's body.
TutorialBlockModeling9.gif (13863 bytes)

Repeat the Extrude-Scale-Shift again applied to the back face of the whale's body. This is the point where the main part of the body meets the tail flukes.
TutorialBlockModeling10.gif (12254 bytes)

A final Extrude-Scale-Shift to the back face of the whale's body.

We have now completed the main part of the whale's body.
TutorialBlockModeling11.gif (11765 bytes)

The whale's body is a little bit too thin. It needs to be a wider than it is.

Enter Object Selection Mode by clicking Button-Toolbar-Select.gif (187 bytes) on the Edit Toolbar.

Select the whale and scale the object to 120% along the Z axis using the Edit Control.
TutorialBlockModeling12.gif (16020 bytes)

I frequently do test Smoothes of an object while block modeling to ensure that I am getting the desired effect. With experience, you will be able to predict what the end result will be, but is always helpful to do test Smoothes.

Apply the Operation-Smooth.gif (525 bytes) Smooth Operation from the Operations Panel two times.

Apply the Operation-Crease.gif (514 bytes) Crease Operation from the Operations Panel and adjust the slider to the far left so that there is no creasing.

TutorialBlockModeling13.gif (17715 bytes)

Click Button-Toolbar-RenderSmooth.gif (176 bytes) to turn Smooth Rendering on.

We have a pretty respectable whale's body.

Undo the Crease and Smooth operations prior to moving on to Part 2 of this tutorial.

Click here to download the model completed in this part of this tutorial.
TutorialBlockModeling14.gif (16020 bytes)


Tutorials -- Creating a Model Step-by-Step - Part 2

Creating a Model Step-by-Step - Part 2

In Part 2 of this tutorial we continue with our transformation of a cube into a whale by adding the tail flukes.

As always, when modeling it helps to have a photo or physical model of the object you want to create to use as a reference. I based this model on a few photos of whales that I found on the Internet.

Click Button-Toolbar-RenderSmooth.gif (176 bytes) on the Primary Toolbar to turn Smooth Rendering off. Smooth Rendering is typically used for final rendering of scenes. During the modeling phase however it tends to obscure the details of an object making modeling more difficult.

Open the model you created in Part 1 of this Tutorial or click here to download the sample model.

TutorialBlockModeling2-1.gif (14622 bytes)

In part 1 of this tutorial we viewed our model exclusively in perspective mode. In this part it will be helpful to have not only a perspective view, but also an orthographic Top view.

Select View Selection from the View menu. Choose the icon in the upper right hand corner that shows a single horizontal line.

Right-Click on the lower view, and select View->Orthographic->Top from the popup menu.

TutorialBlockModeling2-2.gif (15077 bytes)

Enter Face Selection Mode by clicking on Button-Toolbar-SelectFace.gif (906 bytes) on the Edit Toolbar. Select the face indicated.

Set the parameters for the Extrude Operation, on the Operations Panel, by right clicking on Operation-Extrude.gif (924 bytes). An Extrusion Amount of .2 and a Bevel Amount of 0 is required. This will extrude the face .2 units and bevel it 0 units.

Click on Operation-Extrude.gif (924 bytes) to perform the Extrusion Operation.

Repeat for the face on the opposite side of the model.

TutorialBlockModeling2-3.gif (15537 bytes)

We now have the beginnings of the tail flukes

Select each of the extruded faces.
TutorialBlockModeling2-4.gif (15167 bytes)

Using the top view, drag the faces backwards as shown using the Edit Control.

Multiple face can be shifted at the same time. This helps with this task in particular because it ensures that they are shifted an equal amount.
TutorialBlockModeling2-5.gif (15845 bytes)

Select one of the faces extruded and extrude it two more times.

Repeat for the other side.
TutorialBlockModeling2-6.gif (15829 bytes)

Select and scale each the extrude faces as shown.
TutorialBlockModeling2-7.gif (15775 bytes)

Extrude each of the faces one more time.
TutorialBlockModeling2-8.gif (16026 bytes)

Scale the faces as shown.
TutorialBlockModeling2-9.gif (15974 bytes)

Select the two extruded faces and move them forwards using the orthographic view.
TutorialBlockModeling2-10.gif (15986 bytes)

Do a test Smooth.

Apply the Operation-Smooth.gif (525 bytes) Smooth Operation two times.

Apply the Operation-Crease.gif (514 bytes) Crease Operation and adjust the slider to the far left so that there is no creasing.

TutorialBlockModeling2-11.gif (20382 bytes)

Click Button-Toolbar-RenderSmooth.gif (176 bytes) to turn Smooth Rendering on.

It is starting to look very much like a whale.

Undo the Crease and Smooth operations prior to moving on to Part 3 of this tutorial.

Click here to download the model completed in this part of this tutorial.
TutorialBlockModeling2-12.gif (17974 bytes)


Tutorials -- Creating a Model Step-by-Step - Part 3

Creating a Model Step-by-Step - Part 3

In Part 3 of this tutorial we continue with our transformation of a cube into a whale by adding the Dorsal fin and flippers.

As always, when modeling it helps to have a photo or physical model of the object you want to create to use as a reference. I based this model on a few photos of whales that I found on the Internet.

Click Button-Toolbar-RenderSmooth.gif (176 bytes) on the Primary Toolbar to turn Smooth Rendering off. Smooth Rendering is typically used for final rendering of scenes. During the modeling phase however it tends to obscure the details of an object making modeling more difficult.

Open the model you created in Part 2 of this Tutorial or click here to download the sample model.

TutorialBlockModeling3-1.gif (16975 bytes)

In this part of the tutorial we will need a perspective view and an orthographic view. You will need to switch back and forth between orthographic front view and top view as needed.

Select View Selection from the View menu. Choose the icon in the upper right hand corner that shows a single horizontal line.

Right-Click on the lower view, and select View->Orthographic->Front from the popup menu. Note that Front means front of the scene rather than front view of the model. In this case, a front view displays the side view of the model because of the way the model is oriented.

TutorialBlockModeling3-2.gif (16806 bytes)

Enter Face Selection Mode by clicking on Button-Toolbar-SelectFace.gif (906 bytes) on the Edit Toolbar. Select a the face shown.

Set the parameters for the Extrude Operation, on the Operations Panel, by right clicking on Operation-Extrude.gif (924 bytes). An Extrusion Amount of 0 and a Bevel Amount of -.3 is required. This will extrude the face 0 units and bevel it -.3 units. This will result in the face being subdivided.

Click on Operation-Extrude.gif (924 bytes) to perform the Extrusion Operation.

Repeat for the face on the opposite side of the object.

These faces will be the origins of the flippers.

TutorialBlockModeling3-3.gif (17216 bytes)

Select the face indicated and extrude it.

Again, this will result in the face being subdivided as in the step above.

This will be the origin of the Dorsal fin.
TutorialBlockModeling3-4.gif (17296 bytes)

Select the face indicated and the face on the opposite side.
TutorialBlockModeling3-5.gif (17346 bytes)

Using the orthographic view, drag the face down using the Edit control, or by clicking and dragging on the face.
TutorialBlockModeling3-6.gif (17129 bytes)

Click on the face indicated. This will expose the point handles. Reshape the face as shown by dragging the point handles.

Repeat for the other side.
TutorialBlockModeling3-7.gif (14447 bytes)

Right-Click on the lower view, and select View->Orthographic->Top from the popup menu.

Select the face that will be the origin of the dorsal fin.
TutorialBlockModeling3-8.gif (16652 bytes)

Reshape the selected face as shown using the point handles.
TutorialBlockModeling3-9.gif (16609 bytes)

The flippers and dorsal fin must produce a crease where they meet the body. If we were to extrude the origin faces, the result would be unsatisfactory. To correct this, we further subdivide these origins.

Select a flipper origin. Set the Extrusion parameters by right clicking on Operation-Extrude.gif (924 bytes). Set the Extrusion Amount to 0 and the Bevel Amount to -.01.

Click on Operation-Extrude.gif (924 bytes) to do the subdivision.

Repeat for the other origin faces.

I have shown the result in wireframe mode so that you can see more clearly the resulting subdivision.

To enter wireframe mode, Click Button-Wireframe.gif (151 bytes) on the Primary Toolbar.

TutorialBlockModeling3-10.gif (14198 bytes)

Select a flipper origin. Set the Extrusion Amount to .5 and the Bevel Amount to 0.

Extrude the face.

Repeat for the other flipper's origin.
TutorialBlockModeling3-11.gif (17454 bytes)

Select each of the extruded faces.

Using the orthographic view, drag the faces backwards as shown using the Edit Control.
TutorialBlockModeling3-12.gif (17097 bytes)

Now drag the faces downward. You will need to switch to an orthographic front view to do this.

It is usually easier to judge position with orthographic views, but you could as an alternative right-click on the selected faces and drag downwards.
TutorialBlockModeling3-13.gif (16442 bytes)

Scale the faces as shown.
TutorialBlockModeling3-14.gif (18015 bytes)

Select one of the extruded faces. Set the Extrusion Amount to .3 and the Bevel Amount to 0.

Extrude the face.

Repeat for the face on the opposite side.

Scale the extruded faces as shown.
TutorialBlockModeling3-15.gif (17041 bytes)

Select one of the extruded faces. Set the Extrusion Amount to .1 and the Bevel Amount to 0.

Click on Operation-Extrude.gif (924 bytes) to do the extrusion.

Repeat for the face on the opposite side.

Select both extruded faces and shift them backwards as shown using the orthographic top view.

TutorialBlockModeling3-16.gif (17118 bytes)

Again, extrude the outermost face on each of the flippers and shift them as shown.
TutorialBlockModeling3-17.gif (16706 bytes)

Select the origin of the Dorsal fin.
TutorialBlockModeling3-18.gif (17126 bytes)

Extrude the face with an Extrusion Amount to .02 and the Bevel Amount to 0.

Shift it backwards as shown.
TutorialBlockModeling3-19.gif (16201 bytes)

Extrude one more time and shift the result backwards as shown.
TutorialBlockModeling3-20.gif (16462 bytes)

Apply the Operation-Smooth.gif (525 bytes) Smooth Operation two times.

Apply the Operation-Crease.gif (514 bytes) Crease Operation and adjust the slider to the far left so that there is no creasing.
TutorialBlockModeling3-21.gif (22060 bytes)

Click Button-Toolbar-RenderSmooth.gif (176 bytes) to turn Smooth Rendering on.

There we have it. A completed whale. The only problem is that it is pink. We'll resolve that in Part 4 of this tutorial.

Click here to download the model completed in this part of this tutorial.

Notice that the final result produced bulges at the extruded flippers and dorsal fin. This is one of the byproducts of face subdivision. This is acceptable for this whale since this is a model of a humpback whale (with considerable artistic license taken) which has bulges in those places. If we didn't want bulges, we would have done a single smooth operation prior to adding the flippers and dorsal fin. For simplicity in this tutorial we have avoided this since it adds a number of modeling steps.

TutorialBlockModeling3-22.gif (19012 bytes)


Tutorials -- Creating a Model Step-by-Step - Part 4

Creating a Model Step-by-Step - Part 4

In Part 4 of this tutorial we paint the whale we created in the first three parts of this tutorial.

As always, when modeling it helps to have a photo or physical model of the object you want to create to use as a reference. I based this model on a few photos of whales that I found on the Internet.

Open the model you created in Part 3 of this Tutorial or click here to download the sample model.

We are going to use a mixture of textures and paint to color our whale.

Click here to download the final model which includes the three textures that we will use to paint the whale.
TutorialBlockModeling4-1.gif (15791 bytes)

Click Button-DeleteSmall.gif (918 bytes) on the Material Palette to erase the previous material.

Using the Material Palette, select WhaleTexture.bmp by clicking on the upper pane next to the material preview. Click Button-WrapSphere.gif (917 bytes) to select a spherical wrap.

Click Button-Toolbar-FillTool.gif (941 bytes) on the Edit Toolbar to select the Fill Tool.

Click on the whale to paint it with this texture.
TutorialBlockModeling4-2.gif (17881 bytes)

Now select the WhaleEye.bmp texture and click Button-WrapFlat.gif (920 bytes) to select a flat wrap.

Click Button-Toolbar-Paint.gif (941 bytes) on the Edit Toolbar to select the Paint Tool.

Click on the face where you would like the Whale's eye to be.

Repeat for the face on the opposite side of the object.

Don't worry about any seams that may appear they will be corrected in the final step of this tutorial.
TutorialBlockModeling4-3.gif (18202 bytes)

Now select WhaleBlowHole.bmp and choose a flat wrap.

Click Button-Toolbar-Paint.gif (941 bytes) on the Edit Toolbar to select the Paint Tool.

Click and drag to paint four faces on top of the whale's head centered just forward of the eyes.
TutorialBlockModeling4-4.gif (18121 bytes)

Click Button-Toolbar-RenderSmooth.gif (176 bytes) to turn Smooth Rendering off. When Smooth Rendering is off we can better see the faces we intend to paint.

We are going to paint the underbelly of the whale light grey. The Smooth operation has produced a pattern of faces that lends itself to painting. We could have applied a texture to select faces, but that would have been more involved.

You will likely want an Orthographic top view in addition to a perspective view for this step.

Turn the whale over using the Edit control.

Click Button-DeleteSmall.gif (918 bytes) on the Material Palette to erase the previous material.

Select a light grey color by clicking on the panel directly below the texture panel on the Material Palette.

Click Button-Toolbar-Paint.gif (941 bytes) on the Edit Toolbar to select the Paint Tool.

Click and drag to paint the underbelly of the whale.
TutorialBlockModeling4-5.gif (21905 bytes)

You need not paint the underbelly in one stroke.

Be prepared to undo. Painting individual faces can be tricky at times.
TutorialBlockModeling4-6.gif (22660 bytes)

Turn the whale right-side-up using the Edit Control.

Apply the Operation-Crease.gif (514 bytes) Crease Operation and adjust the slider to the far left so that there is no creasing. This will correct any seams that appeared when the eyes and blow hole were painted on.

Click Button-Toolbar-RenderSmooth.gif (176 bytes) to turn Smooth Rendering on.

We are done! Not bad for a transformed cube.

Click here to download the model completed in this part of this tutorial.

Note that we applied a texture to the whale as the first step of painting the whale. You may ask "Why did you use a texture when you could have just used a paint color?". The way that textures and paint colors are rendered by 3D Hardware is slightly different and do not result in exactly the same color even if the bitmap used is identical to the color used. Since we were going to paint on eye and blowhole textures, they would not have exactly matched their neighboring colors if we had not first painted the whale using a texture.

TutorialBlockModeling4-7.gif (19526 bytes)


Tutorials -- Animating the Burst Operation

Animating the Burst Operation

Many 3D Canvas Operations can have their effect animated. Any operation that supports Update Button-Operation-Update.gif (515 bytes) on the Object Layers Panel or the Operation Adjust Tool Button-Toolbar-OperationAdjustTool.gif (912 bytes) can be animated.

What follows is an explanation of how to animate a Operation-Burst.gif (522 bytes) Burst Operation.

Drag and Drop a sphere on to the scene.
TutorialAnimatedBurst1.gif (19496 bytes)

Show the Animation Toolbar using the View Menu.

Switch to Animation Mode by selecting Button-Animation-Animate.gif (1005 bytes).

Select the sphere.

The Burst Operation is located on the Object Operations Panel.

Apply a Burst Operation to the sphere by clicking Operation-Burst.gif (522 bytes).

TutorialAnimatedBurst2.gif (21414 bytes)

Click OK. At time 0 in the animation we don't want to have any Burst effect.
TutorialAnimatedBurst3.gif (8233 bytes)

Move to time 1 with the animation slider.

Select the sphere if it is not already selected. Click Button-Operation-Update.gif (515 bytes) Update on the Object Layers Panel. This will open the Burst Operation again so that you can set an effect for time 1.

Move the Burst slider one unit to the right.

Click OK.

Repeat this step for time 10 of the animation, setting a maximum burst effect.
TutorialAnimatedBurst4.gif (11459 bytes)

We now have an sphere that Bursts during animation.

Press play Button-Play.gif (908 bytes) to preview the animation.

This is a very simple Burst effect. For a more explosive effect combine the Burst Operation with the Swirl Operation.

You may want to speed up the animation by changing the number of animation Keys per Second. You can do this by clicking Button-Animation-Properties.gif (942 bytes) (Animation Properties) on the animation toolbar.
TutorialAnimatedBurst5.gif (24459 bytes)


Tutorials -- Animating the Material Operation

Animating the Material Operation

Many 3D Canvas Operations can have their effect animated. Any operation that supports Update Button-Operation-Update.gif (515 bytes) on the Object Layers Panel or the Operation Adjust Tool Button-Toolbar-OperationAdjustTool.gif (912 bytes) can be animated.

What follows is an explanation of how to animate a Operation-Fill.gif (535 bytes) Material Fill Operation.

Drag and Drop an object on to the scene.

In this example I have chosen a sofa which is available for download on the Amabilis Media Downloads page.
TutorialPsychedelicSofa 1.jpg (23822 bytes)

Show the Animation Toolbar using the View Menu.

Switch to Animation Mode by selecting Button-Animation-Animate.gif (1005 bytes).

Select a texture from the Texture Library.

Select the object.

Apply a Material Fill Operation to the object by clicking Operation-Fill.gif (535 bytes) on the Object Operations Panel. In this example we used a Flat Texture Wrap.

TutorialPsychedelicSofa 2.jpg (26875 bytes)

Now move to time 10 with the animation slider.

Select the Button-Operation-Update.gif (515 bytes) Operation Adjust tool from the Edit Toolbar.

Select the object.

Click and drag on an axis of the Edit Control.

We now have an animated texture that rotates around the object.

Press play Button-Play.gif (908 bytes) to preview the animation or download the sample animation (460k).
TutorialPsychedelicSofa 3.jpg (26563 bytes)


Tutorials -- Using the Scene Hierarchy

Using the Scene Hierarchy

A 3D Canvas scene is made up of a hierarchy of objects much like the hierarchy of folders and files on your computer. Understanding the 3D Canvas hierarchy is important to using 3D Canvas effectively.

Click the Hierarchy Tab Button-Construction-Hierarchy.gif (721 bytes) to show the Hierarchy Panel in its expanded state.

When a new scene is created it isn't entirely empty. There are a number of components that are created by default with a new scene including a Point Light, the Ambient Light, two Directional Lights and the Animation Camera.

TutorialHierarchy1.gif (1034 bytes)

A 3D Canvas scene is made up of a hierarchy of frames. Frames in 3D Canvas are much like folders are in Windows. Frames are used to organize a scene, as folders are used to organize the files on your computer. A frame can contain scene components and other frames just as a Windows folder can contain files and other folders.

Frames are represented in the hierarchy by icon-Folder.gif (891 bytes).

Click on the plus sign next to the Point Light frame to expand it. It contains a Point Light. Lights are represented in the hierarchy by Icon-Light.gif (844 bytes).

TutorialHierarchy2.gif (1151 bytes)

Drag and drop a cube on to your scene.

Now drag and drop a sphere on top of the cube.
TutorialHierarchy3.gif (15501 bytes)

When an object is dropped on to the scene a new frame is created for that object. The new frame will be created as a child of what it was dropped on.

We dropped the cube on the scene so it became a child of the scene. We dropped the sphere on the cube so it became a child of the cube.

Expand the new items added to see this parent-child hierarchy.

Objects are represented in the hierarchy by Icon-Mesh.gif (870 bytes).

TutorialHierarchy4.gif (1726 bytes)

The term "Frame" refers to "physical frame of reference". When you select and drag a scene component, you are not dragging the component, but its frame. This results in any frames or components contained within the frame being moved also. If you rotate a component, you are not rotating the object itself, but its frame. This behavior of frames is very useful since it permits the creation of complex objects made up of many parts that behave as a single object.

Click on the cube in your scene and drag it. The sphere moves also since it is a child of the cube.

TutorialHierarchy5.gif (15803 bytes)

Click on the sphere and drag it. The cube doesn't move. This allows you to set a relative position and orientation of the child object from its parent.
TutorialHierarchy6.gif (16393 bytes)

Drop another cube onto the scene. Place it next to the first cube.
TutorialHierarchy7.gif (16351 bytes)

Frames and components can be moved within the Scene Hierarchy much like you would move folders and files with Windows Explorer.

In the hierarchy drag the new cube on to the frame that contains the first cube.

These cubes are now siblings. If you move one cube in your scene you will move the other. The behave as a single object.

Note that even though they behave as a single object they are not a single object. You could still apply an operation to one cube but not the other. If you want them to be a single object you can merge them using the Button-Toolbar-Boolean-Merge.gif (924 bytes) Merge operation.

TutorialHierarchy8.gif (1952 bytes)

Drop a cylinder on to your scene.
TutorialHierarchy9.gif (17111 bytes)

In the hierarchy move the frame that contains the sphere to the frame that contains the cylinder.

You have re-parented the sphere. It is now a child of the cylinder. If you move the cylinder in the scene, the sphere will move.
TutorialHierarchy10.gif (2209 bytes)

Click Button-Wireframe.gif (151 bytes) on the Primary Toolbar to enter wireframe mode. Click on the cylinder.

Frames are not normally visible within your scene. Only when you select an object does its frame, represented as a small yellow box, become visible. In addition to the frame being displayed, an axis is also displayed. This axis shows the orientation of the frame.

If you need to adjust the position of an object relative to its frame rather than the frame itself, you can do so using the Shift tool. This tool is often used to produce objects that rotate about a point other than the object's center.
TutorialHierarchy11.gif (17996 bytes)

To rename a scene component, click on the name of the component.

TutorialHierarchy12.gif (2080 bytes)

Clicking on an Object, Light, or Camera in the scene hierarchy results in that item being selected within the scene. Conversely, clicking on an item within the scene will select that item in the Hierarchy.

TutorialHierarchy13.gif (17169 bytes)

3D Canvas' drag and drop features apply to the Scene Hierarchy as well as the Scene. If you want, you can drag and drop a primitive, light, or other object directly on to the Scene Hierarchy Panel.

TutorialHierarchy14.gif (8230 bytes)


Tutorials -- Skeletal Animation

Skeletal Animation

Skeletal Animation is a technique used to pose character models. A skeleton is embedded in, and attached to, a character model. Once the skeleton is attached, the character model becomes the skin. Posing the skeleton causes the skin to be deformed to match the position of the underlying bones.

Skeletal Animation has a major advantage over jointed models in that a one piece mesh is used, so there are no seams.

What follows is an explanation of how to create a skeleton for a character.

For this tutorial we are going to use a cartoon-style model of an Ant as a skin.

This model has been provided by It's Ming! It was modeled with Lightwave.

It's Ming! have a wonderful assortment of cartoon-style models available at their website. No distribution of this model is permitted without the permission of It's Ming!

Click here to download the Ant Model in 3D Canvas format.

TutorialSkeletalAnimation1.gif (16745 bytes)

Drag and drop an appropriate skeleton onto the scene from the Skeleton Object Library. You will want a biped skeleton with standard bones. In the default Skeleton Object Library, this is the first of the two skeletons provided.

Take care to drop it on the scene, not on the skin.
TutorialSkeletalAnimation2.gif (18990 bytes)

The next step is to adjust the size and position of the skeleton to fit the skin.

The best way to do this is to have a front view and a side view to work with.

Select View Selection from the View menu. Choose the icon that indicates two vertical-oriented views.

Right-Click on the left view, and select View->Orthographic->Front from the popup menu

Right-Click on the right view, and select View->Orthographic->Side from the popup menu

Using the front view, reposition the skeleton so that it is centered on the skin with the pelvis in its final position. You will want to move it using its root bone so that no Inverse Kinematics occur. For bipeds, the lower back bone is the root bone. Make sure that the skeleton is in front of the skin. At this stage working with a skeleton that is embedded in the skin is awkward.

TutorialSkeletalAnimation3.gif (18500 bytes)

The next step is to resize and reorient the bones to fit the skin. You will want to have the bones be oriented in the same way as the limbs of the skin, and the joints in the skeleton match the location of the joints in the skin.

The best approach is to work on one bone at a time starting with the hips and working your way outwards towards the end of the limbs. First rotate the bone so its orientation is correct, and then scale the bone so that its length is correct.

You will find that as you rotate and scale bones others will appear to end up in the wrong position. This is okay since as you continue along the chain these will be corrected. You may find yourself tempted to correct the size and orientation of bones out of order. Try to avoid this since it just makes the process more complicated.

To reorient a bone, click on the bone and rotate it using the Edit Control. Note that in orthographic modes the Edit Control only displays two of the three rotation axes. The third axis is pointing towards you. You can still use this axis by clicking the point where the two other axes meet and dragging. You will need to do this to reorient the bones appropriately.

To resize a bone, click on the bone and scale it using the Edit Control. While scaling the size of the bone is displayed on the status bar at the bottom of the window. You can use this to ensure that equivalent bones on the right and left side of the skeleton are of equal size.

Sometimes a properly sized and oriented bone will protrude slightly from the skin. This usually happens at the thickest point of the bone. There is no need to be too concerned about this since the bone will be hidden whenever you play an animation. Just make sure that the bone is positioned and oriented correctly and of the right length and all will work out in the end.

TutorialSkeletalAnimation4.gif (17180 bytes)

Once you have resized and reoriented the bones appropriately in the front view, reposition the skeleton so that it is embedded in the skin. As before, you will want to move the skeleton using the root bone to avoid any inverse kinematics.

Before you do this, switch to wireframe mode. Click Button-Wireframe.gif (151 bytes) on the Primary Toolbar to enter wireframe mode. Once bones are embedded in an object it is much easier to work with them in wireframe mode.

Now, re-orient the bones for the side view. Re-orienting the bones may also require that you resize bones slightly for their new orientation. Again, start with the hips and work your way outwards towards the end of the limbs.

Also, delete the topmost bone from the Skeleton since this bone is intended exclusively for jointed models.

TutorialSkeletalAnimation5.gif (17493 bytes)

Using the Hierarchy, move the skin onto the root frame of the skeleton.

Click the hierarchy tab Button-Construction-Hierarchy.gif (721 bytes) on the left side of the window in order to show the full view of the scene hierarchy. On the hierarchy panel click on the ant object Icon-Mesh.gif (153 bytes) and drag it and drop it on to the frame Icon-Frame.gif (887 bytes) that contains the "Back - Lower" bone. You may find that you will need to close a few items to make dragging and dropping easier.

This is a critical point. The ant object Icon-Mesh.gif (153 bytes) must be in the root frame Icon-Frame.gif (887 bytes) of the skeleton so that skeleton moves when you move the ant. Also, it is important that this be done before you set the range of effect for each bone.

In this example the eyes are separate objects, so they must be moved to the frame that contains the skull so they will move when the head moves.

TutorialSkeletalAnimation6.gif (19232 bytes)

With this particular model, we want to be able to pose the antennas.

Drag and Drop a standard bone from the Bones Panel onto the topmost bone. Drag a drop a bone onto the bone just added.

Both bones will automatically have Inverse Kinematics enabled. This means that if you try to move a bone, the entire skeleton will move using Inverse Kinematics. Right Click on the first bone added and disable Inverse Kinematics. Move the bone so that it is at the base of the antenna. Right Click on the bone again and re-enable Inverse Kinematics.

You will notice that we now have a gap between bones. With 3D Canvas this is just fine. There is no need for bones to connect at a joint. Bones are a type of scene component and can be positioned and oriented in the same way as any other scene component.

TutorialSkeletalAnimation7.gif (19369 bytes)

Reorient and resize the two bones added the last step so that they are appropriate for the antenna.

Right-click on the topmost bone and choose Properties from the popup menu. Change the Inverse Kinematics mode from Enabled to Fixed. This will ensure that when either bone is dragged, only the base of the Antenna will be bent.
TutorialSkeletalAnimation8.gif (18791 bytes)

Repeat the last two steps for the other antenna.

TutorialSkeletalAnimation9.gif (17296 bytes)

Up until now, the Ant in the scene has been a 3D Canvas Object. We are now about to transform it into a skin.

Double click on the middle back bone or single-click it and click Button-Toolbar-AttachSkin.gif (151 bytes) to attach the Ant object to the skeleton as a skin.

This will open the Skeletal Bone Range window which allows you to adjust the portion of the object that is affected by this bone.

All points included within the translucent cylinder will be affected by this bone. The range of effect of the bone can be adjusted using the sliders.

The Origin Range slider is used to increase or decrease the circumference of the bone's cylindrical range at the bone's origin.

The End Range slider is used to increase or decrease the circumference of the bone's cylindrical range at the bone's end.

The Extent slider is used to increase or decrease the length of the bone's effect.

TutorialSkeletalAnimation10.gif (25354 bytes)

Repeat the above step for every bone that you want to have affect points.

Keep in mind that bones should overlap so that they share points. This will produce nicer results during posing.

The shoulders, hips and lower back do not need to have an effect range.

The shoulders do not need to have an effect since they will be wholly enclosed in the upper back, middle back and upper arms.

The hips and lower back do not need to have a range of effect since all points not specifically assigned to other bones are automatically assigned to be affected by the root bone (the lower back).

TutorialSkeletalAnimation11.gif (19439 bytes)

Here we have all of the bones with range of effects.

Note that all bones and their range of effect are displayed for easy posing. When you record an animation or a snapshot, the bones are made invisible.
TutorialSkeletalAnimation12.gif (19439 bytes)

We are not quite done however. Due to the way this model is designed, with bent knees, we have a small gap at the knee.
TutorialSkeletalAnimation13.gif (19737 bytes)

As it is, when a skeleton is posed, these unassigned points will not move when the leg moves.
TutorialSkeletalAnimation14.gif (19786 bytes)

The solution is to add a Spherical Bone from the Bones Panel. Drag and Drop it on to the thigh bone. Then adjust its position and size so that it fill the gap. Note that spherical bones are only available with 3D Canvas Pro. If you do not have 3D Canvas Pro you can substitute a short standard bone.

Double click on the new bone or single-click it and click Button-Toolbar-AttachSkin.gif (151 bytes) to set its range of effect. Unlike Standard bones, Spherical Bones' range of effect is the same as the size of the bone. So any point enclosed in the Spherical bone will be affected by the bone.

We could also have solved this problem by changing the Extent of the thigh and shin bones. But, that would likely have resulted in too much overlap of bones which usually produces unattractive results during posing.

Spherical Bones can be useful to add to places where unattractive deformations are occurring to add just a little bit of weighting to how much the skin is deformed by each bone.

TutorialSkeletalAnimation15.gif (19063 bytes)

We now have a fully posable skinned skeleton.

Click here to download a model of the Ant with a skeleton attached.
TutorialSkeletalAnimation16.gif (19249 bytes)

To pose the ant, simply click on a bone and drag.

In order to show the Ant in a posed state, I have hidden the bones by clicking Button-Toolbar-ShowBones.gif (149 bytes) from the Primary Toolbar.

To move the whole object without causing any Inverse Kinematics positioning, simply click and drag the object by the root bone, any exposed skin.

If you want to rotate a bone beyond the range of its Inverse Kinematics joint, you can simply rotate it using the Edit Control.

TutorialSkeletalAnimation17.gif (15905 bytes)

To re-pose the object to its neutral relaxed state, select the skin, and click Button-Toolbar-Relax.gif (158 bytes) on the Edit Toolbar.
TutorialSkeletalAnimation18.gif (17728 bytes)


Tutorials -- Transforming Primitives

Transforming Primitives

Complicated 3D Objects are usually created from collections of simple primitives such as Cubes, Cylinders etc.

Unmodified primitives can be used to create many common objects. But to create most objects, primitives are transformed into other shapes using Operations.

What follows is an explanation of how to transform a cube into another object by application of the Operation-Extrude.gif (924 bytes) Extrude Operation and Operation-Smooth.gif (525 bytes) Smooth Operation.

Click Button-Toolbar-RenderSmooth.gif (176 bytes) to turn Smooth Rendering off. Smooth Rendering is typically used for final rendering of scenes. During the modeling phase however it tends to obscure the details of an object making modeling more difficult.

Drag and Drop a Cube onto the scene.
TutorialDetail1.gif (19027 bytes)

Enter Face Selection Mode by clicking on Button-Toolbar-SelectFace.gif (906 bytes). Select a single face. Note that the appearance of the face selected may not be exactly as shown here. You may find that the select face is outlined rather than being painted blue.

Set the parameters for the Extrude Operation by right clicking on Operation-Extrude.gif (924 bytes). An Extrusion Amount of 0 and a Bevel Amount of -.2 is required. This will extrude the face 0 units and bevel it -.2 units. This will result in a subdivision of the selected face into five faces.

Click on Operation-Extrude.gif (924 bytes) to perform the Extrusion Operation.

TutorialDetail2.gif (18622 bytes)

Select the center face created.

Extrude this face with an Extrusion Amount of .3 and a Bevel Amount of 0. This will extrude the selected face .3 units and apply no bevel.
TutorialDetail3.gif (18871 bytes)

The result of the extrusion.
TutorialDetail4.gif (19683 bytes)

Select the extruded face.

Extrude it with an Extrusion Amount of 0 and a Bevel Amount of -.1. This will result in a subdivision of the selected face into five faces.
TutorialDetail5.gif (19039 bytes)

Select the center face created.

Extrude the face with an Extrusion Amount of -.3 and a Bevel Amount of 0. This will intrude the face .3 units.
TutorialDetail6.gif (19145 bytes)

The result of the intrusion.
TutorialDetail7.gif (20125 bytes)

Repeat all steps on the other original faces of the cube.
TutorialDetail8.gif (21140 bytes)

Apply the Operation-Smooth.gif (525 bytes) Smooth Operation two times.

Apply the Operation-Crease.gif (514 bytes) Crease Operation and adjust the slider to show the amount of creasing you want.

TutorialDetail9.gif (23027 bytes)

Click Button-Toolbar-RenderSmooth.gif (176 bytes) to turn Smooth Rendering on.

So what do we have? Nothing really. But, these techniques are used extensively to add details to objects.
TutorialDetail10.gif (24006 bytes)


Tutorials -- Raytracing with POV-Ray

Raytracing with POV-Ray

3D Canvas scenes are normally rendered using the Direct3D rendering engine. Direct3D with hardware acceleration is very fast. This allows you to design a scene in real time seeing the changes as you make them. This speed comes with some sacrifices though; Shadows are simulated and there are no reflections.

The image that follows shows a teapot rendered with the Direct3D rendering engine. Notice that the shadow for the teapot is only visible on the surface on which the teapot is sitting. There are no shadows on the walls. Also, the teapot appears to be shiny yet it does not reflect any of its surroundings.

TutorialRaytracingDirect3D.jpg (19502 bytes)

The next image shows the same scene rendered with the POV-Ray raytracing engine. POV-Ray is a raytracing rendering engine that is available for free at www.povray.org. Notice that the shadow of the teapot is visible on all surfaces, the teapot is reflected on the surface on which it sits and the teapot itself reflects its surroundings.

TutorialRaytracingPOV-Ray.jpg (17222 bytes)

Unfortunately, these shadows and reflections come at a cost. While it took only a fraction of a second to render the image with Direct3D, it took more than a minute to render the image with POV-Ray.

3D Canvas support file exports to POV-Ray format. This allows you to export your scene to POV-Ray format and use the POV-Ray program to render the image.

3D Canvas Pro supports seamless rendering with the POV-Ray rendering engine. The standard Snapshot and Animation Recording Options provide a Raytrace using POV-Ray option that if selected will result in 3D Canvas Pro automatically using the POV-Ray rendering engine to render your Snapshot or Animation. Note that this option is not available with the standard version of 3D Canvas.

Lighting

The lighting scheme for POV-Ray is slightly different than that of Direct3D so you may find that the final image produced by POV-Ray is somewhat darker, or brighter than the Direct3D produced image. The only way to correct lighting problems with raytracing is through trial and error. Rendering test images in low resolution and without anti-aliasing speeds up the POV-Ray rendering tremendously.

Images tend to look better in POV-Ray if the amount of ambient light is low. This is also true of Direct3D rendered scenes, but it seems to make more of a difference in POV-Ray rendered scenes.

Limitations

3D Canvas is primarily a Direct3D Modeling and Animation program. Some of the features of Direct3D have no equivalent in POV-Ray, and many POV-Ray features have no equivalent in Direct3D.

The largest limitation of POV-Ray rendering is that 3D Canvas texture wrapping information is often lost in translation. This can be largely overcome by using the MegaPOV version of POV-Ray which is available at ftp.povray.org.

3D Canvas materials do not have exact equivalents in POV-Ray so 3D Canvas has to translate the material to POV-Ray format. One result of this is that 3D Canvas' Ambient material property is entirely lost in translation to POV-Ray.


Tutorials -- Improving Lighting

Improving Lighting

The right lighting can change a bland scene into a dynamic scene.

The default lighting for a scene is intended for modeling. To make a scene look its best, time must be spent designing lighting.

The best way to improve the look of a scene is to add Point Lights. They produce the highest quality lighting available with 3D Canvas.

Here is the Teapot from the default Object Library.

We have painted it and placed it in front of a scene backdrop.

There is nothing wrong with the lighting of this scene, but it does look rather dull.
TutorialLightingBefore.jpg (3508 bytes)

Now we have added four Point Lights to the scene.

The scene looks much more dynamic.

The Point Lights have been set to use Quadratic Attenuation by right clicking on the lights and changing their properties. This results in a light with a quick fall off of intensity.

TutorialLightingAfter.jpg (5181 bytes)

Here is the original scene again, viewed in the 3D Canvas environment prior to adding the point lights.
TutorialLightingBeforeWithLights.jpg (11856 bytes)

And now viewed with the new lights.

Two lights are primarily for illuminating the scene backdrop and two for illuminating the Teapot.
TutorialLightingAfterWithLights.jpg (13509 bytes)


Tutorials -- Importing Objects

Importing Models

3D Canvas provides the ability to import models from several popular 3D file formats.

To import a model:

  1. On the File menu, select Import.
  2. A sub-menu will provide you with a list of importable formats. Choose the format of the file you want to import.

Importing an model is often only half the job. In the world of 3D there are a number of ways of representing 3D co-ordinates. In 3D Canvas X represents left and right, Y represents up and down and Z represents depth. In other programs Y represents depth and Z represents up and down. Even those programs that agree that Z is the depth of the scene may disagree on which direction is positive and which negative.

Also some programs have polygon faces that are two-sided and some have polygon faces that are single-sided. Single-sided faces are visible on one side and invisible on the other. This is a little trick that results in higher rendering rates for real-time 3D software. Typically the invisible side will be inside a solid object and not viewable, so there is no reason to render it. Again, there is no consistency as to what defines the visible side. With some programs visible is a face that has points defined in a clockwise order relative to the viewing camera and with others it is points defined in a counter-clockwise order.

What makes things worse is that with some formats you never know what you are going to get.

With 3D Canvas Y is up and down and Z represents depth and away is positive. Also, a face is always single-sided and visible if its points are defined clockwise.

3D Canvas makes an effort to correct problems while importing, but does not always succeed perfectly.

This tutorial assumes that you have are rendering single-sided faces. To switch to this mode, select Options from the File menu, Select the Device tab and de-select Render Two-Sided Faces. Once you are happy with the imported model you can re-enable Render Two-Sided Faces.

This is a model of a helicopter that was imported from the wrl format. It is an ideal example because it shows virtually every problem that one could have with an imported model.

The object is inside-out. This means that the original program either had double-sided faces or faces that were defined to be visible if counter-clockwise.

You can correct this problem by selecting the object and clicking Operation-Invert.gif (516 bytes) which is the Invert operation. This turns the object right-side out. The Invert operation reverses the order of the points on the faces that make up the object.

TutorialImport1.gif (6857 bytes)
The object is now right-side out, but it still has problems. There is a hole in the object near its nose.
TutorialImport2.gif (7677 bytes)

Also, the rotor blade is only visible from the top. This is a fairly common occurrence. Designers often use a single polygon for very thin objects. Both this problem and the hole in the nose can be corrected.

The first step is to select the object and click Operation-Triangulate.gif (523 bytes) to Triangulate the object. This operation converts all faces in to triangles. More on this later. The next step is to fill the holes by clicking Operation-Solidify.gif (523 bytes), which is the Solidify operation. Note that the Solidify and Triangulate operations are only available with 3D Canvas XE and 3D Canvas Pro.

TutorialImport3.gif (7334 bytes)

This has corrected the problem with the rotor.
TutorialImport4.gif (6718 bytes)

It also filled the hole in the nose.

When solidifying objects 3D Canvas also deletes any orphaned faces. Orphaned faces are single faces that are not attached in any way to another face. Normally this is the correct behavior to fix model problems.

In this particular model however the designer decided to use a single face as the rotor and did not connect the rotor to the body of the object. Triangulating caused the single face that made up the rotor to be broken up into several connected triangles. This resulted in the rotor no longer being classified as an orphan face.

TutorialImport5.gif (7559 bytes)
Even after using the Solidify operation there can still be holes in an object. This is a relatively rare occurrence. This is typically caused by inward facing faces. The only way to cure this problem is to look inside the object for a face that is facing inwards.
TutorialImport6.gif (3615 bytes)

Using the navigation control you can move into the object and examine it from the interior. In this case there is a single inward facing face. It can be quite difficult to find these problems because it can be difficult to navigate within an object.

Once you find the problem face, select it and then click the Invert Operation-Invert.gif (516 bytes) operation to correct it.
TutorialImport7.gif (1263 bytes)

This has corrected the final problem with this model.

The final step is to select the object and click Operation-Optimize.gif (521 bytes) which is the Optimize operation. This operation removes any redundant faces and points. Note that the Optimize operation is only available with 3D Canvas XE and 3D Canvas Pro.
TutorialImport8.gif (3321 bytes)


Tutorials -- 3D Canvas Pro

3D Canvas Pro Tutorials

Although the 3D Canvas Pro tutorials are intended for users of 3D Canvas Pro, they do contain information that may also be helpful to 3D Canvas users.


Tutorials -- Surface Tool Modeling - Overview

Surface Tool Modeling - Overview

In this tutorial we will create a dinosaur head using the Surface Tool.


Tutorials -- Surface Tool Modeling - Part 1

Surface Tool Modeling - Part 1

In this tutorial we will create a dinosaur head using the Surface Tool.

The Surface Tool uses deformable planes known as "Patches" as its building blocks.

Drag and Drop a Surface Object from the Object Builders Pane l onto an empty scene. This will open the Surface Object Building Tool.

A default background grid is provided by the Surface Tool, but we are going to replace this with a side view of our dinosaur head. We will use this image to "trace" our dinosaur head.

We will be creating our model based on a sketch provided by Daniel Ljunggren. Click here to download the image.

Click Button-SideView.gif (138 bytes) on the main toolbar to select the image of the dinosaur.

TutorialSurfaceModeling1.gif (16573 bytes)

Click Button-Surface.gif (129 bytes) to add a surface patch.

Each surface will be given a unique color so that you can discern one surface from another.
TutorialSurfaceModeling2.gif (44409 bytes)

We will be creating our model using a side view. The patch created is oriented for front view modeling.

Alt-click on the surface and rotate it using the the Edit Control so that it is oriented appropriately. Watch the Top view (bottom right view) to ensure it is reoriented correctly.

Click anywhere on the grid to release the surface.

Note that we Alt-clicked to select the object rather than simply clicked to select the object. Alt-clicking is used when you want to move, rotate or scale the entire object rather than a single surface. We had to rotate in this way to re-orient the object so that each subsequent surface added will be oriented correctly.

TutorialSurfaceModeling1-3.gif (31437 bytes)

We are going to be modeling from a side view so we don't really need all four views presented.

From the View menu select View Selection->Side View Modeling to select a perspective view and a side view.

Virtually all of our modeling will be done using this side view. The perspective view will be used as a means of judging the effect of changes made to the model.

TutorialSurfaceModeling4.gif (45051 bytes)

We will be modeling our dinosaur using a surface subdivision technique. We will start with a very coarse model and gradually add detail by subdividing surfaces.

Click Button-Translucent.gif (968 bytes) to make surfaces translucent. This aids in fitting surfaces to the image being traced.

Using the side view, move the surface so that it is roughly centered on the nose. Scale the surface so that it covers the nose and the upper lip.

TutorialSurfaceModeling5.gif (34132 bytes)

Clicking on a surface exposes its control points (handles) which can then be dragged to deform the surface.

Using the side view, deform the surface so that its edges form an outline of the nose, and aligns to the upper lip.

Note that we are working entirely in 2D at this point. We will not be giving our dinosaur any depth until we have a complete outline.

TutorialSurfaceModeling6.gif (39700 bytes)

Click Button-Surface.gif (129 bytes) to add a second surface.

TutorialSurfaceModeling7.gif (34066 bytes)

Move and Scale the surface so that it is large enough to cover the eye and is the same height as the first surface added.

TutorialSurfaceModeling8.gif (40343 bytes)

The new surface has to be linked to the first surface. To do this, drag the edge control points to the equivalent points on the first surface.

It should be apparent where to drag the control points, but if it isn't you can display the control points for all surfaces by clicking Button-ShowAllHandles.gif (935 bytes). Note that this slows performance and should only be enabled when necessary.

TutorialSurfaceModeling9.gif (39700 bytes)

After you have joined the two surfaces, deform the new surface so that it outlines the top of the head above the eye.

TutorialSurfaceModeling10.gif (35881 bytes)

Repeat this process of adding surfaces as shown. Leave the area at the front of the neck until the next step.

If you do not like the color assigned to the surfaces, simply click Button-SurfaceColor.gif (295 bytes) to turn surface coloring off, and a second time to generate new surface colors.

TutorialSurfaceModeling11.gif (34066 bytes)

In our final modeling step, we will be merging all of our surfaces into a single surface. Having a single surface means that we do not need to worry about creases where surfaces meet.

In order to merge surfaces, the edge that the two surfaces share must have an equal number of control points and be linked at each control point.

The easiest way to ensure that merging will be easy is to view the surfaces in your model as though they were cells in a table. If the table contains an equal number of columns on each row, it will be possible to merge into a single surface.

We add this final surface at the front of the neck to meet the equal surfaces per row requirement. Fortunately, in this case the neck area can use these additional control points to create wrinkles and depth.

TutorialSurfaceModeling12.gif (34066 bytes)

If you want you can switch to solid view by clicking Button-Mesh.gif (963 bytes).

The coarse outline of our model is now complete.

TutorialSurfaceModeling1-13.gif (26081 bytes)

It is now time to add depth to our model.

Select a surface to display its control points.

Using the side view, right click and drag an edge control point so that it moves two units back. You can judge the amount a point has been moved by watching the Status Bar.

TutorialSurfaceModeling1-14.gif (29793 bytes)

Continue this process for all edges except for the base of the neck.

TutorialSurfaceModeling1-15.gif (26887 bytes)

We now have depth for our coarse model.

TutorialSurfaceModeling1-16.gif (29117 bytes)

The trickiest part of creating a model using surface modeling is to get proper depth. This is critical for a proper shape.

Move control points until you are happy with shape of the head.

TutorialSurfaceModeling1-17.gif (28901 bytes)

The top of the head comes to a peak. Move the control points so that there is less of a peak. We will be mirroring this side of the head to create a whole head and we have to ensure that the top will be smooth when the two surfaces are joined.

You don't need to worry about the nose. It will be corrected later.

TutorialSurfaceModeling1-18.gif (30256 bytes)

Once you have a shape that you are happy with, doing a test mirror can be quite helpful.

Click Button-MirrorSmall.gif (143 bytes) to mirror the object. Click Button-SurfaceColor.gif (295 bytes) to turn off surface coloring.

It looks pretty good. The nose has excessive creasing, but that will be dealt with later.

If you found that the mirror did not meet exactly with the original, it is likely that when you added depth you did not do it consistently along the edges. Clicking on a control point shows its position on the status bar. Click Button-UndoSmall.gif (134 bytes) to undo the mirror and ensure that each edge control point has the same depth.

TutorialSurfaceModeling1-19.gif (32916 bytes)

The back of the head look pretty good, though it may need some adjusting to get a smooth final surface. We will leave that for a later step.

Click Button-UndoSmall.gif (134 bytes) to undo the mirror.

Close the Surface Tool.

TutorialSurfaceModeling1-20.gif (35387 bytes)

When the object is copied to your scene, the edges between surfaces are smoothed. But if there is an excessive peak or hollow where surfaces meet, it will be apparent.

Click here to download the model completed in this part of this tutorial.

TutorialSurfaceModeling1-21.gif (20313 bytes)


Tutorials -- Surface Tool Modeling - Part 2

Surface Tool Modeling - Part 2

In Part 2 of this tutorial we add detail to our dinosaur head.

Open the model you created in Part 1 of this Tutorial or click here to download the sample model.

Double click the object to open it in the Surface Tool.

TutorialSurfaceModeling1.gif (16573 bytes)

We will begin by adding detail to the eye. There are not enough control points available to shape the eye and eyebrow. We will need to divide the eye surface in order to add the detail required.

TutorialSurfaceModeling2.gif (44409 bytes)

Select the eye surface. Click Button-DivideSurfaceHorizontal.gif (934 bytes) to divide the surface horizontally.

Divide the two created surfaces horizontally.

This will give us four surfaces to sculpt an eye and eyebrow.

TutorialSurfaceModeling3.gif (45115 bytes)

Since we will be merging surfaces later, it is necessary that we ensure that each surface edge meets up with one and only one other surface edge.

Divide the surfaces as shown.

TutorialSurfaceModeling4.gif (45051 bytes)

Reshape the surfaces such that the eyebrow and eye are defined.

Use a whole surface to model the eyebrow and a second surface to model the eye.

We will add depth to the eye and eyebrow later.

TutorialSurfaceModeling5.gif (34132 bytes)

The eye does not yet have any depth, though simply moving control points to create an outline of the eyebrow gave it adequate height.

TutorialSurfaceModeling6.gif (39700 bytes)

The nostril also requires more control points. Click Button-DivideSurfaceVertical.gif (941 bytes) to subdivide the surfaces of the nose vertically.

Again, ensure that you divide surfaces so that each surface edge meets one and only one other surface edge.

TutorialSurfaceModeling7.gif (34066 bytes)

Reshape the surfaces of the nose to create a nostril.

TutorialSurfaceModeling8.gif (40343 bytes)

Click on the eye surface and push it in.

TutorialSurfaceModeling9.gif (39700 bytes)

Push in each of the central control points of the interior of the nostril.

TutorialSurfaceModeling10.gif (35881 bytes)

To create eyelids, pull out control points and shift them over top of the more central control points.

TutorialSurfaceModeling11.gif (34066 bytes)

The mouth needs more control points in order to add the required detail.

Horizontally divide the surfaces above and below the mouth.

TutorialSurfaceModeling12.gif (34066 bytes)

Push in the control points between the lips.

To create lips, shift the control points immediately above and below the mouth so that they nearly overlap the control points in the mouth.

TutorialSurfaceModeling13.gif (26081 bytes)

Now on to some final touch ups.

The eye does not have enough depth so pull the central control points out slightly to give a round eye.

The back of the head needs some adjusting to ensure that when the object is mirrored that there will be a smooth transition between surfaces.

TutorialSurfaceModeling2-14.gif (34288 bytes)

Click Button-SurfaceColor.gif (295 bytes) to turn off surface colors. Turning off surface colors can assist in finding places that have been missed.

Close the Surface Tool.

TutorialSurfaceModeling2-15.gif (32229 bytes)

When the object is copied to your scene, the edges between surfaces are smoothed. But if there is an excessive peak or hollow where surfaces meet, it will be apparent.

Click here to download the model completed in this part of this tutorial.

TutorialSurfaceModeling2-16.gif (22354 bytes)


Tutorials -- Surface Tool Modeling - Part 3

Surface Tool Modeling - Part 3

In Part 3 of this tutorial we add the sails and spikes to our dinosaur head.

Open the model you created in Part 2 of this Tutorial or click here to download the sample model.

Double click the object to open it in the Surface Tool.

TutorialSurfaceModeling1.gif (16573 bytes)

We will now be working on the full dinosaur head so we will need to use an uncropped version of the image.

Click here to download the full image.

Click Button-SideView.gif (138 bytes) on the main toolbar to select the uncropped image of the dinosaur.

Alt-Select the head. This will select all of the surfaces that make up the head.

TutorialSurfaceModeling2.gif (44409 bytes)

Scale and move the head so that is positioned over the image.

TutorialSurfaceModeling3.gif (45115 bytes)

Add the sails. These are simply surfaces added and deformed in the same way as in the previous tutorials.

These surfaces should bet linked to each other, but should not be linked to the main object in any way.

TutorialSurfaceModeling4.gif (45051 bytes)

Add the horns. Again, these are just surfaces added and deformed in the same way as in the previous tutorials. To make the tips of the the horns simply place all four edge control points in a single location.

The horns should not be linked to each other, the sails, or the main object.

Add depth to the horns. Also add a very small amount of depth the the sails.

TutorialSurfaceModeling5.gif (34132 bytes)

We have now completed the modeling phase.

TutorialSurfaceModeling6.gif (39700 bytes)

When we divided surfaces, we created uneven sized surfaces.

If you wish you can divide further surfaces to ensure a more equal distribution of points on the final model.

TutorialSurfaceModeling7.gif (34066 bytes)

We can now start merging surfaces.

Merging surfaces is not required, but will result in a smoother model with much fewer creasing problems.

We'll start with the sails. Click on a surface, click Button-Toolbar-Boolean-Merge.gif (924 bytes), and then click the neighboring surface. This will merge the surfaces.

TutorialSurfaceModeling8.gif (40343 bytes)

Surfaces can be merged vertically as well as horizontally. As long as they share an edge and their control points are linked, they can be merged.

TutorialSurfaceModeling9.gif (39700 bytes)

Merge the surfaces of the head horizontally first.

TutorialSurfaceModeling10.gif (35881 bytes)

Now merge the surfaces vertically until there is a single surface.

Do not merge horns or sails with each other. Only surfaces that make up what could be considered a single unit should be merged.

TutorialSurfaceModeling11.gif (34066 bytes)

Mirror by clicking Button-MirrorSmall.gif (143 bytes).

Click on the right side of the face and then merge with the left side of the face. This will smooth the nose and create a contiguous surface for the head. Note that these two surfaces were actually linked to each other on all four edges. In the case where surfaces meet on more than one edge, 3D Canvas prioritizes based on which surface is clicked first during the merge. If you are not happy with where the merge occurred, simply undo and merge in the opposite order.

Merge the left and right sides of the horns also. Do not do this for the sails as this will result in unacceptable results.

In this example, I vertically divided the head surface and re-merged in order to even out the size of the surfaces which were too wide.

Close the Surface Tool.

TutorialSurfaceModeling12.gif (34066 bytes)

Here is our completed dinosaur head.

As a final step, I scaled the head since it was a little too narrow. I also applied the Crease Operation-Crease.gif (514 bytes) operation to adjust the creasing of the head.

Click here to download the model completed in this part of this tutorial.

TutorialSurfaceModeling13.gif (26081 bytes)


Tutorials -- Using the Unwrap Operation

Using the Unwrap Operation

There are two methods available in 3D Canvas for painting objects. The individual faces can be painted or a texture wrap can be applied to the whole object or a selection of faces.

Unfortunately, painting individual faces rarely produces good results. Cylindrical, spherical and flat texture wraps work well with many types of objects, but they don't work particularly well with irregularly shaped objects.

The Unwrap Operation makes it possible to indirectly paint characters and other models in a Paint program like Paint Shop Pro.

What follows is an explanation of how to paint a character with the assistance of the Unwrap Operation. The Unwrap Operation is part of 3D Canvas Pro.

For this tutorial we are going to paint a model of a baby. This model is available at a number of web sites that offer public domain models. You can however use any character you wish for this tutorial.

You will want to have an Orthographic view to work with as well as a perspective view.

Select View Selection from the View menu. Choose the upper center icon that shows a single vertical line.

Right-Click on the right view, and select View->Orthographic->Front from the popup menu. Note that front means front of the scene rather than front view of the model.

TutorialUnwrap1.gif (22943 bytes)

We will not be able paint a complicated object such as this in one step.

We first have to determine what areas will need their own texture map. Once we decide which areas need their own texture map, we mask these areas by painting them a unique color.

For this model we will have texture maps for the body, face, hands and feet. Each of these areas will be painted a unique color to indicate where we will be placing our texture maps.

Set a color of yellow using the Material Palette. Click on the object to select it, then fill the object with the color using the Button-Toolbar-FillTool.gif (941 bytes) Material Fill Operation which is located on the Operation Panel. Yellow indicates the areas that later be filled with a skin colored texture.

Note that we are painting with a color not a texture. Painting with textures can result in increased model points since where there are seams between textures, points need to be split.

TutorialUnwrap2.gif (27193 bytes)

Click Button-Toolbar-FaceGroupSelectionTool.gif (911 bytes) to select the Face Group Selection Tool. It is located on the Edit Toolbar.

Click and drag with the Button-Toolbar-FaceGroupSelectionTool.gif (911 bytes) Face Group Selection Tool on the orthographic view to create a rectangle that encloses the baby's head. When you have done this, release the mouse button.

TutorialUnwrap3.gif (26266 bytes)

This selected all of the faces within the rectangle.

Only those faces that were forward facing were selected. If you had wanted to select all faces, you could have Alt-Clicked while using the Button-Toolbar-FaceGroupSelectionTool.gif (911 bytes) Face Group Selection Tool.

TutorialUnwrap4.gif (26923 bytes)

Use the Button-Toolbar-FillTool.gif (941 bytes) Fill Operation to paint these faces green.

A number of faces were painted in the previous step that didn't need to be.

TutorialUnwrap6.gif (24517 bytes)

Use the Button-Toolbar-SampleTool.gif (934 bytes) sample tool from the Edit Toolbar to sample the body color. There are a number of shades of yellow, so we want to ensure that we have the right one.

Use the Button-Toolbar-Paint.gif (941 bytes) Face Painting Tool from the Edit Toolbar to repaint the areas accidentally painted green. There should be a relatively smooth edge between green and yellow. But since we are painting faces, the line between green and yellow will never be entirely smooth. Just make sure that green is contiguous.

TutorialUnwrap7.gif (24533 bytes)

Use the Button-Toolbar-FaceGroupSelectionTool.gif (911 bytes) Face Group Selection Tool to select the faces that make up the diaper. Paint them white. This will be the only part of the model that will not be texture wrapped.

Notice the over-run of paint again. If the creator of the model had kept the diaper as a separate object, this would have been much simpler. Since they have been merged into a single object, it is necessary to do a little bit of clean up.

TutorialUnwrap8.gif (21855 bytes)

Use the Button-Toolbar-Paint.gif (941 bytes) Face Painting Tool to repaint the areas of the body accidentally painted white.

TutorialUnwrap9.gif (28319 bytes)

Paint the tops of each hand and each foot a unique color.

Ensure that you are very careful to paint only the top part of each hand. To see a more detailed view of properly masked hands click here.

We have now completed the color masking of our object.

TutorialUnwrap10.gif (19920 bytes)

Click Button-Toolbar-SelectFace.gif (906 bytes) to select the Point and Face Selection Tool. It is located on the Edit Toolbar.

Alt-Ctrl click anywhere on the yellow part of the body. This will select all faces that are yellow.

TutorialUnwrap11.gif (23254 bytes)

Create a skin-tone texture using your Paint program. Select it using the Material Palette. Click Button-WrapSphere.gif (917 bytes) on the Material Palette to select a spherical wrap.

Note that even though this skin tone is a continuos color, it must be a texture. Textures and colors do not render exactly the same, so if there is a mix of colors and textures it will be obvious in the model.

Fill the selection with this texture using the Button-Toolbar-FillTool.gif (941 bytes) Material Fill Operation from the Operation Panel.

TutorialUnwrap12.gif (23809 bytes)

We will now create a bitmap of the baby's face that we can paint.

To use the Unwrap operation, the area of the object to be unwrapped must be facing towards you when looking at the object in a Front Orthographic view. Ensure that this is the case. If it isn't, rotate the object so it faces you.

Click Button-WrapCylinder.gif (919 bytes) on the Material Palette to select a cylindrical wrap. This is usually the best wrap method for character faces. You may find that with some character faces a spherical wrap or even a flat wrap produces the best result. The best method is to try each wrap type until the Unwrap Operation produces a bitmap you are happy with.

Click Button-Toolbar-SelectFace.gif (906 bytes) again to select the Point and Face Selection Tool. Alt-Ctrl click anywhere on the green part of the face to select it.

Click Operation-Unwrap.gif (914 bytes) on the Operation Panel to open the Unwrap Operation.

Select a texture size of 512x512 and click OK. Save the file somewhere where you won't lose it.

TutorialUnwrap13.gif (21444 bytes)

In your Paint program, open the texture you created, and change all of the grey areas to the exact color that you used in your previous skin tone texture.

Also, change all of the white areas to a color that will not be part of the final texture. I chose yellow for this example.
TutorialUnwrap14.gif (33477 bytes)

Here I have painted in the eyes and lips of the texture.
TutorialUnwrap15.gif (27133 bytes)

Select this texture you created using the Material Palette and apply it to the object using the Button-Toolbar-FillTool.gif (941 bytes) Material Fill Operation. If you deselected the the green mask, you will first have to re-select it by Alt-Ctrl clicking.

Don't worry about any creasing between the face texture and body texture. This will be resolved in the final step.

Notice that the areas near the ears have a lot of overlap of faces. It would not be appropriate to try to paint areas such as this because the result would be poor. If you were to want to paint the ears, you would have to create separate masks and bitmaps for them or reduce the size of the color mask around the ears.

TutorialUnwrap16.gif (27133 bytes)

It is actually possible to see how changes you make to the texture affect the model while you are modeling. As you make a change to the texture in your Paint program, simply save it and reload the model to see what the effect has been. It isn't always obvious what point in the texture is what point on the model so some trial and error may be necessary.

I have now filled all of the yellow lines with skin tone, and added some blush to the cheeks.

TutorialUnwrap17.gif (21492 bytes)

We will now repeat this process for the other masked areas.

Remember that in order to use the Unwrap Operation, the area to be unwrapped must face the front.

Rotate the model as shown so that the area to be wrapped faces the front.
TutorialUnwrap18.gif (25086 bytes)

Repeat the process of creating a bitmap, but this time use a Button-WrapFlat.gif (920 bytes) Flat Wrap.

TutorialUnwrap19.gif (15083 bytes)

Paint fingernails on this texture and apply it to the object.

Repeat this process for the other hand and the feet.
TutorialUnwrap20.gif (26341 bytes)

Apply the Operation-Crease.gif (514 bytes) Crease Operation and adjust the slider to the far left so that there is no creasing. This will correct any seams that appeared when the textures were applied.

We now have our finished model.
TutorialUnwrap21.gif (22530 bytes)


Tutorials -- Animating the Scale Operation

Animating the Scale Operation

Many 3D Canvas Operations can have their effect animated. Any operation that supports Update Button-Operation-Update.gif (515 bytes) on the Object Layers Panel or the Operation Adjust Tool Button-Toolbar-OperationAdjustTool.gif (912 bytes) can be animated.

What follows is an explanation of how to animate a Operation-Scale.gif (936 bytes) Scale Operation.

Drag and Drop a sphere on to the scene.
TutorialAnimatedScale1.gif (19274 bytes)

Show the Animation Toolbar using the View Menu.

Switch to Animation Mode by selecting Button-Animation-Animate.gif (1005 bytes).

Select the sphere.

The Scale Operation is located on the Object Operations Panel. Set the parameters for the Scale Operation by right clicking on Operation-Scale.gif (936 bytes). Enter a scale amount of 1 for X, Y and Z. This will result in no scaling at time 0 in the animation.

Apply a Scale Operation to the sphere by clicking Operation-Scale.gif (936 bytes).

TutorialAnimatedScale2.gif (21231 bytes)

Move to time 10 with the animation slider.

Select the sphere if it is not already selected. Click Button-Operation-Update.gif (515 bytes) Update on the Object Layers Panel and enter a scale amount of 2 for X, Y and Z. This will result in the sphere being scaled by a factor of two in each direction.

We now have an sphere that doubles in size during the animation.

Press play Button-Play.gif (908 bytes) to preview the animation.
TutorialAnimatedScale3.gif (24947 bytes)


Tutorials -- Animating the Tip Operation

Animating the Tip Operation

Many 3D Canvas Operations can have their effect animated. Any operation that supports Update Button-Operation-Update.gif (515 bytes) on the Object Layers Panel or the Operation Adjust Tool Button-Toolbar-OperationAdjustTool.gif (912 bytes) can be animated.

What follows is an explanation of how to animate a Operation-Tip.gif (529 bytes) Tip Operation. The Tip Operation is part of 3D Canvas Pro.

Drag and Drop a sphere on to the scene.
TutorialAnimatingOperations1.gif (21265 bytes)

Show the Animation Toolbar using the View Menu.

Switch to Animation Mode by selecting Button-Animation-Animate.gif (1005 bytes).

Move to time 10 with the animation slider.

Select the Sphere.

The Tip Operation is located on the Object Operations Panel. Set the parameters for the Tip Operation by right clicking on Operation-Tip.gif (529 bytes). Enter a Tip Extrusion Amount of .5.

Apply a Tip Operation to the sphere by clicking Operation-Tip.gif (529 bytes).

TutorialAnimatingOperations2.gif (33520 bytes)

Now move to time 0 with the animation slider.

Select the Object if it is not already selected. Click Button-Operation-Update.gif (515 bytes) Update on the Object Layers Panel and enter a Tip Extrusion Amount of 0.

We now have an animated Tipping of an object starting with no tips at time 0 and .5 unit tips at time 10.

Press play Button-Play.gif (908 bytes) to preview the animation.
TutorialAnimatingOperations3.gif (22936 bytes)


Tutorials -- Creating Animated GIFs

Creating Animated GIFs

3D Canvas Pro can not create animated GIFs by itself. It can however create the images that a third party GIF animating program such as GIF Movie Gear requires to create an animated GIF.

What follows is an explanation of how to create an animated GIF using 3D Canvas Pro.

Create or open a 3D Canvas animation.
TutorialSkeletalAnimation17.gif (15905 bytes)

Show the Animation Toolbar using the View Menu.

Switch to Animation Mode by selecting Button-Animation-Animate.gif (1005 bytes).

Click Button-Record.gif (942 bytes) to record the animation.

Select "Save Animation as Images". This will save the animation images individually as Windows bitmap (bmp) files.

You will be asked to enter a filename to save the animation. This filename will be the base filename for the images created. Each image will use this name with a number appended. For example if you choose to save as "animation.bmp" the result would be a group of numbered images starting with animation001.bmp.

TutorialAnimatedGIFs1.gif (3295 bytes)

The images created by 3D Canvas Pro can then be used by a GIF animating program such as GIF Movie Gear to create an animated GIF.


Tutorials -- Microsoft Train Simulator Modeling

Microsoft Train Simulator Modeling

3D Canvas Pro includes the ability to export models to Microsoft Train Simulator's shape format (.s).

A number of technical documents relating to the creation of models for Microsoft Train Simulator are provided with Microsoft Train Simulator. This tutorial does not attempt to explain information provided in these documents.

Before beginning any models intended to be used with Microsoft Train Simulator, you should disable the rendering of two-sided faces (Tools->Options->Device->Render Two-Sided Faces). Microsoft Train Simulator does not render the interior sides of faces (polygons). This means that faces are only visible from one side. This is done to improve performance. The fact that faces are only visible from one side is usually not a problem in practice since most objects are solid and the interior faces are not visible.

Modeling in 3D Canvas Pro

This is a very simple model of a building created in 3D Canvas Pro:

FirstBuilding3DC.gif (25471 bytes)

The same model as seen in Microsoft Train Simulator:

FirstBuildingMSTS.gif (40969 bytes)

Many of 3D Canvas' material attributes are not supported by Microsoft Train Simulator. The only material attributes that Microsoft Train Simulator supports are texture mapping, ambient brightness and specular highlighting.

Typically materials should be applied using an ambient level of 20 and a non-zero specular level. This will produce models that look appropriate in Microsoft Train Simulator. Also, textures can only be applied using flat wrapping unless they are being applied to a subset of the object's faces.

Microsoft Train Simulator does not support varying ambient levels per object so if you apply different ambient levels to different parts of an object they will be averaged on export. You can however change the ambient level on sub-objects to make them different than the main object. Any ambient level higher than 20 will be set to 20 on export since that is the maximum permitted by Microsoft Train Simulator.

Specularity in Microsoft Train Simulator is either on or off. Any value for the specular level other than zero will be considered on. Increasing the specular level in 3D Canvas will not increase the specularity in Microsoft Train Simulator, but setting it to zero will turn off specularity. When specularity is off, materials appear much brighter. This can be useful if you want an object to look particularly bright. In general though a non-zero specular level should normally be used.

Note that Microsoft Train Simulator allows for the prioritization of materials. This is used to ensure correct rendering when viewing through multiple translucent objects. This feature is not supported by 3D Canvas Pro. In practice this may not have much effect, but it could be factor with some objects.

To have the ability to use colors as well as textures, a single large texture can be created that combines a number of smaller textures and colors. The texture can then be cropped as it is applied to provide the desired texture or color.

PaintPot.gif (30300 bytes)

You may use multiple textures per object also if you wish, but Microsoft suggests using as few textures as possible per object in order to improve performance.

Much of your material painting will be done using the Paint Tool. The Fill operation can be quite useful for filling a selected group of faces with a material. If you are filling a subset of the faces with a material all three wrapping modes (flat, cylindrical and spherical), can be used. If you are filling the entire object, only the flat wrap can be used or distortion will occur. The UnWrap and UVMap operations are particularly useful with models created for Microsoft Train Simulator because they allow for precise application of textures.

Translucency layers can be used with 3D Canvas Pro, but since it does not support Targa (.tga) files you will need to split your Targa file into a non-translucent bitmap (.bmp) and a translucency map (.bmp). You can then select the primary texture and translucency map in 3D Canvas Pro. This will allow you to create translucent windows etc. Once you have created and exported your model you will need to take the original Targa file and translate it to an .ace file for the translucency to work in Train Simulator. You will NOT want to translate the bitmap files to the .ace format. Train Simulator differentiates between textures with transparent regions and textures with translucent regions. 3D Canvas does not differentiate between these two types of translucency. So for the purposes of export to Train Simulator format 3D Canvas assumes that a translucency map has transparent regions unless a translucent value is set also. So to indicate that a texture should be considered translucent rather than transparent, the Material Palette's Translucent value has to be set to something other than zero.

Standard translational and rotational animations are supported. It appears though that these are only supported within Microsoft Train simulator for engines. Each frame of an object must be uniquely named for animation to work properly. There are many other requirements for engines, and these are covered in the technical documents provided with Microsoft Train Simulator.

Each 3D Canvas Pro unit, the length of the edge of a square on the 3D Canvas Pro grid, is equal to 1 meter.

Exporting to the Microsoft Train Simulator File Format

Exporting to the .s format is relatively simple. Just right-click on the object and select Export Selection->Microsoft Train Simulator from the popup menu.

3D Canvas Pro should warn you if there are any issues with the export.

Adding Models to Your Route

Once you have exported your model there are a number of steps that must be completed before you can use it on your route:

1) convert the .s file to a Unicode file. Microsoft provides a utility with Train Simulator called txt2uni.exe that will do this conversion.

2) convert the texture(s) to the .ace format. Microsoft provides a utility with Train Simulator called makeace.exe that will do this conversion. Note that textures must be 64x64, 128x128, 256x256 or 512x512 to be used in Train Simulator.

3) Copy the .s file to your route's Shapes folder.

4) Copy the .ace file to your route's Textures folder.

5) Create a .sd file (shape description) for your object in your route's Shapes folder. Here it is what we use (it likely could be improved):

SIMISA@@@@@@@@@@JINX0t1t______

shape ( myobject.s
ESD_Detail_Level ( 0 )
ESD_Alternative_Texture ( 0 )
ESD_No_Visual_Obstruction ()
)

It should be named myobject.sd (replacing "myobject" with your object's file name) and myobject.s within the file must be changed to indicate the file name of your object. Also, you will need to convert this file to Unicode using txt2uni.exe.

6) Modify your route's .ref file so that it is aware of the new object. Here is what we add:

Static (
Class ( "3D Canvas Objects" )
Description ( "My Object" )
Filename ( "myobject.s" )
)

Then just add the object to your route in the usual way.

Creating Engines

There are a considerable number of requirements for creating engines for Microsoft Train Simulator. The technical documents provided with Microsoft Train Simulator provide all necessary information.


Tutorials -- Using BioVision Motion Capture Files

Using BioVision Motion Capture Files

The BioVision Hierarchy (bvh) file format is used to store animation information that was created using motion capture. It provides information such as the length of each limb of the person/animal who's motion was captured. It does not describe the appearance of the person/animal itself. This information can be used by 3D Canvas to create an animated skeleton.

What follows is an explanation of how to use BioVision motion capture create a skeleton for a character. This tutorial is intended for advanced users of 3D Canvas.

If you have a character model that has been specifically designed to work with a particular BioVision file, or you plan to design a model around the BioVision skeleton many of the following tasks will be unnecessary.

This tutorial is intended to be used with a jointed model. If you are planning to use a skeletal model, simply change the import style to one of the bone styles, and replace the hierarchy related steps with the standard technique for skinning a skeleton. Note that placeholders will still be created. Once you have oriented the placeholders you can delete them to expose the underlying bones.

This tutorial covers the worse-case situation for BioVision imports, where the model does not match in any way the BioVision import.

For this tutorial we are going to use a cartoon-style model of a mobster.

This model has been provided by Viewpoint. It was modeled with 3D Studio.

Click here to download the Mobster model in 3D Canvas format.

BioVision has a number of sample motions available at their website. Click here to download the walking motion that we used to create this tutorial. Click here (497K) to view an animation created with this BioVision file. It is something of a gorilla-style walk which seems appropriate for the model.

TutorialBioVision1.gif (15583 bytes)

The BioVision Hierarchy (bvh) file was created using a human so the body parts will not match our cartoon character. We will need to do a considerable amount of resizing. This will be easiest if working with a couple of views of the character model.

Select View Selection from the View menu. Choose the icon that indicates two vertical-oriented views.

Right-Click on the right view, and select View->Orthographic->Front from the popup menu

Also we will be working with animation key-frames, so show the Animation Toolbar using the View menu.

TutorialBioVision2.gif (21342 bytes)

To resize the BioVision animation information to fit our skeleton will require some estimation and a little bit of trial-and-error.

The first step is to do a trial import of the animation information to see how it compares with our character model.

Select Import->BioVision Motion Capture (bvh) from the File menu.

Find the motion capture file that you want to import.

There are a number of options provided for BioVision imports. Importing BioVision files can be time consuming. Since this is simply an import test we only need to import one key-frame of the animation. Enter a key frame range of 1 to 1 in the Include Keys: fields and click OK.

TutorialBioVision3.gif (6984 bytes)

3D Canvas created a skeleton made up of Limb Placeholders from the BioVision file.

These placeholders are temporary body parts that you will eventually replace with the body parts of your character.

This skeleton is far too large for our character. The important thing to remember when importing BioVision files is that the length of the legs of the character must match the length of the legs of the BioVision skeleton. This ensures that the character's stride will be correct.

There are two options here, you can increase the size of the character to match the skeleton, or you can reduce the size of the skeleton to match the character. For life-like human characters this is usually an easy task, since the length of the limbs will typically match fairly closely. But for our cartoon character this is going to be more difficult.

Increasing the size of the character model is easy. Simply alt-click on the root of the model (usually the hips) and ctrl-drag to scale.

Reducing the size of the skeleton after importing isn't really practical since it would require repositioning each bone at each time interval in the animation. This is a job that is too large to be done post-import. The solution is to change the size of the model during the import. The BioVision Import options provide options to resize the skeleton during the import.

TutorialBioVision4.gif (27432 bytes)

A BioVision import creates a "pedestal" for the imported skeleton. This is simply a flatted cube that indicates the start position of the animation sequence. This pedestal can be used to move the imported skeleton and animation sequence to a new location and orientation. It also can be used for deleting the entire imported skeleton.

Alt-click on the pedestal and select Delete from the File menu to delete the imported skeleton.

Re-import the skeleton, this time however select a Percentage of Original Size of 30% as well as Include Keys: of 1 to 1.

30% isn't a magic number. By comparing the imported skeleton with the mobster model I estimated that I needed to reduce the size of the skeleton to 35%. A couple of trial imports later I hit on the ideal import percentage of 30% to give the correct leg length. Note that you could have left Percent of Original Size at 100% and entered 30% for each Joint/Bone in the Hierarchy Components but that would have been incorrect. That would not have resized the animation position. It is essential that Percentage of Original Size be set such that the length of your character's legs match that of the imported skeleton.

We now have an imported skeleton with correct leg lengths. Unfortunately, that seems to be the only thing that is correct. Since we have a character whose body shape is a caricature of a real body we will have to do considerable resizing to fit. If we were using a character based on the real world, we might be done resizing.

In the next step, we will adjust the width of the hips. From the import it appears that the hips need to be about twice as wide as they are. That means they should be imported with at 60% (2x 30%) of the original size to get the right width. I did a couple of trial imports to determine the correct width of 55%.

TutorialBioVision5.gif (42286 bytes)

Delete the previous skeleton.

Re-import the skeleton, this time however select a Percentage of Original Size of 30% as well as a Include Keys: of 1 to 1. Also, this time go to the Hierarchy Components section and enter 55% for LeftUpLeg and RightUpLeg. The percentage entered in the Hierarchy Components section adjusts the relative position of a bone. Since we want to adjust the relative position of the hip joints, we adjust the position of the upper legs.

I have hidden a few items in this view of our character to make it easier to see the area we are working on. You can do this also by right-clicking on them and de-selecting Visible. To make them visible again click Button-Toolbar-ShowObjects.gif (958 bytes) and Button-Toolbar-ShowBones.gif (149 bytes) on the Primary Toolbar.

TutorialBioVision6.gif (33676 bytes)

The placeholders of the leg are not oriented properly. Re-orient them using the Edit Control. This is a good test to see if they are the correct length. In this example they are not.

Delete the skeleton, and re-import selecting a Percentage of Original Size of 30% as well as a Include Keys: of 1 to 1 a LeftUpLeg/RightUpLeg amount of 55%, a LeftLowLeg/RightLowLeg amount of 25% and a LeftFoot/RightFoot amount of 35%. Again, these numbers were found by estimation and then trial and error.

TutorialBioVision7.gif (33392 bytes)

Re-orient the placeholders of the leg using the Edit Control. They should be the correct length now. Note that we do not want to reorient the foot bone in the direction of the foot. It is in-line with the calf bone and that is what the creator of the BioVision file intended.

Every time you delete an imported BioVision hierarchy and re-import you will loose the orientation of the place holders, so don't spend a lot of time in this stage perfecting orientations.

TutorialBioVision8.gif (32178 bytes)

Repeat this technique for all the remaining placeholders of the animation. For those who want to skip this step of estimation/trial-and-error bone length determination, I found these to be good percentages:

Percentage of Original Size: 30
Hips: 30%
Chest: 50%
Neck: 39%
Head: 30%
LeftCollar/RightCollar: 44%
LeftUpArm/RightUpArm: 120%
LeftLowArm/RightLowArm: 45%
LeftHand/RightHand: 40%
LeftUpLeg/RightUpLeg: 55%
LeftLowLeg/RightLowLeg: 25%
LeftFoot/RightFoot: 35%

Import the entire animation including all key-frames. In other words, don't change the Include Keys: fields this time.

Re-orient the placeholders as appropriate using the Edit Control. Take care to do as little rotation as possible to achieve the desired orientation. I found with this model that I had to orient the Neck and Head backwards to get an acceptable result.

TutorialBioVision9.gif (28571 bytes)

It is now time to move the character's parts from the original frame hierarchy to the new frame hierarchy.

This means moving each part one-by-one from the "Al" hierarchy to the "Pedestal" hierarchy.

In the example on the right I have moved the Torso-Lower from the "Al" frame to the "Pedestal/Hips" frame. The next step will be to move the Torso-Upper, Coat Buttons, Tie and Shirt from the "Al/Torso-Upper" frame to the "Pedestal/Hips/Chest" frame.

Repeat this process for all of the remaining character parts. Close unused frames as needed.

Also, delete all of the bones of the original model since that frame hierarchy is no longer needed.

TutorialBioVision10.gif (4518 bytes)

We now have a BioVision animated Character.

Switch to Animation Mode by selecting Button-Animation-Animate.gif (1005 bytes).

Press play Button-Play.gif (908 bytes) to preview the animation.

TutorialBioVision11.gif (35242 bytes)

The placeholder objects can now be removed if you wish. They were simply placeholders for the character's body parts so they are no longer needed.
TutorialBioVision12.gif (33632 bytes)

Use the pedestal to position and orient your animation.

Once you have done this, you can delete the pedestal.
TutorialBioVision13.gif (24350 bytes)

The information used by 3D Canvas to properly shade objects may be affected by moving body parts from frame to frame.

To correct this apply a Operation-Crease.gif (514 bytes) Crease operation to each body part.

Click here (142k) to view an animation created with this model.
TutorialBioVision14.gif (23210 bytes)


Creating, Opening and Saving Scenes

Creating, Opening and Savings Scenes

A new scene is automatically created every time you run 3D Canvas.

To create a new scene select New from the File Menu.

To open an existing scene select Open from the File Menu.

To save a scene select Save from the File Menu..


Creating a New Scene

A new scene is automatically created every time you run 3D Canvas.

You also can create a new scene by any of the following:

  1. From the Toolbar click Button-New.gif (1005 bytes) .
  2. On the File menu, click New.
  3. Type ctrl + n.


Opening a Scene

You may open an existing scene by any of the following:

  1. From the Toolbar click Button-Open.gif (239 bytes) .
  2. On the File menu, click Open.
  3. Type ctrl + o.


Saving a Scene

You may save a scene you are working on by any of the following:

  1. From the Toolbar click Button-Save.gif (239 bytes) .
  2. On the File menu, click Save.
  3. Type ctrl + s.

Alternately, If the file you are working on has been saved before, and you would like to save it with a different name:

On the File menu, click Save As.


Navigation Overview

Navigating through your scene is done using the Navigation Control, or via mouse navigation.


Using the Navigation Control

Control-Navigation.jpg (3342 bytes)

The Navigation Control is used to navigate through your scene.

Your view of the world is as though you are looking through a camera. You can move this camera using the Navigation Control or through mouse navigation.

Clicking on an axis and dragging results in the camera rotating around the Grid's center using the axis selected.

Clicking on the sphere and dragging results in the camera rotating around the Grid's center using the X and Y axes.

Clicking on one of the planes that represent the XZ or YZ plane and dragging results in navigation along the selected plane.

The YZ plane has three separate navigation control planes. Each plane is used for navigation along the YZ plane, but produces somewhat different results. Clicking and dragging on the the leftmost plane results in navigation along the YZ plane hovering over the scene. Clicking and dragging on the center plane also results in navigation along the YZ plane hovering over the scene, but moving the mouse left and right results in rotation of the camera about its position. The rightmost plane is identical to the center plane except that instead of hovering over the scene, the camera moves directly towards the object to which it is pointed. This is very useful for zooming in on an object that is located in the center of the camera's view. In orthographic mode, the center plane is not provided and the zoom action does not provide rotation.


Using the Mouse to Navigate

Click Button-Toolbar-Navigate.gif (919 bytes) to enable navigation using the left mouse button.

Left clicking and dragging results in navigation along the XZ plane.

To enable the middle button of your mouse for navigation:

  1. On the Tools menu, click Options....
  2. Select a Mouse Style of 3-Button.

Button-Toolbar-Navigate.gif (919 bytes) will no longer be displayed on the tool bar.


Components Overview

Panel-Components.gif (15918 bytes)

The component panel is used to create and manage scene components. It is made up of a series of sub-panels, including the Primitives, Bones, Lights, Object Building Tools and Object Library sub-panels.

As with all of the Construction Panels (Material, Component, Operation and Hierarchy) there are two ways to view the Components Panel, in a fully expanded state by choosing the Component Tab Button-Construction-Component.gif (1131 bytes) or in a customizable state by selecting Customize Panels Button-Construction-Customize.gif (1126 bytes).

Click Button-Panel-Primitives.gif (675 bytes) to show the Primitives sub-panel. Or select the Component Tab Button-Construction-Component.gif (1131 bytes) to show all component sub-panels.

Click Button-Panel-Lights.gif (138 bytes) to show the Lighting sub-panel. Or select the Component Tab Button-Construction-Component.gif (1131 bytes) to show all component sub-panels.

Click Button-Panel-ObjectBuildingTools.gif (140 bytes) to show the Object Building Tools sub-panel. Or select the Component Tab Button-Construction-Component.gif (1131 bytes) to show all component sub-panels.

Click Button-Panel-ObjectLibrary.gif (145 bytes) to show the Object Library sub-panel. Or select the Component Tab Button-Construction-Component.gif (1131 bytes) to show all component sub-panels.


Using Primitives

Panel-Components-Primitives.gif (4747 bytes)

Click Button-Panel-Primitives.gif (675 bytes) to show the Primitives panel. Or select the Component Tab Button-Construction-Component.gif (1131 bytes) to show all component sub-panels.

To add a primitive to your scene, click on the primitive's icon and drag it on to your Scene. Each primitive has options that may be displayed by right clicking on the primitive's icon.

PrimitiveCube.gif (1408 bytes) | Cube The resolution of a cube is the number of square polygons used to make up the edges of the cube. For instance, a resolution of two results in a cube with sides made up of four polygons, two along each edge.
PrimitiveCylinder.gif (1474 bytes) | Cylinder The number of lines of Latitude and Longitude may be specified for a Cylinder. As well, the ratio of the size of the top to the bottom may also be set.
PrimitiveSphere.gif (1739 bytes) | Sphere A sphere may have its Latitude and Longitude set.
PrimitiveTorus.gif (1585 bytes) | Torus The ratio of the inner hole to the outer edge may be set for the torus as well as the standard Latitude and Longitude.
PrimitiveCone.gif (1440 bytes) | Cone A Cone may have its Latitude and Longitude set.

Note that the number lines of Latitude are inclusive of the origins. For instance, a Sphere with ten lines of Latitude and ten lines of longitude will result in a sphere made up of ninety polygons.


Using Skeletal Bones

Panel-Components-Bones.gif (1663 bytes)

Click Button-Panel-Skeleton.gif (139 bytes) to show the Bones panel. Or select the Component Tab Button-Construction-Component.gif (1131 bytes) to show all component sub-panels.

Skeletal bones are used to create easily positionable models of Humans and Animals. An object can be attached to bones as a "skin". When a bone is moved, the skin is deformed to match the new position and orientation of the bone.

To add a bone to your scene, click on the bone's icon and drag it on to your Scene.

There are three types of bones:

Panel-Components-Bones-Cylinder.gif (1037 bytes) | Standard This type of bone has a range of effect that is shaped like a cylinder. This the primary bone type. It is the most appropriate for building skeletons of Humans or Animals that occur in nature.
Panel-Components-Bones-CylinderRounded.gif (1059 bytes) | Rounded Cylindrical (Available with 3D Canvas Pro) This type of bone has a range of effect this is shaped like a cylinder with rounded ends. It is uncommonly used, but can be useful when multiple bones join at a single point.
Panel-Components-Bones-Spherical.gif (1011 bytes) | Spherical Bone (Available with 3D Canvas Pro) A Spherical Bone is not like any bone in a human or animal. It is a convenient shape that can be used to deform skins. It is typically used to simulate a muscle, such as deforming a skin in order to lift an eyebrow. A Spherical Bones range of effect is equal to the size of the bone itself.

Once you have created the skeleton for the object you are modeling, you can attach a skin to each bone by either double-clicking the bone or selecting a bone and clicking Button-Toolbar-AttachSkin.gif (151 bytes) on the Edit Toolbar. The nearest object will be attached as a skin. For Cylindrical bones, the Bone Effect window is opened to allow you to adjust the range of effect of the bone. The Spherical Bone's range of effect is equal to the size of the bone itself.

Before attaching a skin to a bone, you should position the object that is to become the skin so that its bones are embedded in their desired position. Once you have positioned the object, you should move the object within the Scene Hierarchy to the frame that contains the root bone.

An object that has been attached to a bone becomes a skin and can not be scaled or have any operations applied to it. For this reason it is important to ensure that the object is in its final state before using it as a skin. You can detach a bone from its skin by clicking Button-Toolbar-AttachSkin.gif (151 bytes) on the Edit Toolbar a second time.


Adding Lighting to a Scene

Panel-Components-Lights.gif (1916 bytes)

Click Button-Panel-Lights.gif (138 bytes) to show the lighting panel. Or select the Component Tab Button-Construction-Component.gif (1131 bytes) to show all component sub-panels.

To add a light to your scene, click on the desired light and drag it onto your scene. Scaling a light results in the intensity being increased or decreased. Lights can be re-positioned, re-oriented and animated just like any other object.

Panel-Components-Lights-Directional.gif (1019 bytes) | Directional Light This light is an infinite light source. Its position is infinitely far away, so it is represented simply as an arrow. This light cannot be moved, but you can re-orient it.
Panel-Components-Lights-ParallelPoint.gif (1045 bytes) | Parallel Point Light This light source is very much like a light bulb. It may be repositioned as you would any object. For animations, this light source produces higher frame-rates than a point light, but the quality of the light produced is not as high. For most animations, the Point light is the best choice. Keep in mind that frame-rates are not important when recording to video files because they are not recorded in real time, so they are guaranteed to be smooth.
Panel-Components-Lights-ParallelPoint.gif (1045 bytes) | Point Light The Point Light is very much like a light bulb. It may be repositioned and animated as with any object.
Panel-Components-Lights-Spot.gif (1024 bytes) | Spotlight The Spotlight behaves exactly like its real world equivalent. It may be reposition and animated. It also has other attributes such as its umbra, penumbra and range. These attributes can be set by right-clicking on it and choosing Properties from the pop-up menu. Umbra and Penumbra are specified in radians (3.14 = 180 degrees). The range is in model units.

In addition to these lights, there is always one Ambient light within a scene. This light appears as small sphere. It may not be moved. Its intensity can be scaled in the usual way.

A light's properties can be set by right-clicking on it and choosing Properties from the pop-up menu.

All lights have a color property, which ranges from black (off) to white (maximum intensity).

Lights that can be moved also have an attenuation factor and method. The attenuation factor and method specify how the intensity of the light changes with distance.


Using the Object Building Tools

Panel-Components-ObjectBuildingTools.gif (2001 bytes)

Click Button-Panel-ObjectBuildingTools.gif (140 bytes) to show the Object Building Tools panel. Or select the Component Tab Button-Construction-Component.gif (1131 bytes) to show all component sub-panels.

To add an object to your scene, click on the Object Builder's icon and drag it on to your Scene. The Object Builder will then open so that you create your object.

Panel-Components-ObjectBuildingTools-LatheTool.gif (1027 bytes)

The Lathe Tool

The Lathe Tool is used to create objects by taking a plane and rotationally sweeping it through space. The volume swept through is the new object. For example, a semi-circle rotated through space creates a sphere, and a rectangle rotated through space creates a cylinder.
Panel-Components-ObjectBuildingTools-ExtrudeTool.gif (1043 bytes)

The Extrude Tool

The Extrude Tool is used to create objects by taking a plane and sweeping it through space along a path. The volume swept through is the new object. For example, sweeping a circle along a straight path results in a cylinder being created.
Panel-Components-ObjectBuildingTools-TextTool.gif (1071 bytes)

The Text Tool

The Text Tool is used to create 3D Text objects.
Panel-Components-ObjectBuildingTools-SurfaceTool.gif (1049 bytes)

The Surface Tool (Available with 3D Canvas Pro)

The Surface Tool is primarily used to create organic objects. Objects are built from a patchwork of surfaces.

To modify an object created with an Object Builder, double-click on the object within the scene.


Using the Lathe Tool

ObjectBuildingTools-Lathe.gif (20797 bytes)

The Lathe Tool takes a source plane that you define and rotates it through space. The volume swept through becomes a solid object.

The Lathe Tool is made up of two panes. The first pane is the object preview, which displays the object created. The second pane is the source grid where you define the plane that will be swept through space. A series of control points are connected to create the source. Control points are added by clicking on the grid. The first control point is colored green. Each additional point added is colored white. The points are connected using a B-Spline curve. This form of curve has a start control point and end control point that are guaranteed to be on the curve, but any other control points act as magnets attracting the curve in their direction.

You may also set control points to be fixed, so that they are guaranteed to be on the curve. Clicking a second time on a control point results in it becoming a fixed control point which is colored blue.

Shift-Clicking on a control point creates a new control point along the curve. Ctrl-Clicking on a control point deletes the control point.

Note that in order to ensure that the object is displayed properly, you must define your source in a clockwise manner. A counter-clockwise source results in an object that is inside-out.

A slider is provided to adjust the detail level of the created object.

You can set Rotate to a number less that 1 if you wish to create an object from less than a full rotation of the source plane.

As an alternative, you may choose to use N-Spline curves or Bezier curves. Bezier is a smoother curve, but N-Spline control points are guaranteed to be on the curve produced.

Click Button-SaveSmall.gif (149 bytes) to save.

Click Button-DeleteSmall.gif (918 bytes) to reset the source.

Click Button-UndoSmall.gif (134 bytes) to undo the previous operation. Only modeling operations can be undone.

Click Button-RedoSmall.gif (134 bytes) to redo the last action undone.

Click Button-WireframeSmall.gif (139 bytes) to display the object in wireframe mode.

When you have completed your object simply close the Object Builder and your scene will be updated with the new object.


Using the Extrude Tool

ObjectBuildingTools-Extrude.gif (14153 bytes)

The Extrude Tool takes a source plane that you provide and sweeps it through space along a path you define. The volume swept through becomes a solid object.

The Extrude Tool is made up of four panes. The first pane is the object preview, which displays the object created. The second pane is the source grid where you define the plane that will be swept through space. The third and fourth panes are the path grids which are used to define the path through space of the source plane. The third pane is a side view or the path and the fourth pane is a top view of the path.

The source and path are defined using control points. A series of control points are connected to create the source and path. Control points are added by clicking on the grid. The first control point is colored green. Each additional point added is colored white. The points are connected using a B-Spline curve. This form of curve has a start control point and end control point that are guaranteed to be on the curve, but any other control points act as magnets attracting the curve in their direction.

Shift-Clicking on a control point creates a new control point along the curve. Ctrl-Clicking on a control point deletes the control point.

The source plane may also have fixed control points that are guaranteed to be on the curve. Clicking a second time on a control point results in it becoming a fixed control point which is colored blue. This only applies to the source plane because fixed points within paths result in unacceptable amounts of deformation, with the resulting object folding over on itself.

In order to produce a closed object, the source must form a closed curve.

A slider is provided to adjust the detail level of the created object.

The source can be scaled as it is moved along the path by setting a Scale factor. It also can be twisted as it moves along the path by setting a Rotate factor.

As an alternative, you may choose to use N-Spline curves or Bezier curves. Bezier is a smoother curve, but N-Spline control points are guaranteed to be on the curve produced.

Click Button-SaveSmall.gif (149 bytes) to save.

Click Button-DeleteSmall.gif (918 bytes) to reset the source and path.

Click Button-UndoSmall.gif (134 bytes) to undo the previous operation. Only modeling operations can be undone.

Click Button-RedoSmall.gif (134 bytes) to redo the last action undone.

Click Button-WireframeSmall.gif (139 bytes) to display the object in wireframe mode.

When you have completed your object simply close the Object Builder and your scene will be updated with the new object.


Using the Surface Tool

Using the Surface Tool (Available with 3D Canvas Pro)

ObjectBuildingTools-Surface.gif (17099 bytes)

The Surface Tool is primarily used to create organic objects.

Objects are built from a patchwork of surfaces. Surfaces are added to the object by clicking on Button-Surface.gif (129 bytes) .

Clicking on a surface exposes its control points (handles), which can then be dragged to deform the surface. Selecting a control point on an edge and clicking Button-SurfaceClone.gif (936 bytes) results in the current surface being cloned and glued to the selected edge.

A perspective view is provided as well as three orthographic views. A default background grid is provided, but is customizable. You may specify side, top and front view bitmap images of the object you want to create to replace this background grid. Providing a side view image of the object you are creating makes modeling much easier as you can use this image to "trace" your desired object.

The best procedure for creating a model from an image is to lay out one surface at a time matching edges to your side view image. Once you are satisfied with the position of the surfaces and the shape of the object, begin adding depth to your object. Adding depth is easiest with the orthographic side view of the object. Right click and drag on control points while watching the other three views for correct depth.

Control points glue to each other if placed near each other. If you right-click on a group of control points, you can choose to Un-group them.

There are two sliders available. The top slider is only available for NURBS surfaces. When a control point is selected it becomes active, and can be used to adjust the amount of weight given to a particular control point. An increased weight results in the control point drawing the surface closer to it. Note that this slider will only be shown when modeling with NURBS.

The bottom slider is used to adjust the quality level of the surfaces. Surfaces are rebuilt in real time as control points are moved. It helps to keep the quality level low during modeling to ensure frequent rebuilds. 3D Canvas will stop rebuilding surfaces in real-time if you raise the quality too high or if the surface you are working on has a large number of control points.

The default Surface type is a NURBS patch. Alternatively, you may use N-Spline patches or Bezier patches. For more information on Bezier curves and N-Spline curves see the Lathe or Extrude tools.

Button-SaveSmall.gif (149 bytes) saves the object.

Button-DeleteSmall.gif (918 bytes) deletes the active surface.

Button-UndoSmall.gif (134 bytes) undoes the previous operation. Only modeling operations can be undone.

Button-RedoSmall.gif (134 bytes) redoes the last action undone.

Button-XSmall.gif (908 bytes) constrains operations along the X axis.

Button-YSmall.gif (906 bytes) constrains operations along the Y axis.

Button-ZSmall.gif (905 bytes) constrains operations along the Z axis.

Button-SnapTo.gif (163 bytes) enables snap to grid.

Button-ResetGrid.gif (140 bytes) resets all grid textures to their default.

Button-SideView.gif (138 bytes) allows you to provide a replacement image for the grid. This image should be the side view of the object you wish to create.

Button-TopView.gif (135 bytes) allows you to provide a replacement image for the grid. This image should be the top view of the object you wish to create.

Button-FrontView.gif (134 bytes) allows you to provide a replacement image for the grid. This image should be the front view of the object you wish to create.

Button-ShowAllHandles.gif (935 bytes) displays all control points for all surfaces. Having all control points displayed causes significant performance degradation, but is useful for when you want to glue control points together.

Button-Mesh.gif (963 bytes) displays solid surfaces.

Button-Translucent.gif (968 bytes) displays translucent surfaces.

Button-Mesh.gif (963 bytes) displays the surfaces in wireframe.

Button-Hide.gif (940 bytes) hides all surfaces.

Button-Cage.gif (938 bytes) displays the surfaces' control point cage.

Button-SurfaceColor.gif (295 bytes) paints each surface a unique color.

Button-Surface.gif (129 bytes) adds a new surface to the object. This surface will be made up of 16 control points. Surfaces with more control points can be created by merging surfaces.

Button-SurfaceClone.gif (936 bytes) clones the active surface and glues the clone to the selected surface. Select a control point on the edge of an existing surface to glue the cloned surface to that edge. If no control point is selected, 3D Canvas will attempt to glue to the most appropriate edge.

Button-DivideSurface.gif (941 bytes) divides the selected surface into four surfaces.

Button-DivideSurfaceHorizontal.gif (934 bytes) divides the selected surface horizontally into two surfaces.

Button-DivideSurfaceVertical.gif (941 bytes) divides the selected surface vertically into two surfaces.

Button-Toolbar-Boolean-Merge.gif (924 bytes) merges two surfaces. To merge two surfaces, click on a surface, then click Button-Toolbar-Boolean-Merge.gif (924 bytes), and finally on a second surface. The surfaces must meet along an edge to be merged.

Button-MirrorSmall.gif (143 bytes) mirrors all surfaces along the z axis. Once you have completed a side view of your object, you can use this to mirror the completed surfaces.

When you have completed your object simply close the Object Builder and your scene will be updated with the new object.


Using the Text Tool

ObjectBuildingTools-Text.gif (11618 bytes)

The Text Tool takes source text that you provide and sweeps it through space along a path you define. The volume swept through becomes a solid text object.

The Text Tool is made up of two panes. The first pane is the object preview, which displays the object created. The second pane is the path grid which is used to define the path through space of the text.

The path is defined using control points. A series of control points are connected to create the path. Control points are added by clicking on the grid. The first control point is colored green. Each additional point added is colored white. The points are connected using a B-Spline curve. This form of curve has a start control point and end control point that are guaranteed to be on the curve, but any other control points act as magnets attracting the curve in their direction.

Shift-Clicking on a control point creates a new control point along the curve. Ctrl-Clicking on a control point deletes the control point.

A slider is provided to adjust the detail level of the created object.

The text can be scaled as it is moved along the path by setting a Scale factor. It also can be twisted as it moves along the path by setting a Rotate factor.

As an alternative, you may choose to use N-Spline curves or Bezier curves. Bezier is a smoother curve, but N-Spline control points are guaranteed to be on the curve produced.

Click Button-SaveSmall.gif (149 bytes) to save.

Click Button-DeleteSmall.gif (918 bytes) to reset the object

Click Button-UndoSmall.gif (134 bytes) to undo the previous operation. Only modeling operations can be undone.

Click Button-RedoSmall.gif (134 bytes) to redo the last action undone.

Click Button-WireframeSmall.gif (139 bytes) to display the object in wireframe mode.

When you have completed your object simply close the Object Builder and your scene will be updated with the new object.


Using Object Libraries

Panel-Components-ObjectLibrary.gif (9345 bytes)

Object libraries are collections of commonly used objects.

Click Button-Panel-ObjectLibrary.gif (145 bytes) to show the Object Library panel. Or select the Component Tab Button-Construction-Component.gif (1131 bytes) to show all component sub-panels.

Click Button-OpenSmall.gif (177 bytes) to open an object library. To create a new library enter a name for the new library in the file selection window. The drop-down box provides quick access to all object libraries that are in the same folder as the active object library.

Click Button-NewSmall.gif (138 bytes) to add an object to the library. This will allow you to select a 3D Canvas Object File to load into the Object Library. Alternatively, you can right click on an object and select Add to Object Library.

Click Button-DeleteSmall.gif (918 bytes) to delete the selected object from the library.

Click Button-More.gif (894 bytes) to show more objects.

Click Button-Less.gif (891 bytes) to show fewer objects.

To add an object to your scene, click on an object and drag it onto your scene. This will make a copy of it in your scene.


Modifying Scene Components

You can modify Scene Components using a number of different methods.

3D Canvas provides a number of Tools that can be used to select, paint, move and deform objects.

Also, there are a number of other operations that can be applied to objects, including Object Operations, Skeletal Operations, Boolean Set Operations and the ability to clone objects.


Using Tools

Button-Toolbar-Select.gif (187 bytes) is the Component Selection tool. Clicking and dragging on a component within the scene results in the component being moved.

The Edit Control is also displayed when an object is selected, which provides additional editing functions.

Selecting an object with this tool makes available any Operations, Boolean Operations or other operations that apply to the object.

Alt-Selecting with this tool not only selects the object, but also any sibling objects and child objects. This is primarily used for scaling, deleting, copying compound-objects. It can also be used to add compound-objects to the object library. Operations and most other operations do not apply to compound-objects.

Double-Clicking on an object opens the object's source, which can then be updated. If an object's source is updated, any Operations or Boolean Operations will be reapplied to the updated object.

Button-Toolbar-SelectFace.gif (906 bytes) is the Point and Face Selection Tool. With this tool, the points, edges and faces that make up an object can be manipulated. Clicking and dragging a face or point results in the selection being moved.

As you move your mouse of the object points, edges and faces will be highlighted. Clicking will select the highlighted item.

Shift-selecting is used to select multiple items. Ctrl-selecting results in the selected item being toggled. Alt-selecting with this tool will select all faces that point in the same direction. Ctrl-Alt-selecting with this tool will select all faces that use the same material.

The Edit Control is also displayed when a point, edge or face is selected, which provides additional editing functions.

Selecting a point, edge or face with this tool makes available any Operations that apply to the selection.

Note that manipulating points, edges or faces can result in objects which do not render as expected. Non-planar polygons cannot be guaranteed to be rendered as intended. To correct this problem use the Triangulate Operation.

Button-Toolbar-FaceGroupSelectionTool.gif (911 bytes) is the Group Selection Tool. Draw a rectangle with this tool, and it will select all points within the selection rectangle. Only faces from one object at a time may be selected.

Shift-Selecting with this tool will select the faces with the selection rectangle.

Alt-Selecting with this tool will select not only select the visible points/faces, but also the points/faces on the other side of the object.

The Edit Control is also displayed when a face or point is selected, which provides additional editing functions.

Selecting with this tool makes available any Operations that apply to the selection.

Button-Toolbar-OperationAdjustTool.gif (912 bytes) is the Operation Adjustment Tool. Many Operations can be adjusted after they have been applied. For instance, an object that has has been Bent using the Bend operation can have the amount of the bend scaled using this tool.

Selecting an object with this tool will display the standard Edit Control. Note that not all operations support the Move/Scale/Rotate functions of the Edit Control. Only those Edit Control functions that apply to the currently active Operation of the object will be displayed.

Alt-Selecting with this tool enables not only the current Operation for adjustment, but also any other like-Operations that immediately precede the current Operation in the Layers List.

This tool is primarily used for animation purposes. For example, the effect of a Bend Operation can easily be adjusted over time to provide a varying amount of bend depending on the time within the animation.

Button-Toolbar-Deform.gif (934 bytes) is the Deform tool. Clicking and dragging an object results in the object being deformed. The range of effect can be set using the Deform Tool options, which can be displayed by right-clicking.

Button-Toolbar-Shift.gif (923 bytes) is the Shift tool. Clicking and dragging an object within the scene results in it being moved relative to its frame. This is particularly useful when there are multiple items on the same frame. This permits an object to be shifted, without affecting its siblings.

Ctrl-clicking and dragging results in the object's frame being moved without affecting the position of the object. This is typically used to set the point of rotation for an object.

Button-Toolbar-Paint.gif (941 bytes) is the Face Painting tool. Clicking on a face results in the face being painted with the current material. Clicking and dragging results in multiple faces being painted with the current material.

Button-Toolbar-FillTool.gif (941 bytes) is the Fill tool. Clicking on an object results in the object being filled with the current material. Textures may be applied perpendicular to the x-z plane or applied oriented based on the face clicked. This behavior is set with the Material Palette's Apply Relative options.

Button-Toolbar-SampleTool.gif (934 bytes) is the Material Sample Tool. Clicking on an object will copy the current material for that selected point to the Material Palette.

Button-Toolbar-ShadowTargetSelection.gif (923 bytes) is the Shadow Target Selection Tool. Shadows in 3D Canvas are simulated, and can only lie on a single plane. This tool is used to select the plane on which the shadow should fall.

Button-Toolbar-RotationAxisTool.gif (925 bytes) is the Rotation Axis Tool. It is used to adjust the orientation of the rotation axis. This should be used in Orthographic views since it can be quite difficult to judge the orientation in perspective mode. The Rotational Velocity for an object is set with the Object Properties which can be viewed by right clicking on an object and selecting Properties.

Button-Toolbar-Navigate.gif (919 bytes) is the Navigation tool. Clicking and dragging on the scene results in scene navigation.


Using Object Operations

Panel-Operations.gif (4898 bytes)

The Operation Panel is used to Apply Object Operations and Manage Object Layers. It is made up of two sub-panels, the Object Operations and Object Layers sub-panels.

As with all of the Construction Panels (Material, Component, Operation and Hierarchy) there are two ways to view the Operation Panel, in a fully expanded state by choosing the Operation Tab Button-Construction-Operation.gif (1133 bytes) or in a customizable state by selecting Customize Panels Button-Construction-Customize.gif (1126 bytes).

Click Button-Panel-Operations.gif (155 bytes) to show the Operations sub-panel. Or select the Operation Tab Button-Construction-Operation.gif (1133 bytes) to show all Operation sub-panels.

Click Button-Panel-Layers.gif (135 bytes) to show the Layers sub-panel. Or select the Operation Tab Button-Construction-Operation.gif (1133 bytes) to show all Operation sub-panels.


Applying Operations

Panel-operations-operations.gif (2575 bytes)

Operations are used to modify the attributes of an object. For example, the Bend Operation is used to Bend an Object, the Fill Material Operation is used to fill the object with a material etc.

Click Button-Panel-Operations.gif (155 bytes) to display the Object Operations panel. Or select the Operation Tab Button-Construction-Operation.gif (1133 bytes) to show all Operation sub-panels.

Operations may operate on Objects, Faces or Points. Only those operations that apply to the current selection will be available

Detail Operations

operation-Bevel.gif (924 bytes) operation-Divide.gif (522 bytes) operation-Smooth.gif (525 bytes) Operation-Edge.gif (110 bytes) operation-Extrude.gif (924 bytes) operation-Optimize.gif (521 bytes) operation-Solidify.gif (523 bytes) operation-SplitPoint.gif (143 bytes) operation-Tip.gif (529 bytes) operation-Triangulate.gif (523 bytes) operation-Trim.gif (912 bytes) Operation-Weld.gif (108 bytes)

Detail Operations are used to add or remove detail from an object. They affect not only the shape of the object, but also the number of faces and points

operation-Bevel.gif (924 bytes) Bevel (Available with 3D Canvas Pro)

Bevels the selected faces.

If you do not have 3D Canvas Pro, you can bevel edges using the Extrude operation.

Tip7a.gif (4470 bytes) Tip7b.gif (5471 bytes)

operation-Divide.gif (522 bytes) Divide (Available with 3D Canvas Pro)

Divides the selected faces or edges.

Tip8a.gif (420 bytes) Tip8b.gif (501 bytes)

operation-Smooth.gif (525 bytes) Smooth

Divides the faces that make up the selected object and smoothes it.

Tip12a.GIF (6856 bytes) Tip12b.gif (8480 bytes)

Operation-Edge.gif (110 bytes) Edge (Available with 3D Canvas Pro)

Creates an edge between two selected points.

Tip17a.gif (420 bytes) Tip17b.gif (462 bytes)

operation-Extrude.gif (924 bytes) Extrude

Extrudes and optionally Bevels the selected faces.

Tip3a.gif (4690 bytes) Tip3b.gif (5021 bytes)

operation-Optimize.gif (521 bytes) Optimize (Available with 3D Canvas Pro)

Optimizes the geometry of the object. This often results in a smaller number of faces, but may also correct rendering problems that result from deformation, point editing and face editing.

It is also useful to optimize objects prior to Boolean set operations. This is likely to be useful when objects have been deformed, point edited or face edited.

Tip14a.gif (460 bytes) Tip14b.gif (420 bytes)

operation-Solidify.gif (523 bytes) Solidify (Available with 3D Canvas Pro)

Solidifies an object. Often when objects are imported from other 3D modeling programs, the objects are not solid. This operation attempts to fill any holes found. If this Operation does not make the object solid, or makes it even less solid, try using the Triangulate Operation on the object first.
Tip13a.gif (4528 bytes) Tip13b.gif (4706 bytes)

operation-SplitPoint.gif (143 bytes) Split (Available with 3D Canvas Pro)

Splits the selected point or points.

Tip15a.gif (4398 bytes) Tip15b.gif (4618 bytes)

operation-Tip.gif (529 bytes) Tip (Available with 3D Canvas Pro)

Creates Tips on the selection.

Tip5a.gif (6770 bytes) Tip5b.gif (9203 bytes)

operation-Triangulate.gif (523 bytes) Triangulate (Available with 3D Canvas Pro)

Triangulates the selection. This is commonly used in conjunction with the Solidify Object Operation to correct problems with geometries imported from other 3D modeling programs.

Tip10a.gif (420 bytes) Tip10b.gif (460 bytes)

operation-Trim.gif (912 bytes) Trim (Available with 3D Canvas Pro)

Trims the selection.

Tip6a.gif (9203 bytes) Tip6b.gif (8871 bytes)

Operation-Weld.gif (108 bytes) Weld (Available with 3D Canvas Pro)

Welds selected points into a single point.

Tip18a.gif (4398 bytes) Tip18b.gif (4928 bytes)

Deform Operations

operation-Bend.gif (513 bytes) Operation-Puff.gif (929 bytes) operation-Center.gif (528 bytes) Operation-Flatten.gif (148 bytes) operation-Invert.gif (516 bytes) operation-Mirror.gif (525 bytes) operation-Scale.gif (522 bytes) operation-Shear.gif (501 bytes) operation-Shift.gif (518 bytes) operation-SnapScale.gif (531 bytes) operation-Taper.gif (516 bytes) operation-Twist.gif (511 bytes)

Deform Operations change only the shape of an object.

operation-Bend.gif (513 bytes) Bend

Bends the selection.

Tip16a.gif (5043 bytes) Tip16b.gif (4985 bytes)

Operation-Puff.gif (929 bytes) Bulge (Available with 3D Canvas Pro)

Bulges the selected object.

Tip31a.gif (4343 bytes) Tip31b.gif (4489 bytes)

operation-Center.gif (528 bytes) Center (Available with 3D Canvas Pro)

Centers the selection on its frame.

Tip27a.gif (2872 bytes) Tip27b.gif (3134 bytes)

Operation-Flatten.gif (148 bytes) Flatten (Available with 3D Canvas Pro)

Flattens the selected object.

Tip19a.gif (5043 bytes) Tip19b.gif (3317 bytes)

operation-Invert.gif (516 bytes) Invert

Inverts the object. This results in the object becoming inside-out, or if the object was already inside-out, it will become right-side out. This is commonly used to correct problems with geometries imported from other 3D modeling programs.

Tip34a.gif (4395 bytes) Tip34b.gif (4311 bytes)

operation-Mirror.gif (525 bytes) Mirror (Available with 3D Canvas Pro)

Mirrors the selected object along the Z axis.

Tip26a.gif (4566 bytes) Tip26b.gif (4440 bytes)

operation-Scale.gif (522 bytes) Scale (Available with 3D Canvas Pro)

Scales the selection.

Tip24a.gif (4395 bytes) Tip24b.gif (4272 bytes)

operation-Shear.gif (501 bytes) Shear (Available with 3D Canvas Pro)

Shears the selection.

Tip22a.gif (5043 bytes) Tip22b.gif (5241 bytes)

operation-Shift.gif (518 bytes) Shift (Available with 3D Canvas Pro)

Shifts the selection.

Tip33a.gif (3134 bytes) Tip33b.gif (2872 bytes)

operation-SnapScale.gif (531 bytes) Snap-Scale (Available with 3D Canvas Pro)

Snaps the size of the selected object to the Snap To Interval.

Tip28a.gif (3955 bytes) Tip28b.gif (4518 bytes)

operation-Taper.gif (516 bytes) Taper

Tapers the selection.

Tip25a.gif (5043 bytes) Tip25b.gif (5784 bytes)

operation-Twist.gif (511 bytes) Twist (Available with 3D Canvas Pro)

Twists the selection.

Tip29a.gif (4864 bytes) Tip29b.gif (6678 bytes)

Miscellaneous Operations

operation-Fill.gif (535 bytes) Operation-UnWrap.gif (197 bytes) Operation-UVMap.gif (197 bytes) operation-Burst.gif (522 bytes) operation-Crease.gif (514 bytes) Operation-Particle.gif (507 bytes) Operation-Reduce.gif (521 bytes) Operation-Swirl.gif (167 bytes)

operation-Fill.gif (535 bytes) Material-Fill

Fills the selection with the current material from the Material Palette.

Typically this should be the final or near-final operation applied to an object since many Operations destroy any material applied. If you decide to apply a destructive operation after the material, you can move the material operation within the list of layers.

Tip32a.gif (6923 bytes) Tip32b.gif (8327 bytes)

Operation-UnWrap.gif (197 bytes) Unwrap (Available with 3D Canvas Pro)

The Unwrap operation is used to create a texture that can be painted in a Paint program and applied to an object.

Tip36a.gif (11158 bytes) Tip36b.gif (6022 bytes)

Operation-UVMap.gif (197 bytes) UV Map (Available with 3D Canvas Pro)

Fills the selection and permits manipulation of the created texture coordinates.

Tip37a.gif (6922 bytes) Tip37b.gif (13640 bytes)

operation-Burst.gif (522 bytes) Burst

Burst the selected object.

Tip38a.gif (3649 bytes) Tip38b.gif (6863 bytes)

operation-Crease.gif (514 bytes) Crease

Adjusts the creasing of the selected object.

Tip4a.gif (6291 bytes) Tip4b.gif (5021 bytes)

Operation-Particle.gif (507 bytes) Particle (Available with 3D Canvas Pro)

Apply a particle effect using the the selected object as the base particle.

Tip39a.gif (4170 bytes) Tip39b.gif (4841 bytes)

Operation-Reduce.gif (521 bytes) Reduce (Available with 3D Canvas Pro)

Reduces the number of faces and points in an object while maintaining object detail.

In the example below an imported object had its point count reduced from 6000 to 1000 with little affect on the shape of the object.

Tip40a.gif (3834 bytes) Tip40b.gif (3765 bytes)

Operation-Swirl.gif (167 bytes) Swirl

Swirls the selected object.

Tip41a.gif (1829 bytes) Tip41b.gif (3518 bytes)


Managing Object Layers

Panel-Operations-Layers.gif (2696 bytes)

Objects can have a number of Operations or Boolean Operations applied to them. These operations are referred to as "Layers". These layers are retained and many can be updated after application. If you update a operation, all operations applied after will be re-applied. This allows for fine tuning of modifications to objects and animation of operation effects.

While in Animation Mode, only those operations that were applied in Animation Mode will be displayed. While in Modeling Mode, only those operations that were applied in Modeling Mode will be displayed. This is done to make it clear which operations can be animated, since only Operations applied in Animation Mode can be animated.

Click Button-Panel-Layers.gif (135 bytes) to display the Object Layers panel. Or select the Operation Tab Button-Construction-Operation.gif (1133 bytes) to show all Operation sub-panels.

Clicking on a layer will display the selected object in the state it was when that operation was applied. Clicking on a Material layer will copy the material applied to the Material Palette so that you can update it.

Click Button-Operation-Update.gif (515 bytes) to update the current layer. This will only be displayed if the Layer supports this operation. This button is also available for the source object so that you can open and update the source object.

Click Button-Operation-Compact.gif (519 bytes) to compact the current layer and all layers below the current layer in to a single layer. This is used to reduce the disk storage required for the object. Layers are cached and as a result, files can get very large.

Click Button-Operation-Up.gif (903 bytes) to move the selected layer up in the layers list. The order in which Operations are applied does affect how the final object will look.

Click Button-Operation-Down.gif (507 bytes) to move the selected layer down in the layers list.

Click Button-DeleteSmall.gif (918 bytes) to delete the current layer.

Click Button-More.gif (894 bytes) to show more layers.

Click Button-Less.gif (891 bytes) to show fewer layers.

Symbol-Operation-Mesh.gif (878 bytes) indicates that the layer is applied to an object.

Symbol-Operation-Face.gif (862 bytes) indicates that the layer is applied to a face or selection of faces.

Symbol-Operation-Point.gif (848 bytes) indicates that the layer is applied to a point or selection of points.

Symbol-Operation-NonDestructive.gif (861 bytes) indicates a non-destructive layer. This means that it does not change the number of faces or points in the object.

Symbol-Operation-Destructive.gif (884 bytes) indicates a destructive layer. This means that the number of faces and/or points in the object is changed by this layer. Operations applied to a selection of faces or points cannot be reapplied if a operation earlier in the list is updated and the result is that the number of faces or points changes.

Symbol-Operation-Active.gif (890 bytes) indicates an active layer. A layer can be made inactive by clicking on the check box.

Symbol-Operation-InActive.gif (883 bytes) indicates an non-active layer. A layer can be made active by clicking on the check box.


Using the Skeletal Operations

Selecting a Skin enables the Button-Toolbar-Relax.gif (158 bytes) button. Clicking this button will relax the skin to the state it was in when it was attached to its bones.

Selecting a bone will enable the Button-Toolbar-AttachSkin.gif (151 bytes) button. Clicking this button will attach the nearest object as a Skin and open the Bone Effect window which allow you to specify the range of effect of the selected bone.


Applying Boolean Set Operations

Select an object.

Click Button-Toolbar-Boolean-Merge.gif (924 bytes) and then a second object to merge the two objects. This differs from a union in that it does not create any new faces or points, but simply creates a single object from the two. Also, all material information is retained.

Tip23a.gif (5248 bytes) Tip23b.gif (5248 bytes)

3D Canvas Pro Features

Click Button-Toolbar-Boolean-Union.gif (929 bytes) and then a second object to create a new object from the union of the two objects.

Tip21a.gif (5248 bytes) Tip21b.gif (5121 bytes)

Click Button-Toolbar-Boolean-Intersection.gif (930 bytes) and then a second object to create a new object from the intersection of the two objects.

Tip20a.gif (6007 bytes) Tip20b.gif (3959 bytes)

Click Button-Toolbar-Boolean-Subtraction.gif (934 bytes) and then a second object to subtract the first from the second.

Tip9a.gif (4473 bytes) Tip9b.gif (4378 bytes)

Click Button-Toolbar-Boolean-Blend.gif (935 bytes) and then a second object to blend the two objects. This can be a time consuming task.

Tip30a.gif (6983 bytes) Tip30b.gif (6868 bytes)

Click Button-Toolbar-Boolean-Bridge.gif (941 bytes) and then a second object to create a single object with a bridge between the two objects. Options are available for the bridge effect by right-clicking. This can be a time consuming task.

Tip35a.gif (6953 bytes) Tip35b.gif (7246 bytes)

It is also useful to triangulate objects prior to Boolean set operations if an object has been deformed, point edited or face edited. This will result in faster and more accurate results.


Using the Clone Operation

Using the Clone Operation (Available with 3D Canvas Pro)

The Clone operation duplicates the selected object.

Cloning options can be displayed by right-clicking on Button-Toolbar-Duplicate.gif (939 bytes).

Tip11a.gif (3664 bytes) Tip11b.gif (6877 bytes)


Materials Overview

Panel-Materials.gif (30609 bytes)

The material panel is used to create and manage materials.

It is made up of a series of sub-panels, including the Material Palette, Texture Library, and Material Library sub-panels.

As with all of the Construction Panels (Material, Component, Operation and Hierarchy) there are two ways to view the Material Panel, in a fully expanded state by choosing the Material Tab Button-Construction-Material.gif (1138 bytes) or in a customizable state by selecting Customize Panels Button-Construction-Customize.gif (1126 bytes).

Click Button-Panel-Material.gif (138 bytes) to show the Material Palette sub-panel. Or select the Material Tab Button-Construction-Material.gif (1138 bytes) to show all Material sub-panels.

Click the Texture Library's Button-RollDown.gif (95 bytes) to show the Texture Library sub-panel. Click Button-RollUp.gif (93 bytes) to hide the panel. Or select the Material Tab Button-Construction-Material.gif (1138 bytes) to show all Material sub-panels.

Click Button-Panel-MaterialLibrary.gif (151 bytes) to show the Material Library sub-panel. Or select the Material Tab Button-Construction-Material.gif (1138 bytes) to show all Material sub-panels.


Using the Material Palette

Panel-Materials-Palette.gif (13672 bytes)

Materials can be thought of as "paint" for 3D objects. A material is made of a number of attributes including color, transparency, specularity (shininess), and a texture (bitmap).

Click Button-Panel-Material.gif (138 bytes) to show the Material Palette panel. Or select the Material Tab Button-Construction-Material.gif (1138 bytes) to show all Material sub-panels.

The Material Palette includes a material preview. As you change material attributes, the material preview is updated to show you how your material will look when applied to an object.

A material is applied to an object by using the Paint, Oriented Fill or Fill tools.

Color Selection

Panel-Materials-Palette-Color.gif (1034 bytes)

A color may be selected by clicking the color preview, clicking on the Button-Material-Color.gif (898 bytes) Select Color button or by selecting a named color from the color list.

To reset the color to the default click the Button-DeleteSmall.gif (918 bytes) Reset Color button.

Texture Selection

Panel-Materials-Palette-Texture.gif (3754 bytes)

A texture can be selected by clicking on the texture preview, by clicking the Button-OpenSmall.gif (177 bytes) Select Texture button or by selecting a texture from the Texture Library.

To reset the texture to the default click the Button-DeleteSmall.gif (918 bytes) Reset Texture button.

The PNG graphics file format includes translucency information. If you select a PNG texture its tranclucency information will also be extracted.

POVRay users please note that POVRay does not support JPG format images as textures.

Secondary Texture Selection

Panel-Materials-Palette-SecondaryTexture.gif (4122 bytes)

A second texture can be selected. If selected, this texture will be blended with the primary texture to create a new texture. A secondary texture can be selected by clicking on the texture preview, by clicking the Button-OpenSmall.gif (177 bytes) Select Texture button or by selecting a texture from the Texture Library.

You can also set a translucent factor for the secondary texture. A larger amount results in less of the secondary texture being visible in the blended texture.

To reset the secondary texture to the default click the Button-DeleteSmall.gif (918 bytes) Reset Texture button.

POVRay users please note that POVRay does not support JPG format images as textures.

Translucency Map Selection

Panel-Materials-Palette-Translucent.gif (3973 bytes)

A translucency map can be selected. If selected, this texture is used to specify varied translucency for the material. The translucency map can be selected by clicking on the translucency map preview, by clicking the Button-OpenSmall.gif (177 bytes) Select Texture button or by selecting a texture from the Texture Library.

Translucency can range from white indicating completely opaque to black indicating transparent.

To reset the translucency map to the default click the Button-DeleteSmall.gif (918 bytes) Reset Texture button.

The PNG graphics file format includes translucency information. If you select a PNG texture only the translucent part will be extracted.

POVRay users please note that POVRay does not support JPG format images as textures. Also note that POVRay's translucency information is reversed so a white pixel indicates transparent and a black pixel indicates opaque.

Other Material Attributes

Button-TextureFlipHorizontal.gif (908 bytes) flips the texture horizontally.

Button-TextureFlipVertical.gif (911 bytes) flips the texture vertically.

Button-Material-TextureCrop.gif (956 bytes) displays a window that allows you to crop the texture.

Button-Material-Raytrace.gif (135 bytes) displays a window that allows you to select additional raytracing material attributes. (Available with 3D Canvas Pro)

Button-PreviewPrimitive.gif (687 bytes) displays a window that allows you to select an alternate preview object.

Button-Material-WrapWorldOriented.gif (131 bytes) indicates that the Fill Tool Button-Toolbar-FillTool.gif (941 bytes) should orient the texture relative to the scene.

Button-Material-WrapFaceOriented.gif (903 bytes) indicates that the Fill Tool Button-Toolbar-FillTool.gif (941 bytes) should orient the texture relative to the point selected with the Fill Tool.

Button-Material-WrapCameraOriented.gif (942 bytes) indicates that the Fill Tool Button-Toolbar-FillTool.gif (941 bytes) and Material Fill Operation should orient the texture relative to the Animation Camera. This option is only available in Animation Mode and when applied to an object is only updated during animation or snapshot recording.

Button-WrapCylinder.gif (919 bytes) applies the texture to the preview object with a cylindrical wrap.

Button-WrapSphere.gif (917 bytes) applies the texture to the preview object with a spherical wrap.

Button-WrapFlat.gif (912 bytes) applies the texture to the preview object with a flat wrap. Right Click to display flat wrap options.

Button-WrapChrome.gif (924 bytes) applies the texture to the preview object with a chrome wrap. This option is only available in Animation Mode and when applied to an object is only updated during animation or snapshot recording.

Button-ResetAll.gif (138 bytes) resets the material palette defaults.

Difuse, Specular, Ambient and Translucent attributes may also be set.

Click the Texture Library's Button-RollDown.gif (95 bytes) to show the Texture Library sub-panel. Click Button-RollUp.gif (93 bytes) to hide the panel.

Click the Texture Library's Button-Popup.gif (879 bytes) to show a popup window with all available textures in the active Texture Library.


Using Texture Libraries

Panel-Materials-TextureLibrary.gif (8290 bytes)

Texture libraries are collections of commonly used Textures. The Textures themselves are stored using the Windows Bitmap format.

Click Button-RollDown.gif (95 bytes) to show the Texture Library panel. Click Button-RollUp.gif (93 bytes) to hide the panel. Or select the Material Tab Button-Construction-Material.gif (1138 bytes) to show all Material sub-panels.

Click on a texture to copy it to the Material Palette.

Click Button-Popup.gif (879 bytes) to show a Popup window with all textures in the active Texture Library.

Click Button-OpenSmall.gif (177 bytes) to open a texture library. To create a new library enter a name for the new library in the file selection window. The drop-down box provides quick access to all texture libraries that are in the same folder as the active texture library.

Click Button-NewSmall.gif (138 bytes) to add an Texture to the library.

Click Button-DeleteSmall.gif (918 bytes) to delete the active Texture from the library. Note that this will not delete the underlying file, only the reference to it in the Texture library.

Click Button-More.gif (894 bytes) to show more Textures.

Click Button-Less.gif (891 bytes) to show fewer Textures.


Using Material Libraries

Panel-Materials-MaterialLibrary.gif (11357 bytes)

Material libraries are collections of commonly used materials.

Click Button-Panel-MaterialLibrary.gif (151 bytes) to show the Material Library panel. Or select the Material Tab Button-Construction-Material.gif (1138 bytes) to show all Material sub-panels.

Click on a material to copy it to the Material Palette.

Click Button-OpenSmall.gif (177 bytes) to open a material library. To create a new library enter a name for the new library in the file selection window. The drop-down box provides quick access to all material libraries that are in the same folder as the active material library.

Click Button-NewSmall.gif (138 bytes) to add the material currently active in the Material Palette to the library.

Click Button-DeleteSmall.gif (918 bytes) to delete the active material from the library.

Click Button-More.gif (894 bytes) to show more materials.

Click Button-Less.gif (891 bytes) to show fewer materials.


Hierarchy Overview

A 3D Canvas scene is made up of a hierarchy of frames. Frames in 3D Canvas are much like folders are in Windows. They are used to organize a scene, as folders are used to organize a hard drive in Windows. A frame can contain scene components and other frames just as a Windows folder can contain files and other folders. Frames and components can be moved within the Scene Hierarchy much like you would move folders and files with Windows.

The term "Frame" refers to "physical frame of reference". When you select and drag a scene component, you are not dragging the component, but its frame. This results in any frames or components contained within the frame being moved also. If you rotate a component, you are not rotating the object itself, but its frame. This behavior of frames is very useful since it permits the creation of complex objects made up of many parts that behave as a single object.

Frames are not normally visible within your scene. Only when you select an object does its frame, displayed as a small yellow box, become visible.

If you need to adjust the position of an object relative to its frame rather than the frame itself, the Shift tool is provided. This tool is often used to produce objects that rotate about a point other than the object's center.

The Hierarchy Panel

Panel-Hierarchy.gif (2242 bytes)

The Hierarchy Panel displays the scene hierarchy. It also permits the hierarchy of the scene to be modified.

As with all of the Construction Panels (Material, Component, Operation and Hierarchy) there are two ways to view the Hierarchy Panel, in a fully expanded state by choosing the Hierarchy Tab Button-Construction-Hierarchy.gif (721 bytes) or in a customizable state by selecting Customize Panels Button-Construction-Customize.gif (1126 bytes).

Frames are represented within the scene hierarchy as yellow boxes.

Frames and Scene components may be moved within the hierarchy by dragging and dropping them onto a new frame. They may also be renamed as appropriate.

Clicking on an Object, Light, or Camera in the hierarchy results in that item being selected with the scene. Conversely, clicking on an item within the scene will select that item in the Hierarchy.

3D Canvas's drag and drop features apply to the Scene Hierarchy as well as the Scene. If you want, you can drag and drop a primitive, light, or other object directly on to the Scene Hierarchy Panel.

The Components menu is available by right-clicking on a scene component.

icon-Folder.gif (891 bytes) Frame

A frame may contain an object and any number of other frames. If a frame is moved, all of its child frames are moved also.

Icon-Mesh.gif (870 bytes) Object

An object created from primitives, the object building tools, or a predefined object.

Icon-Bone.gif (78 bytes) Bone

A Bone component.

Icon-Skin.gif (88 bytes) Skin

An object that has been attached to bones as a skin.

Icon-Light.gif (844 bytes) Light

A Light component.

Icon-Camera.gif (896 bytes) Camera

There is a single Animation Camera object within a scene. It is this camera's view that you will see if you record an animation.

Icon-Placeholder.gif (79 bytes) Placeholder

A placeholder for a jointed model limb. Placeholders are created as a convenience when importing BioVision Hierarchy files. BioVision Hierarchies files do not describe the appearance of the model itself, but only the position and length of the limbs. These placeholders are provided until you replace them with the limbs of your model.


Naming Scene Components

Click on the the item's name. Click a second time to make it modifiable. You may then enter a name you choose for that item.


Changing the Hierarchy of a Scene

You may drag any frame onto another frame to re-parent it. You may also drag any object on to a frame to change its parent.

Note that the root of the scene is a special case where select components that do not have a position are located.


Animation Overview

Objects within a 3D Canvas scene may be animated using key-frame based animation functions. A key-frame is a snapshot of how the scene looks at a point in time. The Animation Toolbar, if enabled, is located at the bottom of the 3D Canvas window, and contains all of the animation related functions.

Animations are played and recorded from the point of view of the Animation Camera. This Animation Camera is part of every scene, and can be animated as with any other object.

You may choose to view a scene through the Animation Camera, or the Layout Camera. The Layout Camera is not part of the scene and is used only for the purposes of providing an alternate view of the scene while setting up an animation. The Camera you choose to view through can be set by right-clicking anywhere on the scene and selection Camera from the pop-up menu.

The Animation Slider

Each position on the animation slider is a key-frame. You may set the position and orientation of the objects in your scene at each key-frame on the slider. When the animation is played, 3D Canvas will interpolate positions between these key-frames. Interpolation of position is based on Spline curves. You can create a straight-line path by creating sub-path key frames.

As you set-up your animation, the currently selected object's path is displayed as a positioning aid. Colored points indicate key-frame non-interpolated positions.

AnimationPath.gif (6772 bytes)

You can work with a sub-range of your animation by selecting a start point using the animation slider and shift-dragging the animation slider to the desired end point.

Animation Functions

Functions are included to play animations, record animations to video, and save an animation still frame image to a bitmap file.

Animation Mode

To enter animation mode, click the Button-Animation-Animate.gif (1005 bytes) button. When in animation mode, the animation functions become available.


Animating Component Positions

Each position on the animation slider is a key-frame time. You may set the position and orientation for each object at each key-frame time on the slider. When the animation is played, 3D Canvas will interpolate positions between these key-frames.

As you set-up your animation, the currently selected object's path is displayed as a positioning aid. Colored points indicate key-frame non-interpolated positions. A red point indicates a path origin, or sub-path origin. Sub-paths are used to indicate a non-curved point in the animation path.

AnimationPath.gif (6772 bytes)

Button-ResetAll.gif (138 bytes) resets all the key-frames for the scene. This results in the loss of all animation information for the scene.

Button-DeleteSmall.gif (918 bytes) resets the currently selected component's animation key-frames. This results in the loss of all animation information for the selected component.

Button-Animation-FrameKeyFrame-None.gif (908 bytes) will be in a "pushed" state whenever the object you are animating is at an interpolated position rather than a key-frame position. If not "pushed", you can click on this to cause the current animation time to use an interpolated position rather than a key-frame position.

Button-Animation-FrameKeyFrame-Standard.gif (129 bytes) will be in a "pushed" state whenever the object you are animating is at a key-frame position. If not "pushed", you can click on this to cause the current object's position to become a fixed non-interpolated position.

Button-Animation-FrameKeyFrame-Path.gif (129 bytes) will be in a "pushed" state whenever the object you are animating is at a path origin, or sub-path origin key-frame position. If not "pushed", you can click on this to cause the current key-frame position to be the beginning of a sub-path.

Button-Animation-FrameKeyFrame-CopyRight.gif (920 bytes) copies the current key-frame to one key-frame later in the animation. This is useful for adding pauses to animations.

Alt-clicking on Button-Animation-FrameKeyFrame-CopyRight.gif (920 bytes) will move the current key-frame to one key-frame later in the animation. Right-clicking on Button-Animation-FrameKeyFrame-CopyRight.gif (920 bytes) will give you the option of selecting a time to copy or move the key-frame.

Button-Animation-FrameKeyFrame-CopyLeft.gif (921 bytes) copies the current key-frame to one key-frame earlier in the animation. This is useful for adding pauses to animations.

Alt-clicking on Button-Animation-FrameKeyFrame-CopyLeft.gif (921 bytes) will move the current key-frame to one key-frame earlier in the animation. Right-clicking on Button-Animation-FrameKeyFrame-CopyLeft.gif (921 bytes) will give you the option of selecting a time to copy or move the key-frame.

Button-Animation-FrameKeyFrame-Repeat.gif (902 bytes) creates a repeating animation. All key-frames for the selected object will be repeated continuously. Note that the key-frame for the current time will be set to equal the first key-frame in the animation in order to create a continuos animation.

There are times where interpolation will produce unexpected results. Our animation interpolator must be given enough information to determine what it is you intend. For example, if you want an object to rotate an entire revolution, you must provide a minimum of 3 orientations for the object. If you give only two orientations, the interpolator cannot determine if you wanted the object to rotate a half revolution, and then back, or an entire revolution.

You may also set-up a component rotational velocity using the Properties window. The Properties window can be accessed by right-clicking on an object and selecting Properties. This rotational form of animation only occurs when you are playing or recording an animation.


Animating Operations

The effect of any Operation that has "Parameters" can be animated. A Parameter is an option that the Operation uses to determine how to affect the object. For example, the Material Fill operation has parameters of Color, Transparency etc. Virtually every Operation Parameter can be animated over time.

Each position on the animation slider is a key-frame time. You may change the parameters of the Operations for each object at each key-frame time on the slider. When the animation is played, 3D Canvas will interpolate between these key-frames.

Only Operations that have been applied in animation mode can be animated. There are two ways to change the parameters for a Operation.

1) The Update function of the Layers List will display the update function for operations.

2) The Adjust tool of the Edit Toolbar allows you to adjust the effect of operations using the edit control.

Note that simply applying another operation to an object at a second time in the animation will not produce an animated operation. It will simply apply another animatable operation. This allows for multiple operations of the same type to be applied to an object and animated independently.

Button-Animation-OperationKeyFrame-None.gif (921 bytes) will be in a "pushed" state whenever the object you are animating is at an interpolated position rather than a key-frame position. If not "pushed", you can click on this to cause the current animation time to use an interpolated position rather than a key-frame position.

Button-Animation-OperationKeyFrame-Standard.gif (926 bytes) will be in a "pushed" state whenever the object you are animating is at a key-frame position. If not "pushed", you can click on this to cause the current object's position to become a fixed non-interpolated position.

Button-Animation-OperationKeyFrame-Path.gif (926 bytes) will be in a "pushed" state whenever the object you are animating is at a path origin, or sub-path origin key-frame position. If not "pushed", you can click on this to cause the current key-frame position to be the beginning of a sub-path.

Button-Animation-OperationKeyFrame-CopyLeft.gif (929 bytes) copies the current key-frame to one key-frame later in the animation. This is useful for adding pauses to animations.

Alt-clicking on Button-Animation-OperationKeyFrame-CopyLeft.gif (929 bytes) will move the current key-frame to one key-frame later in the animation. Right-clicking on Button-Animation-OperationKeyFrame-CopyLeft.gif (929 bytes) will give you the option of selecting a time to copy or move the key-frame.

Button-Animation-OperationKeyFrame-CopyRight.gif (930 bytes) copies the current key-frame to one key-frame earlier in the animation. This is useful for adding pauses to animations.

Alt-clicking on will Button-Animation-OperationKeyFrame-CopyRight.gif (930 bytes) move the current key-frame to one key-frame earlier in the animation. Right-clicking on Button-Animation-OperationKeyFrame-CopyRight.gif (930 bytes) will give you the option of selecting a time to copy or move the key-frame.

Button-Animation-OperationKeyFrame-Repeat.gif (916 bytes) creates a repeating animation. All key-frames for the selected object will be repeated continuously. Note that the key-frame for the current time will be set to equal the first key-frame in the animation in order to create a continuos animation.


Viewing and Recording an Animation

Viewing an Animation

The controls for viewing animations are organized much like those of a VCR.

Button-Beginning.gif (932 bytes) Button-Back.gif (909 bytes) Button-Play.gif (908 bytes) Button-Stop.gif (907 bytes) Button-Forward.gif (911 bytes) Button-End.gif (918 bytes)

Button-Play.gif (908 bytes) plays the animation.

Button-Stop.gif (907 bytes) stops the playing of the animation.

Button-Beginning.gif (932 bytes) rewinds the animation to its beginning.

Button-End.gif (918 bytes) fast forwards the animation to its end.

Button-Back.gif (909 bytes) and Button-Forward.gif (911 bytes) step through the animation one key-frame at a time.

Playing and Recording an Animation

Button-Snapshot.gif (938 bytes) takes a snapshot image of the currently visible key-frame and saves it to a Windows bitmap file. You will be prompted for your snapshot preferences prior to the snapshot being taken.

Button-Animation-Ghost.gif (161 bytes) displays all animation key-frames simultaneously. 3D Canvas interpolated positions for objects are ghosted. The number of key-frames to display can be set using the Ghost options, which can be displayed by right-clicking.

Button-PlayFullScreen.gif (921 bytes) plays the animation at full screen so that you can use a third party application to capture a full screen image.

Button-Record.gif (942 bytes) plays the animation and records it to a Windows video file. You will be prompted for your recording preferences prior to the recording.

Button-Animation-Autorepeat.gif (120 bytes) enables automatic repetition of animations. When enabled an animation will loop continuously until either the Button-Stop.gif (907 bytes) stop button is clicked or the escape key is pressed.


Changing Animation Options

You may set the number of key-frames that you would like in your animation and the length of the animation by indicating how many key-frames are rendered per second.

Clicking Button-Animation-Properties.gif (942 bytes) on the Animation Toolbar displays the animation options.

Animation-Properties.gif (8011 bytes)

In addition to setting the total number of Animation Keys and Keys Per Second, you can also move or scale the animation sequence for frames or operations. To Scale an animation sequence, click on the final key-frame in the animation and drag to the key-frame where you would like the sequence to end. To Move an animation sequence, click anywhere else in the animation and drag.

Symbol-Animation-Continuous.gif (833 bytes) indicates that this is a non-repeating animation.

Symbol-Animation-Repeat.gif (842 bytes) indicates that this is a repeating animation.

Symbol-Animation-Frame.gif (879 bytes) in this sample this is a non-repeating frame animation with four key-frames that spans 9 seconds starting at time 0.

Symbol-Animation-Twist.gif (843 bytes) in this sample this is a repeating Twist operation on a Cube object with three key-frames that spans 5 seconds starting at time 2.

Symbol-Animation-Path.gif (840 bytes) indicates a path start or sub-path start key-frame.

Symbol-Animation-Standard.gif (840 bytes) indicates a standard key-frame.


Menus, Toolbars and Other Functions Overview

3D Canvas contains several menus and toolbars.

Menus contain functions related to file management, basic edit functions, the appearance of 3D Canvas and Help.

Toolbars contain a wide range of functions, and are used extensively in 3D Canvas since they provide quick access to commonly used functions.

Many of the Tool functions and Edit Control functions have variations that can be selected by holding down the Ctrl, Shift and/or Alt keys.

3D Canvas provides the ability to import and export many popular 3D file formats. But not all import and export formats are created equal, so selecting the most appropriate format can reduce the amount of time required touching up a model after import or export.


Using the Menus

There are five main menus available in 3D Canvas.

The File menu provides functions related to file management.

The Edit menu is used to select functions related to editing.

The View menu provides view options for 3D Canvas.

The Tools menu provides access to 3D Canvas scripting and application options.

The Help menu is used to access on-line help.

In addition to the standard menus there is also the Component popup menu which is displayed when you right-click on the scene. It provides a number of functions relating to camera position, editing, component properties etc.


The File Menu

The File menu is a standard Windows menu. It provides a number of functions related to file management.

New

Creates a new scene.

Open

Opens an existing scene.

Save

Saves the scene.

Save as...

Saves the scene as a new file.

Export

Exports the current scene to an alternate file format.

3D Canvas provides POVRay exporting. It also provides the ability to export individual objects to the DirectX format by right-clicking on an object and selecting Export Selection -> DirectX Object.

3D Canvas Pro provides additional export formats including DirectX, the preferred export format for 3D Canvas, 3D Studio, TrueSpace, and AutoCAD, Wavefront, WorldToolKit and RAW.

Import

Imports an object from an alternate file format.

The DirectX file format is the preferred import format for 3D Canvas. Other supported formats include 3D Studio, TrueSpace and AutoCAD.

3D Canvas Pro users have additional file import formats including BioVision Hierarchy Motion Capture, Wavefront, WorldToolKit and RAW.

Compress

Compresses the current file. This removes all cached layer information. This reduces the size of a 3D Canvas file considerably. This operation is typically done in order to make a file small for distribution.

This will make the loading of the file slow the next time the file is opened, since cache layer information will have to be restored.

Note that Compressing in conjunction with Zipping can reduce file size tremendously. A Compressed and Zipped file can be as little as 10% of the original file size.

Properties

Opens the File Properties window which provides a number options for the appearance of the scene including background color, image and fog properties.

Exit

Exits 3D Canvas. You will be prompted to save your scene if any changes have been made.


The Edit Menu

The Edit menu is a standard Windows menu. It provides a number of functions related to editing.

Undo

Undoes the previous operation. Only modeling operations can be undone. Animation, parenting and object naming operations cannot be undone. To undo a Boolean operation you will need to undo twice, once for each object.

Redo

Redoes the last action undone.

Copy

Copies the selected scene component to the clipboard.

Cut

Cuts the selected scene component to the clipboard.

Paste

Pastes the scene component currently in the clipboard onto the scene. If a component is active, this new component will become a child of the selected component.

Delete

Deletes the selected scene component.


The View Menu

The View menu is a 3D Canvas specific menu.

View Selection

Opens the View Selection window which provides several scene view configurations.

Construction Panels

Allows you to show/hide the Material Panel, Component Panel, Operation Panel and Hierarchy Panel.

Primary Toolbar

Allows you to show/hide the Primary Toolbar.

Edit Toolbar

Allows you to show/hide the Edit Toolbar.

Animation Toolbar

Allows you to show/hide the Animation Toolbar.

Status Bar

Allows you to show/hide the Status Bar.


The Tools Menu

The Tools menu is a 3D Canvas specific menu that provides access to 3D Canvas scripting and application options..

Run Script (Available with 3D Canvas Pro)

Runs the selected script. See Scripting for more information on 3D Canvas scripting.

Create Script (Available with 3D Canvas Pro)

Creates a new script. See Scripting for more information on 3D Canvas scripting.

Edit Script (Available with 3D Canvas Pro)

Edits the selected script. See Scripting for more information on 3D Canvas scripting.

Delete Script (Available with 3D Canvas Pro)

Deletes the selected script. See Scripting for more information on 3D Canvas scripting.

Options...

Opens the Options window which provides a number options for configuring how 3D Canvas works and looks.


The Help Menu

The Help menu is a standard Windows menu. It provides a number of help related functions.

Contents

Displays the contents of the 3D Canvas Help.

Search For Help On...

Displays the search function for the 3D Canvas Help.

Tutorials on the Web

Opens your default web browser and connects the Tutorials page of the Amabilis web site.

Tip of the Day

Displays a "Tip of the Day"

Amabilis on the Web

Opens your default web browser and connects the Amabilis web site.

Models and Textures on the Web

Opens your default web browser and connects the Media page of the Amabilis web site.

3D Canvas Upgrades

Opens your default web browser and connects the 3D Canvas Upgrades page of the Amabilis web site.

Also allows entry of registration codes for 3D Canvas upgrades.

About 3D Canvas...

Displays the About 3D Canvas window.


Component Menu

The Component Menu

The Component popup menu is displayed when you right-click on the scene. It provides a number of functions relating to camera position, editing, component properties etc.

View

Allows you to select either Perspective or Orthographic for the selected view panel.

Camera

Allows you to select whether the scene is viewed through the Animation Camera which is used to record animations or the Layout Camera which is used for scene layout.

Look at Scene

Positions the view camera so that it looks at the scene.

Look At

Positions the view camera so that it looks at the selected component.

Look With

Positions the view camera so that it looks from the position of the selected component along its orientation.

Copy

Copies the selected scene component to the clipboard.

Cut

Cuts the selected scene component to the clipboard.

Paste

Pastes the scene component currently in the clipboard onto the scene. If a component is active, this new component will become a child of the selected component.

Delete

Deletes the selected scene component.

Ungroup

Moves the selected scene component to its own frame in the scene hierarchy.

Make Sibling

Moves the selected scene component up one level in the scene hierarchy, making it a sibling of any components in its new frame.

Make Child

Moves the selected scene component to a new frame that is a child of the selected component's frame.

Add to Object Library

Adds the selected object to the object library.

Export Selection

Exports the selected object to either a 3D Canvas Object File (3DO) or a DirectX Object (X).

Users of 3D Canvas Pro can export the object as a DirectX Frame Hierarchy. This will include all key-frame positioning information for not only the object, but all of the objects "parts".

Users of 3D Canvas Pro can also export the object to the Microsoft Train Simulator format.

IK Joint

Allows you to enable/disable Inverse Kinematics for the active frame. You can specify more Inverse Kinematics properties by selecting Properties.

Show Shadow/Cast Shadow

Allows you to show/hide the shadow for the current object. Or, in the case of a light, specify whether it should cast shadows or not.

Visible

Allows you to show/hide a scene component.

Open Component Script (Available with 3D Canvas Pro)

Opens the animation script for the selected scene component. See Scripting for more information on 3D Canvas scripting.

Open Frame Script (Available with 3D Canvas Pro)

Opens the animation script for the parent frame of the selected scene component. See Scripting for more information on 3D Canvas scripting.

Open Source/Set Bone Effect

Opens the source of the current object/Opens the Bone Effect window for the selected bone.

Properties

Each scene component has associated properties that can be displayed and updated. The Properties window displays those properties and allows you to update many of them.


Using the Toolbars

The 3D Canvas toolbars provides quick access to key 3D Canvas functions.

There are two three toolbars available, the Primary Toolbar, the Edit Toolbar and the Animation Toolbar.


The Primary Toolbar

The Primary toolbar is located at the top of the screen, below the menu options.

File Functions

Button-New.gif (1005 bytes) creates a new scene.

Button-Open.gif (239 bytes) opens an existing scene.

Button-Save.gif (239 bytes) saves the scene.

Edit Functions

Button-Cut.gif (242 bytes) cuts the selected scene component to the clipboard.

Button-Copy.gif (247 bytes) copies the selected scene component to the clipboard.

Button-Paste.gif (277 bytes) pastes the scene component currently in the clipboard onto the scene. If a component is active, this new component will become a child of the selected component.

Button-Delete.gif (982 bytes) deletes the selected scene component.

Undo/Redo Functions

Button-Undo.gif (143 bytes) undoes the previous operation. Only modeling operations can be undone. Animation, parenting and object naming operations cannot be undone. To undo a Boolean operation you will need to undo twice, once for each object.

Button-Redo.gif (143 bytes) redoes the last action undone.

Constrain Options

Button-X.gif (139 bytes) constrains operations along the X axis.

Button-Y.gif (137 bytes) constrains operations along the Y axis.

Button-Z.gif (135 bytes) constrains operations along the Z axis.

Snap To Options

Button-SnapTo.gif (163 bytes) enables snap to grid.

Visibility Options

Button-Toolbar-ShowObjects.gif (926 bytes) makes all objects visible.

Button-Toolbar-ShowBones.gif (149 bytes) makes all bones visible.

Button-Camera.gif (164 bytes) makes the animation camera visible.

Button-Light.gif (138 bytes) makes all lights visible.

Button-Grid.gif (151 bytes) makes the grid visible.

Button-Path.gif (138 bytes) makes animation paths visible for the active object.

Button-Axis.gif (156 bytes) makes the scene axis visible and object axes visible for active objects.

Scene Rendering Options

Button-Toolbar-RenderSmooth.gif (176 bytes) causes objects to be smoothed when rendering.

Button-Wireframe.gif (151 bytes) causes objects to be rendered in wireframe.

Button-Fog.gif (158 bytes) causes atmosphere (fog) to be rendered.

Button-Image.gif (171 bytes) causes the background image to be rendered.

Button-Toolbar-RenderShadows.gif (930 bytes) causes shadows to be rendered.


The Edit Toolbar

The Edit toolbar is located along the right edge of the main window.

It contains the 3D Canvas Tools, Skeletal Operations, the Track Operation, Group Operation, Boolean Operations and the Clone Operation.


Applying a Track Operation

Tracking an Object

Select an object, click Button-Toolbar-Track.gif (153 bytes), and then a second object to cause the first object to track the second object.

This is particularly useful if you want a camera to always look at a particular object in a scene, or if you want a light to be pointed at a specific object in the scene no matter where the object moves.

To stop an object from tracking another select the object that is currently tracking, click Button-Toolbar-Track.gif (153 bytes), and then the grid.


Using Alternate Keyboard Functions

Many of the Tool functions and Edit Control functions have variations that can be selected by holding down the Ctrl, Shift and/or Alt keys.

The following tables show the standard 3D Canvas function and the variations that are available

Button-Toolbar-Select.gif (187 bytes) Component Selection Tool

 | None | Ctrl | Alt
Left-Click | Selects highlighted component. Dragging moves component along the X and Z axes. | Scales object equally in all directions/Adjusts light intensity/Adjusts camera field of view/Scales bone. | Selects highlighted object, all siblings, and all children
Right-Click | Shows popup menu. Dragging moves component along the Y axis. | Scales object equally in all directions/Adjusts light intensity/Adjusts camera field of view/Scales bone. |
Left-Double-Click | Opens selected object's source/Attaches skin to selected bone. |  |
Edit Control Axis | Rotates component around selected axis. | Rotates view around component. |
Edit Control Sphere | Rotates component around X and Y axes. | Rotates view around component. |
Edit Control XZ Plane | Moves component along X and Z axes. |  |
Edit Control YZ Plane | Moves component along Y axis. |  |
Edit Control XZ Scale Plane | Scales object along X and Z axes/Adjusts light Intensity/Adjusts camera field of view/Scales bone. | Scales object equally in all directions/Adjusts light intensity/Adjusts camera field of view/Scales bone. |
Edit Control YZ Scale Plane | Scales object along Y axis/Adjusts light intensity/Adjusts camera field of view/Scales bone. | Scales object equally in all directions/Adjusts light intensity/Adjusts camera field of view/Scales bone. |

Button-Toolbar-SelectFace.gif (906 bytes) Point and Face Selection Tool

 | None | Ctrl | Shift | Alt | Ctrl-Alt | Ctrl-Shift
Left-Click | Selects highlighted item. Dragging moves selection along the X and Z axes. | Toggles highlighted item. Dragging toggles multiple items. | Selects highlighted item. Dragging selects multiple items. | Selects all faces that point in the same direction as the selected face. | Selects all faces that use the same material as the selected face. | Moves selected face along its normal (the direction it faces).
Right-Click | Shows Popup Menu. Dragging moves selection along the Y axis. |  |  |  |  |
Left-Double-Click | Opens selected object's source |  |  |  |  |
Edit Control Axis | Rotates selection around selected axis. | Rotates view around object. |  |  |  |
Edit Control Sphere | Rotates selection around X and Y axes | Rotates view around object. |  |  |  |
Edit Control XZ Plane | Moves selection along the X and Z axes. |  |  |  |  |
Edit Control YZ Plane |  |  |  |  |  |
Edit Control XZ Scale Plane | Scales selection along X and Z axes. If a single face is selected, the face will be scaled perpendicular to its normal (the direction it faces). | Scales selection equally in all directions. If a single face is selected, the face will be scaled perpendicular to its normal (the direction it faces). |  |  |  |
Edit Control YZ Scale Plane | Scales selection along Y axis. If a single face is selected, the face will be scaled perpendicular to its normal (the direction it faces). | Scales selection equally in all directions. If a single face is selected, the face will be scaled perpendicular to its normal (the direction it faces). |  |  |  |

Button-Toolbar-FaceGroupSelectionTool.gif (911 bytes) Group Selection Tool

 | None | Shift | Alt | Shift-Alt
Left-Click-Drag | Selects points in the selection rectangle. | Selects faces that have centers in the selection rectangle. | Selects points in the selection rectangle. Includes points on faces that are facing away. | Selects faces that have centers in the selection rectangle. Includes those faces that are facing away.
Right-Click | Shows Popup Menu. |  |  |

Button-Toolbar-OperationAdjustTool.gif (912 bytes) Operation Adjustment Tool

 | None | Ctrl | Alt
Left-Click | Enables the current operation for adjustment. Dragging moves operation along the X and Z axes. | Scales operation along the X and Z axes. | Enables not only the current Operation for adjustment, but also any other like-Operations that immediately precede the current Operation in the Layers List.
Right-Click | Shows Popup Menu. Dragging moves operation along the Y axis. | Scales operation along the Y axis. |
Left-Double-Click | Opens object's source. |  |
Edit Control Axis | Rotates operation around selected axis. | Rotates view around object. |
Edit Control Sphere | Rotates operation around X and Z axes. | Rotates view around object. |
Edit Control XZ Plane | Moves operation along X and Z axes. |  |
Edit Control YZ Plane | Moves operation along Y axes. |  |
Edit Control XZ Scale Plane | Scales Operation along X and Z axes | Scale operation equally in all directions |
Edit Control YZ Scale Plane | Scales Operation along Y axis. | Scale operation equally in all directions |

Button-Toolbar-Shift.gif (923 bytes) Shift Tool

 | None | Ctrl
Left-Click/Drag | Shifts the object along X and Z axes without moving its frame. | Shifts the object's frame along the X and Z Axes without changing the object's position.
Right-Click/Drag | Shifts the object along the Y axis without moving its frame. | Shifts the object's frame along the Y Axis without changing the object's position.


Importing and Exporting

3D Canvas and 3D Canvas Pro provide the ability to import and export many popular 3D file formats. But not all import and export formats are created equal, and 3D Canvas' support of each format is not equal, so selecting the most appropriate format can reduce the amount of time required touching up a model after import or export.

What follows is a list of 3D export and import formats that are available with 3D Canvas and 3D Canvas Pro.

Export

 | Geometry | Material | Texture Mapping | Hierarchy | Animation | Lighting | Camera | Bones
DirectX (x) | Yes | Yes | Yes | Pro | Pro | N/A | N/A | Pro
POVRay/MegaPOV (pov) | Yes | Yes | Yes (UV Mapping with MegaPOV) | N/A | N/A | Yes | Yes | N/A
WorldToolKit (nff) | Pro | Pro | Pro | N/A | N/A | N/A | N/A | N/A
Wavefront (obj) | Pro | No | Pro | N/A | N/A | N/A | N/A | N/A
VRML (wrl) | Pro | Pro | Pro | No | No | No | No | N/A
3D Studio (3ds) | Pro | Pro | No | No | No | No | No | N/A
TrueSpace Object (cob) | Pro | Pro | No | No | No | No | No | N/A
AutoCad (dxf) | Pro | Pro | N/A | No | N/A | N/A | N/A | N/A
Raw (raw) | Pro | N/A | N/A | N/A | N/A | N/A | N/A | N/A
Microsoft Train Simulator (s) | Pro | Pro (textures only) | Pro | Pro | Pro | N/A | N/A | N/A

Import

 | Geometry | Material | Texture Mapping | Hierarchy | Animation | Lighting | Camera | Bones
DirectX (x) | Yes | Yes | Yes | Yes | No | N/A | N/A | No
BioVision (bvh) | N/A | N/A | N/A | Pro | Pro | N/A | N/A | Pro
WorldToolKit (nff) | Pro | Pro | Pro | N/A | N/A | N/A | N/A | N/A
Wavefront (obj) | Pro | No | Pro | N/A | N/A | N/A | N/A | N/A
3D Studio (3ds) | Yes | Yes | No | No | No | No | No | N/A
TrueSpace Object (cob) | Yes | Yes | No | No | No | No | No | N/A
AutoCad (dxf) | Yes | Yes | N/A | No | N/A | N/A | N/A | N/A
VRML (wrl) | Yes (version 1.0) | Yes (version 1.0) | No | No | No | No | No | N/A
POVRay (pov) | Yes (version 2.2) | Yes (version 2.2) | No | N/A | N/A | No | No | N/A
Raw (raw) | Pro | N/A | N/A | N/A | N/A | N/A | N/A | N/A


Using 3D Canvas Scripting

Using 3D Canvas Scripting (Available with 3D Canvas Pro)

3D Canvas Pro provides scripting capabilities through the Microsoft Windows Script Host. Programmers and would-be programmers can use this feature to write small programs to do useful things in 3D Canvas such as create objects, animate lighting, export scene information etc.

For example, a script could be written to animate the brightness of a light to create a strobe effect, or create a pulsating object or most anything that you would want. It also can be used to write export scripts, import scripts or create new primitive objects.

Scripts can be written in VBScript, JScript (JavaScript) or any other scripting language that supports the Windows Script Host. Microsoft provides considerable information on using VBScript and JScript on their Windows Script Technologies web site.

In 3D Canvas there are two types of scripts: General Purpose Scripts and Animation Scripts

General Purpose Scripts

The Tools menu provides the ability to create, edit, delete and run scripts. To create a new script, select Create Script. A script editing window will open that allows you to type in, or paste in, a script. After you save your script you can run it by selecting Run Script. The Tools menu also provides the ability to Edit and Delete scripts.

3D Canvas General Purpose Scripts are saved as simple text files and are located in the Scripts folder within the 3D Canvas program folder. These General Purpose scripts can be distributed to other users of 3D Canvas Pro. You can also edit these files with any editor you wish.

A script can be very simple. The following script is written in VBScript and displays a message box that says "Hello World!":

Language = VBScript

Sub Main (CanvasApplication)

MsgBox "Hello World!"

End Sub

The first line of a 3D Canvas Script must indicate the language in which the script in written. A general purpose 3D Canvas script must include a Sub named Main that has a single parameter. The Main Sub is run by 3D Canvas when you select Run Script from the Tools menu. 3D Canvas will provide a CanvasApplication object as an argument to this script. This object provides helper functions, information about 3D Canvas' current state and allows you to get the active Scene. See the CanvasApplication object documentation for more information.

Animation Scripts

3D Canvas scripts can also be used to animate Frames, Objects, Lights and the Animation Camera.

A script can be attached to a 3D Canvas scene component by right-clicking on it and selecting Open Component Script or Open Frame Script.

Following is a script for a Frame that animates a Frame along the Y axis:

Language = VBScript

Sub AnimateFrame (Time, CanvasFrame)

CanvasFrame.SetPosition Nothing, Time, 5, Time, 5

End Sub

A frame animation script must include a Sub named AnimateFrame that has two parameters. The AnimateFrame Sub is run by 3D Canvas prior to rendering when an animation is running or being recorded. 3D Canvas provides the animation key-frame being rendered (Time) and a CanvasFrame object. Any changes that you make to a frame's position and orientation overrides what 3D Canvas sets.

Note that the position and orientation you set will not be retained for the next time that AnimateFrame is called.

Following is a script for an Object that scales it over time:

Language = VBScript

Sub AnimateObject (Time, CanvasObject)

Dim PointCount
Dim PointIndex
Dim PointX
Dim PointY
Dim PointZ

'get the number of points in the object
PointCount = CanvasObject.GetPointCount

'Run through the points scaling them
For PointIndex = 0 to PointCount - 1

'get the point
CanvasObject.GetPoint PointIndex, PointX, PointY, PointZ

'scale the point
PointX = PointX * (Time+1)
PointY = PointY * (Time+1)
PointZ = PointZ * (Time+1)

'set the point
CanvasObject.SetPoint PointIndex, PointX, PointY, PointZ

Next

End Sub

An object animation script must include a Sub named AnimateObject that has two parameters. The AnimateObject Sub is run by 3D Canvas prior to rendering when in animation mode. 3D Canvas provides the animation key-frame being rendered (Time) and a CanvasObject object. Note that unlike the AnimateFrame sub, AnimateObject is called before each render in Animation Mode regardless of whether you are running an animation or not.

Note that the changes you make to the object will not be retained for the next time that AnimateObject is called. 3D Canvas will reset the object to the state it was in prior to your changes.

Following is a script for a light that makes it brighter over time.

Language = VBScript

Sub AnimateLight (Time, CanvasLight)

'make sure that we don't set a color intensity > 1
If Time < 10 Then
CanvasLight.SetColor Time/10, Time/10, Time/10
Else
CanvasLight.SetColor 1, 1, 1
End If

End Sub

A light animation script must include a Sub named AnimateLight that has two parameters. The AnimateLight Sub is run by 3D Canvas prior to rendering when in animation mode. 3D Canvas provides the animation key-frame being rendered (Time) and a CanvasLight object. Note that unlike the AnimateFrame sub, AnimateLight is called before each render in Animation Mode regardless of whether you are running an animation or not.

Note that the changes you make to the light will not be retained for the next time that AnimateLight is called. 3D Canvas will reset the light to the state it was in prior to your changes.

Following is a script for the Animation Camera that increases the Animation Camera's field of view over time:

Language = VBScript

Sub AnimateCamera (Time, CanvasCamera)

CanvasCamera.SetFieldOfView (Time+1)*.1

End Sub

A camera animation script must include a Sub named AnimateCamera that has two parameters. The AnimateCamera Sub is run by 3D Canvas prior to rendering when in animation mode. 3D Canvas provides the animation key-frame being rendered (Time) and a CanvasCamera object. Note that unlike the AnimateFrame sub, AnimateCamera is called before each render in Animation Mode regardless of whether you are running an animation or not.

Note that the changes you make to the light will not be retained for the next time that AnimateCamera is called. 3D Canvas will reset the camera to the state it was in prior to your changes.


Using the 3D Canvas API -- CanvasApplication Object

CanvasApplication Object

The CanvasApplication object provides helper functions, information about 3D Canvas' current state and allows you to get the active Scene.

General | GetGridDetails
 | GetPath
Scene GetActiveScene
Helper Functions | RotatePoint
 | FormatScientific

GetPath

Gets the path of 3D Canvas.

Syntax

object.GetPath() as Variant

GetActiveScene

Gets the active scene.

Syntax

object.GetActiveScene() As CanvasScene

GetGridDetails

Gets details about 3D Canvas' grid.

Syntax

object.GetGridDetails(GridOriginX As Variant,
GridOriginY As Variant,
GridOriginZ As Variant,
GridSize As Variant,
GridInterval As Variant)

RotatePoint

Rotates a Point around a given axis.

Syntax

object.RotatePoint(PointX As Variant,
PointY As Variant,
PointZ As Variant,
AxisX As Variant,
AxisY As Variant,
AxisZ As Variant,
Angle As Variant,
ResultPointX As Variant,
ResultPointY As Variant,
ResultPointZ As Variant)

Remarks

Angle is in Radians. pi Radians = 180 Degrees.

FormatScientific

Translates the provided number into a string appropriate for an export function.

Syntax

object.FormatScientific(Number As Variant) As Variant

Remarks

This function ensures that an export function always formats numbers in a correct way regardless of the regional settings of the computer. 3D File formats are universally stored using the English numbering style where "one and one half" is represented as "1.50". Microsoft Windows however outputs numbers using the regional settings of the computer. This will not work for most export formats since they often delimit items with commas.


Using the 3D Canvas API -- CanvasScene Object

CanvasScene Object

The CanvasScene Object represents a 3D Canvas Scene.

Frames | CreateFrame
 | GetRootFrame
 | GetFrameCount
 | GetFrame
 | GetActiveFrameCount
 | GetActiveFrame
Objects | CreateObject
 | GetObjectCount
 | GetObject
 | GetActiveObjectCount
 | GetActiveObject
 | GetActiveFaceCount
 | GetActiveFace
 | GetActiveEdgeCount
 | GetActiveEdge
 | GetActivePointCount
 | GetActivePoint
Materials CreateMaterial

GetRootFrame

Gets the CanvasFrame object that is the root frame of the scene.

Syntax

object.GetRootFrame() As CanvasFrame

GetFrameCount

Gets the number of CanvasFrame objects in the scene.

Syntax

object.GetFrameCount() As Variant

GetFrame

Gets the specified CanvasFrame object.

Syntax

object.GetFrame(Index As Variant) As CanvasFrame

CreateFrame

Creates a CanvasFrame object.

Syntax

object.CreateFrame() As CanvasFrame

Remarks

The frame is not added to the scene until it is added as a child to another frame using the AddChild method.

GetActiveFrameCount

Gets the number of active CanvasFrame objects in the Scene

Syntax

object.GetActiveFrameCount() As Variant

Remarks

Currently there can be only one active frame.

GetActiveFrame

Gets the specified active CanvasFrame object.

Syntax

object.GetActiveFrame(Index As Variant) As CanvasFrame

CreateObject

Creates a CanvasObject object.

Syntax

object.CreateObject() As CanvasObject

Remarks

The object is not added to the scene until it is added to a frame using the AddObject method.

GetActiveObjectCount

Gets the number of active CanvasObject objects in the scene.

Syntax

object.GetActiveObjectCount() As Variant

Remarks

Currently there can only be one active object.

GetActiveObject

Gets the specified active CanvasObject object.

Syntax

object.GetActiveObject(Index As Variant) As CanvasObject

GetObjectCount

Gets the number of CanvasObject objects in the scene.

Syntax

object.GetObjectCount() As Variant

GetObject

Gets the specified CanvasObject object.

Syntax

object.GetObject(Index As Variant) As CanvasObject

GetActiveFaceCount

Gets the number of active CanvasFace objects in the scene.

Syntax

object.GetActiveFaceCount() As Variant

GetActiveFace

Gets the specified active CanvasFace object.

Syntax

object.GetActiveFace(Index As Variant) As CanvasFace

GetActiveEdgeCount

Gets the number of active edges in the active CanvasObject object.

Syntax

object.GetActiveEdgeCount() As Variant

GetActiveEdge

Gets the specified active edge.

Syntax

object.GetActiveEdge(Index As Variant,
FaceIndex As Variant,
EdgeIndex As Variant)

Remarks

FaceIndex refers to a specific face in the active CanvasObject object. EdgeIndex refers to the first point in the edge.

GetActivePointCount

Gets the number of active points in the active CanvasObject object.

Syntax

object.GetActivePointCount() As Variant

GetActivePoint

Gets the specified active point in the active CanvasObject object.

Syntax

object.GetActivePoint(Index As Variant) As Variant

CreateMaterial

Creates a CanvasMaterial object.

Syntax

object.CreateMaterial() As CanvasMaterial


Using the 3D Canvas API -- CanvasFrame Object

CanvasFrame Object

The CanvasFrame object represents a 3D Canvas Frame.

General | GetID
 | GetName
 | SetName
Hierarchy | GetParent
 | GetChildCount
 | GetChild
 | AddChild
Position and Orientation | GetPosition
 | SetPosition
 | GetOrientation
 | SetOrientation
 | GetTransformMatrix
Objects | AddObject
 | GetObjectCount
 | GetObject
Bones | GetBoneCount
 | GetBone
Animation | GetAnimationStyle
 | GetPositionKeyFrameCount
 | GetPositionKeyFrame
 | GetOrientationKeyFrameCount
 | GetOrientationKeyFrame

GetName

Gets the name of the frame.

Syntax

object.GetName() As Variant

SetName

Sets the name of the frame.

Syntax

object.SetName(Name As Variant)

Remarks

A frame must be made a child of another frame using the AddChild method before it can be named.

GetParent

Gets the CanvasFrame that is the parent frame of the frame.

Syntax

object.GetParent() As CanvasFrame

GetChildCount

Gets the number of child frames the frame has.

Syntax

object.GetChildCount() As Variant

GetChild

Gets the specified child CanvasFrame object.

Syntax

object.GetChild(Index As Variant) As CanvasFrame

AddChild

Adds the specified CanvasFrame object as a child frame.

Syntax

object.AddChild(Frame As Variant)

Remarks

This will add the frame to the scene.

GetPosition

Gets the position of the frame relative to a specific CanvasFrame object.

Syntax

object.GetPosition(RelativeFrame As Variant,
X As Variant,
Y As Variant,
Z As Variant)

Remarks

Provide Nothing as the RelativeFrame to get the frame's position in world coordinates.

SetPosition

Sets the position of the frame relative to a specific CanvasFrame object.

Syntax

object.SetPosition(RelativeFrame As Variant,
AnimationTime As Variant,
X As Variant,
Y As Variant,
Z As Variant)

Remarks

Provide Nothing as the RelativeFrame to set the frame's position in world coordinates.

The AnimationTime parameter allows you to set a position at a particular time in the animation. This allows you to set frame animation paths.

GetOrientation

Gets the orientation of the frame relative to a specific CanvasFrame object.

Syntax

object.GetOrientation(RelativeFrame As Variant,
DirX As Variant,
DirY As Variant,
DirZ As Variant,
UpX As Variant,
UpY As Variant,
UpZ As Variant)

Remarks

Provide Nothing as the RelativeFrame to get the frame's orientation in world coordinates.

SetOrientation

Sets the orientation of the frame relative to a specific CanvasFrame object.

Syntax

object.SetOrientation(RelativeFrame As Variant,
AnimationTime As Variant,
DirX As Variant,
DirY As Variant,
DirZ As Variant,
UpX As Variant,
UpY As Variant,
UpZ As Variant)

Remarks

Provide Nothing as the RelativeFrame to set the frame's orientation in world coordinates.

The AnimationTime parameter allows you to set an orientation at a particular time in the animation. This allows you to set frame animation paths.

GetTransformMatrix

Gets the transformation matrix of the frame relative to a specific CanvasFrame object.

Syntax

object.GetTransformMatrix(RelativeFrame As Variant,
Mat00 As Variant,
Mat01 As Variant,
Mat02 As Variant,
Mat03 As Variant,
Mat10 As Variant,
Mat11 As Variant,
Mat12 As Variant,
Mat13 As Variant,
Mat20 As Variant,
Mat21 As Variant,
Mat22 As Variant,
Mat23 As Variant,
Mat30 As Variant,
Mat31 As Variant,
Mat32 As Variant,
Mat33 As Variant)

Remarks

Provide Nothing as the RelativeFrame to get the frame's transformation matrix in world coordinates.

AddObject

Adds a CanvasObject object to the frame.

Syntax

object.AddObject(Object As Variant)

Remarks

The object is added to the scene when it is added to a frame.

GetObjectCount

Gets the number of CanvasObject objects in this frame.

Syntax

object.GetObjectCount() As Variant

GetObject

Gets the specified CanvasObject object.

Syntax

object.GetObject(Index As Variant) As CanvasObject

GetBoneCount

Gets the number of CanvasBone objects in this frame.

Syntax

object.GetBoneCount() As Variant

GetBone

Gets the specified CanvasBone object.

Syntax

object.GetBone(Index As Variant) As CanvasBone

GetID

Gets the unique identifier for the frame.

Syntax

object.GetID() As Variant

GetAnimationStyle

Gets the animation style for the frame.

Syntax

object.GetAnimationStyle() As Variant

Remarks

0 = a closed (repeating) animation
1 = an open animation

GetPositionKeyFrameCount

Gets the number of animation position key-frames for this frame.

Syntax

object.GetPositionKeyFrameCount() As Variant

GetPositionKeyFrame

Gets the specified animation position key-frame.

Syntax

object.GetPositionKeyFrame(Index As Variant,
Time As Variant,
X As Variant,
Y As Variant,
Z As Variant)

GetOrientationKeyFrameCount

Gets the number of animation orientation key-frames for this frame.

Syntax

object.GetOrientationKeyFrameCount() As Variant

GetOrientationKeyFrame

Gets the specified animation orientation key-frame.

Syntax

object.GetOrientationKeyFrame(Index As Variant,
Time As Variant,
X As Variant,
Y As Variant,
Z As Variant,
r As Variant)

Remarks

An orientation key-frame is a quaternion.


Using the 3D Canvas API -- CanvasObject Object

CanvasObject Object

The CanvasObject object represents a 3D Canvas Object.

General | GetID
 | GetName
 | SetName
 | GetType
 | Clear
 | AddObject
 | Transform
 | InverseTransform
 | GetBoundingBox
 | WriteScriptOperationLayer
Faces | CreateFace
 | GetFaceCount
 | GetFace
Points | AddPoint
 | GetPointCount
 | GetPoint
 | SetPoint
 | GetPointTextureCoordinate
 | SetPointTextureCoordinate
Normals | AddNormal
 | GetNormalCount
 | GetNormal
 | SetNormal
 | GenerateNormals
Bones | GetBoneCount
 | GetBone
Materials and Textures | GetMaterialCount
 | GetMaterial
 | SetObjectMaterial
 | GetFaceMaterialIndex
 | SetTextureTopology
Hierarchy GetParentFrame

GetID

Gets the unique identifier for the object.

Syntax

object.GetID() As Variant

GetName

Gets the name of the object.

Syntax

object.GetName() As Variant

SetName

Sets the name of the object.

Syntax

object.SetName(Name As Variant)

Remarks

An object must be made a child of a frame using the AddObject method before it can be named.

GetType

Gets the object type.

Syntax

object.GetType() As Variant

Remarks

0 = 3D Canvas Object
1 = 3D Canvas Skin
2 = 3D Canvas Placeholder

Clear

Clears the contents of the object.

Syntax

object.Clear()

AddObject

Adds a CanvasObject object to the object.

Syntax

object.AddObject(Object As Variant)

Transform

Transforms the object from model coordinates to world coordinates.

Syntax

object.Transform()

InverseTransform

Transforms the object from world coordinates to model coordinates.

Syntax

object.InverseTransform()

GetBoundingBox

Gets the object's bounding box.

Syntax

object.GetBoundingBox(MinX As Variant,
MinY As Variant,
MinZ As Variant,
MaxX As Variant,
MaxY As Variant,
MaxZ As Variant)

WriteScriptOperationLayer

Writes a Script Operation Layer for the object.

Syntax

object.WriteScriptOperationLayer()

Remarks

After you make any change to an object you must use this method to notify 3D Canvas that the change should be saved the next time 3D Canvas saves the document.

This method does not need to be done after changes made while animating.

CreateFace

Creates a CanvasFace object and adds it to the object.

Syntax

object.CreateFace() As CanvasFace

GetFaceCount

Gets the number of CanvasFace objects in the object.

Syntax

object.GetFaceCount() As Variant

GetFace

Gets the specified CanvasFace object.

Syntax

object.GetFace(Index As Variant) As CanvasFace

GetPointCount

Gets the number of points in the object.

Syntax

object.GetPointCount() As Variant

GetPoint

Gets the specified point.

Syntax

object.GetPoint(Index As Variant,
X As Variant,
Y As Variant,
Z As Variant)

SetPoint

Sets the specified point.

Syntax

object.SetPoint(Index As Variant,
X As Variant,
Y As Variant,
Z As Variant)

AddPoint

Adds a point to the object.

Syntax

object.AddPoint(X As Variant,
Y As Variant,
Z As Variant)

GetPointTextureCoordinate

Gets a point's texture coordinate.

Syntax

object.GetPointTextureCoordinate(Index As Variant,
U As Variant,
V As Variant)

SetPointTextureCoordinate

Sets a point's texture coordinate.

Syntax

object.SetPointTextureCoordinate(Index As Variant,
U As Variant,
V As Variant)

AddNormal

Adds a normal to the object.

Syntax

object.AddNormal(X As Variant,
Y As Variant,
Z As Variant)

GenerateNormals

Generates normals for the object.

Syntax

object.GenerateNormals(CreaseAngle As Variant)

Remarks

The crease angle is in Radians. pi Radians = 180 degrees.

GetNormalCount

Gets the number of normals in the object.

Syntax

object.GetNormalCount() As Variant

GetNormal

Gets the specified normal.

Syntax

object.GetNormal(Index As Variant,
X As Variant,
Y As Variant,
Z As Variant)

SetNormal

Sets the specified normal.

Syntax

object.SetNormal(Index As Variant,
X As Variant,
Y As Variant,
Z As Variant)

GetBoneCount

Gets the number of bones that affect this object.

Syntax

object.GetBoneCount() As Variant

GetBone

Gets the specified CanvasBone object.

Syntax

object.GetBone(Index As Variant) As CanvasBone

GetMaterialCount

Gets the number of materials used by this object.

Syntax

object.GetMaterialCount() As Variant

GetMaterial

Gets the specified CanvasMaterial object.

Syntax

object.GetMaterial(Index As Variant) As CanvasMaterial

SetObjectMaterial

Sets a material for the object.

Syntax

object.SetMaterial(Material As Variant)

Remarks

This material will be applied to each face that makes up the object.

GetFaceMaterialIndex

Gets an index to the material that has been applied to a face.

Syntax

object.GetFaceMaterialIndex(FaceIndex As Variant) As Variant

Remarks

Use this in conjunction with GetMaterial to retrieve the specific material applied to a face.

SetTextureTopology

Sets the texture topology for the object.

Syntax

object.SetTextureTopology(WrapU As Variant,
WrapV As Variant)

Remarks

This texture topology will be applied to each face that makes up the object.

Flat wraps require 0, 0 as arguments.
Cylindrical wraps require 1, 0 as arguments.
Spherical wraps require 1, 1 as arguments.

GetParentFrame

Gets the CanvasFrame that is the parent frame of the object.

Syntax

object.GetParentFrame() As CanvasFrame


Using the 3D Canvas API -- CanvasFace Object

CanvasFace Object

The CanvasFace object represents a face of a 3D Canvas Object.

Points and Normals | AddPointAndNormal
 | GetPointCount
 | GetPoint
 | GetNormalCount
 | GetNormal
Materials | GetMaterial
 | SetMaterial
Textures | GetTextureTopology
 | SetTextureTopology

GetPointCount

Gets the number points in the face.

Syntax

object.GetPointCount() As Variant

GetPoint

Gets the specified point.

Syntax

object.GetPoint(Index As Variant) As Variant

Remarks

The returned value is an index to a point in a CanvasObject object.

GetNormalCount

Gets the number of normals in the face.

Syntax

object.GetNormalCount() As Variant

GetNormal

Gets the specified normal.

Syntax

object.GetNormal(Index As Variant) As Variant

Remarks

The returned value is an index to a normal in a CanvasObject object.

GetTextureTopology

Gets the texture topology of the face.

Syntax

object.GetTextureTopology(WrapU As Variant,
WrapV As Variant)

SetTextureTopology

Sets the texture topology of the face.

Syntax

object.SetTextureTopology(WrapU As Variant,
WrapV As Variant)

Remarks

Flat wraps require 0, 0 as arguments.
Cylindrical wraps require 1, 0 as arguments.
Spherical wraps require 1, 1 as arguments.

AddPointAndNormal

Adds a point and normal to the face.

Syntax

object.AddPointAndNormal(PointIndex As Variant,
NormalIndex As Variant)

SetMaterial

Sets the material for the face.

Syntax

object.SetMaterial(Material As Variant)

GetMaterial

Gets the material of the face.

Syntax

object.GetMaterial() As CanvasMaterial


Using the 3D Canvas API -- CanvasBone Object

CanvasBone Object

The CanvasBone object represents a 3D Canvas bone.

Frame GetParentFrame
Object | GetSkinObject
 | GetAffectedPointCount
 | GetAffectedPoint

GetSkinObject

Gets the CanvasObject that is influenced by this bone.

Syntax

object.GetSkinObject() As CanvasObject

GetAffectedPointCount

Gets the number of points affected by this bone.

Syntax

object.GetAffectedPointCount() As Variant

GetAffectedPoint

Gets a point affected by this bone.

Syntax

object.GetAffectedPoint(Index As Variant) As Variant

Remarks

The returned value is an index to a point in a CanvasObject object.

GetParentFrame

Gets the Parent Frame for this bone.

Syntax

object.GetParentFrame() As CanvasFrame


Using the 3D Canvas API -- CanvasLight Object

CanvasLight Object

The CanvasLight object represents a 3D Canvas Light.

General GetID
Color | GetColor
 | SetColor
Attenuation | GetConstantAttenuation
 | SetConstantAttenuation
 | GetLinearAttenuation
 | SetLinearAttenuation
 | GetQuadraticAttenuation
 | SetQuadraticAttenuation
Spotlight | GetSpotlightRange
 | SetSpotlightRange
 | GetSpotlightUmbra
 | SetSpotlightUmbra
 | GetSpotlightPenumbra
 | SetSpotlightPenumbra

GetID

Gets the light's unique identifier.

Syntax

object.GetID() As Variant

GetColor

Gets the light color.

Syntax

object.GetColor(Red As Variant,
Green As Variant,
Blue As Variant)

Remarks

Each color component may be from 0 to 1 in intensity.

SetColor

Sets the light color.

Syntax

object.SetColor(Red As Variant,
Green As Variant,
Blue As Variant)

Remarks

Each color component may be from 0 to 1 in intensity.

GetConstantAttenuation

Gets the constant attenuation for the light.

Syntax

object.GetConstantAttenuation() As Variant

Remarks

May be from 0 to 1, but the total attenuation of the light may not exceed 1.

SetConstantAttenuation

Sets the constant attenuation for the light.

Syntax

object.SetConstantAttenuation(ConstantAttenuation As Variant)

Remarks

May be from 0 to 1, but the total attenuation of the light may not exceed 1.

GetLinearAttenuation

Gets the linear attenuation for the light.

Syntax

object.GetLinearAttenuation() As Variant

Remarks

May be from 0 to 1, but the total attenuation of the light may not exceed 1.

SetLinearAttenuation

Sets the linear attenuation for the light.

Syntax

object.SetLinearAttenuation(LinearAttenuation As Variant)

Remarks

May be from 0 to 1, but the total attenuation of the light may not exceed 1.

GetQuadraticAttenuation

Gets the quadratic attenuation for the light.

Syntax

object.GetQuadraticAttenuation() As Variant

Remarks

May be from 0 to 1, but the total attenuation of the light may not exceed 1.

SetQuadraticAttenuation

Sets the quadratic attenuation for the light.

Syntax

object.SetQuadraticAttenuation(QuadraticAttenuation As Variant)

Remarks

May be from 0 to 1, but the total attenuation of the light may not exceed 1.

GetSpotlightRange

Gets the maximum range for the spotlight.

Syntax

object.GetSpotlightRange() As Variant

Remarks

In 3D Canvas units.

SetSpotlightRange

Set the maximum range for the spotlight.

Syntax

object.SetSpotlightRange(Range As Variant)

Remarks

In 3D Canvas units.

GetSpotlightUmbra

Gets the spotlight umbra.

Syntax

object.GetSpotlightUmbra() As Variant

Remarks

In Radians. pi Radians = 180 Degrees.

SetSpotlightUmbra

Sets the spotlight umbra.

Syntax

object.SetSpotlightUmbra(Umbra As Variant)

Remarks

In Radians. pi Radians = 180 Degrees.

GetSpotlightPenumbra

Gets the spotlight penumbra.

Syntax

object.GetSpotlightPenumbra() As Variant

Remarks

In Radians. pi Radians = 180 Degrees.

SetSpotlightPenumbra

Sets the spotlight penumbra.

Syntax

object.SetSpotlightPenumbra(Penumbra As Variant)

Remarks

In radians. pi radians = 180 degrees.


Using the 3D Canvas API -- CanvasCamera Object

CanvasCamera Object

The CanvasCamera object represents the 3D Canvas Animation Camera.

General | GetFieldOfView
 | SetFieldOfView

GetFieldOfView

Gets the Animation Camera's field of view.

Syntax

object.GetFieldOfView() As Variant

SetFieldOfView

Sets the Animation Camera's field of view.

Syntax

object.SetFieldOfView(FieldOFView As Variant)

Remarks

Must be greater than zero.


Using the 3D Canvas API -- CanvasMaterial Object

CanvasMaterial Object

The CanvasMaterial object represents a 3D Canvas Palette Material.

Color | GetColor
 | SetColor
Translucent | GetTranslucent
 | SetTranslucent
Diffuse | GetDiffuse
 | SetDiffuse
Ambient | GetAmbient
 | SetAmbient
Specular | GetSpecular
 | SetSpecular
Texture | GetTextureFileName
 | SetTextureFileName
Secondary Texture | GetSecondaryTextureFileName
 | SetSecondaryTextureFileName
 | GetSecondaryTextureTranslucent
 | SetSecondaryTextureTranslucent
TranslucentMap | GetTranslucentMapFileName
 | SetTranslucentMapFileName

GetColor

Gets the material color.

Syntax

object.GetColor(Red As Variant,
Green As Variant,
Blue As Variant)

Remarks

Each color component may be from 0 to 1 in intensity.

SetColor

Sets the material color.

Syntax

object.SetColor(Red As Variant,
Green As Variant,
Blue As Variant)

Remarks

Each color component may be from 0 to 1 in intensity.

GetTranslucent

Gets the translucent factor.

Sets the

Syntax

object.GetTranslucent() As Variant

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

SetTranslucent

Sets the translucent factor.

Syntax

object.SetTranslucent(Translucent As Variant)

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

GetDiffuse

Gets the diffuse factor.

Syntax

object.GetDiffuse() As Variant

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

SetDiffuse

Sets the diffuse factor.

Syntax

object.SetDiffuse(Diffuse As Variant)

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

GetAmbient

Gets the ambient factor.

Syntax

object.GetAmbient() As Variant

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

SetAmbient

Sets the ambient factor.

Syntax

object.SetAmbient(Ambient As Variant)

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

GetSpecular

Gets the Specular factor.

Syntax

object.GetSpecular() As Variant

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

SetSpecular

Sets the Specular factor.

Syntax

object.SetSpecular(Specular As Variant)

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

GetTextureFileName

Gets the texture file name.

Syntax

object.GetTextureFileName() As Variant

SetTextureFileName

Sets the texture file name.

Syntax

object.SetTextureFileName(FileName As Variant)

GetSecondaryTextureFileName

Gets the secondary texture file name.

Syntax

object.GetSecondaryTextureFileName() As Variant

SetSecondaryTextureFileName

Sets the secondary texture file name.

Syntax

object.SetSecondaryTextureFileName(FileName As Variant)

GetSecondaryTextureTranslucent

Gets the secondary texture translucent factor.

Syntax

object.GetSecondaryTextureTranslucent() As Variant

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

SetSecondaryTextureTranslucent

Sets the secondary texture translucent factor.

Syntax

object.SetSecondaryTextureTranslucent(Translucent As Variant)

Remarks

May be from 0 to 100 as in the 3D Canvas Material Palette.

GetTranslucentMapFileName

Gets the translucent map file name.

Syntax

object.GetTranslucentMapFileName() As Variant

SetTranslucentMapFileName

Sets the translucent map file name.

Syntax

object.SetTranslucentMapFileName(FileName As Variant)


Registration

3D Canvas is a freeware program. No registration is required.

Use of 3D Canvas is limited by the 3D Canvas License Agreement.

3D Canvas Pro includes all of the features of 3D Canvas plus these additional features:

Boolean Operations

Object Subtraction

Tip9a.gif (4473 bytes) Tip9b.gif (4378 bytes)

Object Intersection

Tip20a.gif (6007 bytes) Tip20b.gif (3959 bytes)

Object Union

Tip21a.gif (5248 bytes) Tip21b.gif (5121 bytes)

Object Blend

Tip30a.gif (6983 bytes) Tip30b.gif (6868 bytes)

Object Bridge

Tip35a.gif (6953 bytes) Tip35b.gif (7246 bytes)

Particle Operation

Used to apply a particle effect using a simple object as a model particle.

Tip39a.gif (4170 bytes) Tip39b.gif (4841 bytes)

Reduce Operation

Reduces the number of faces and points in an object while maintaining object detail. In the example below an imported object had its point count reduced from 6000 to 1000 with little affect on the shape of the object.

Tip40a.gif (3834 bytes) Tip40b.gif (3765 bytes)

Clone Operation

Tip11a.gif (3664 bytes) Tip11b.gif (6877 bytes)

Divide Operation

Tip8a.gif (420 bytes) Tip8b.gif (501 bytes)

Split Point Operation

Tip15a.gif (4398 bytes) Tip15b.gif (4618 bytes)

Tip Operation

Tip5a.gif (6770 bytes) Tip5b.gif (9203 bytes)

Triangulate Operation

Tip10a.gif (420 bytes) Tip10b.gif (460 bytes)

Trim Operation

Tip6a.gif (9203 bytes) Tip6b.gif (8871 bytes)

Bevel Operation

Tip7a.gif (4470 bytes) Tip7b.gif (5471 bytes)

Bulge Operation

Tip31a.gif (4343 bytes) Tip31b.gif (4489 bytes)

Flatten Operation

Tip19a.gif (5043 bytes) Tip19b.gif (3317 bytes)

Mirror Operation

Tip26a.gif (4566 bytes) Tip26b.gif (4440 bytes)

Shear Operation

Tip22a.gif (5043 bytes) Tip22b.gif (5241 bytes)

SnapScale Operation

Tip28a.gif (3955 bytes) Tip28b.gif (4518 bytes)

Unwrap Operation

Used to create a texture that can be painted in a Paint program and applied to an object.

Tip36a.gif (11158 bytes) Tip36b.gif (6022 bytes)

UV Map Operation

Permits manipulation of texture wrapping coordinates.

Tip37a.gif (6922 bytes) Tip37b.gif (13640 bytes)

Solidify Operation

Tip13a.gif (4528 bytes) Tip13b.gif (4706 bytes)

Optimize Operation

Tip14a.gif (460 bytes) Tip14b.gif (420 bytes)

Edge Operation

Tip17a.gif (420 bytes) Tip17b.gif (462 bytes)

Weld Operation

Used to weld two or more points into a single point.

Tip18a.gif (4398 bytes) Tip18b.gif (4928 bytes)

Scale Operation

Provides more flexibility than scaling with the Edit Control.

Tip24a.gif (4395 bytes) Tip24b.gif (4272 bytes)

Shift Operation

Provides more flexibility than shifting with the Shift Tool including the ability to apply a rotational shift.

Tip33a.gif (3134 bytes) Tip33b.gif (2872 bytes)

Center Operation

Improves accuracy over using the Shift tool for centering objects on their frame.

Tip27a.gif (2872 bytes) Tip27b.gif (3134 bytes)

Twist Operation

Tip29a.gif (4864 bytes) Tip29b.gif (6678 bytes)

NURBS Surfaces
Two additional bone types (Rounded Cylindrical and Spherical)
Anti-Aliasing rendering of Videos and Snapshots
Export of a animations as a series of images. This allows for the creation of animated GIFs using a third-party program, or post-processing effects such as motion blur.
Additional export formats including DirectX, the preferred export format for 3D Canvas, 3D Studio, TrueSpace, AutoCAD, Wavefront, WorldToolKit, RAW and Microsoft Train Simulator.
More import formats including Wavefront (obj), WorldToolKit (nff), and Raw triangles (raw).
Creation of animated skeletons using BioVision Motion Capture (bvh) files.
Support for raytraced rendering using the POV-Ray raytracing engine. POVRay is a superb free raytracing engine that is capable of producing photo-realistic images.
Scripting using VBScript, JScript (JavaScript) or any other scripting language that supports the Windows Script Host.
Post Rendering effects using Photoshop Filters
Motion Blur in recorded Animations.
Radiosity Lighting when rendering using the POV-Ray raytracing engine.
Atmospheric Effects when rendering using the POV-Ray raytracing engine.
Additional POVRay material attributes including Brilliance, Reflection, Iridescence, Roughness, Metallic and Patterns including Bumps, Dents, Ripples and Wrinkles.
Refraction when rendering using the POV-Ray raytracing engine.
Focal Blur when rendering using the POV-Ray raytracing engine.
Glowing lights when rendering using the POV-Ray raytracing engine.

Registration of 3D Canvas Pro may be done either on-line at the Amabilis web site or through the mail using our Order Form.

Use of 3D Canvas Pro is limited by the 3D Canvas Pro License Agreement.

For more information on 3D Canvas Pro visit the Amabilis web site.


License - 3D Canvas

3D Canvas™ Copyright © 1998-2001 by Amabilis
All rights reserved.

This license applies to 3D Canvas. If you have registered 3D Canvas XE or 3D Canvas Pro, see the 3D Canvas XE/Pro License.

License Agreement

Please carefully read the terms and conditions that follow before using this software. Your use of this software indicates your acceptance of this license agreement.

Use and Registration

3D Canvas is free software. You are licensed to use this software without restriction. If you would like the additional features of 3D Canvas XE or 3D Canvas Pro, please use the order form provided.

Credit card ordering is available, as described in the section Registration. When payment is received you will be sent a registration code for 3D Canvas XE/Pro.

Disclaimer of Warranty

THIS SOFTWARE IS PROVIDED “AS IS” AND WITHOUT WARRANTY OF ANY KIND EXPRESSED, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

The user must assume the entire risk of using the program. ANY LIABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE.

Copyright © 2001 Amabilis.


License - 3D Canvas Pro

3D Canvas XE/Pro™ Copyright © 1998-2001 by Amabilis
All rights reserved.

This license applies to 3D Canvas XE and 3D Canvas Pro. If you are using the standard version of 3D Canvas, see the section titled 3D Canvas License.

License Agreement

Please carefully read the terms and conditions that follow before using this software. Your use of this software indicates your acceptance of this license agreement.

Registered Version

One registered copy of 3D Canvas XE/Pro may either be used by a single person who uses the software personally on one or more computers, or installed on a single workstation used non-simultaneously by multiple people, but not both.

You may access the registered version of 3D Canvas XE/Pro through a network, provided that you have obtained individual licenses for the software covering all workstations that will access the software through the network. Each workstation must have its own 3D Canvas XE/Pro license, regardless of whether they use 3D Canvas Xe/Pro at different times or concurrently.

Disclaimer of Warranty

THIS SOFTWARE IS SOLD “AS IS” AND WITHOUT WARRANTY OF ANY KIND EXPRESSED, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

The user must assume the entire risk of using the program. ANY LIABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE.

Copyright © 2001 Amabilis.


Animating the Scene

Animation Overview
Animating Component Positions
Animating Operations
Viewing and Recording an Animation
Changing Animation Options


Animation Recording Options

The Animation Recording Options window provides options that determine the size and frames per second for the animation being produced and whether it should be anti-aliased or not.

Animation Size

A number of recording sizes ranging from 160x120 to 1600x1200 are available. Keep in mind while setting this option that many computers will not be able to smoothly play videos above 640x480. Also, larger sizes result in larger files.

Custom sizes are also available by selection "Custom" and entering a desired Width and Height.

Frames per Second

You may choose the number of frames per second that should be recorded. Note that this is the number of images per second not the number of animation key-frames per second. Animations tend to look very smooth at around 30 frames per second. 15 frames per second is recommended in order to reduce file size.

Anti-Alias (Available with 3D Canvas Pro)

Anti-Aliasing produces smoother images, at the expense of much slower rendering times.

If you do not have 3D Canvas Pro, you can get anti-aliased videos by rendering in a size larger than you need and then using a Video Editing Program to scale the video to a smaller size.

Raytrace using POV-Ray (Available with 3D Canvas Pro)

This option will be available if you have 3D Canvas Pro and POV-Ray installed on your system. If you select this item 3D Canvas will use POV-Ray to render your scene rather than Direct3D.

POV-Ray is a Raytracing rendering engine that is available for free at www.povray.org. Rendering with POV-Ray is much slower than with Direct3D, however it produces more dynamic images with true shadows and reflections. Note that the lighting scheme for POV-Ray is slightly different than Direct3D so you may find that the final image produced by POV-Ray is somewhat darker, or brighter than the Direct3D produced image. Also, textures are not rendered properly unless you have the MegaPOV version of POV-Ray which is available at ftp.povray.org. There are also differences in interpretation of materials that may make your objects look somewhat different.

3D Canvas supports POVRay version 3.1 or higher and MegaPOV version .7 or higher.

Motion Blur (Available with 3D Canvas Pro)

If you select this item 3D Canvas will include Motion Blur in the rendered animation. This simulates the motion blur effect of real cameras. It often produces smoother looking animations.

Save Animation as Images (Available with 3D Canvas Pro)

This option allow you to save animation images to a sequence of Windows bitmap files. e.g. Animation1.BMP, Animation2.BMP, Animation3.BMP etc.

These images can then be imported into other programs for post-processing to create Animated GIFs, motion blur etc.

Filter Layers (Available with 3D Canvas Pro)

If you have Photoshop filters installed on your system you can use them to apply post rendering effects.

Click the Button-OpenSmall.gif (177 bytes) Find Filters button to select the location of your Photoshop filters.

Select the filter you would like to apply by clicking on the down arrow next SelectFilter... . You may apply multiple filters if you want.

There are many free Photoshop filters available. Most free filters are not scriptable so they can only be applied using their default settings. Scriptable plugins are indicated by a > in the filters drop down list.

Click the Button-Operation-Update.gif (515 bytes) Refresh Preview button to reapply the selected Photoshop filters. This can be a good way to ensure that the filters reapply properly. This usually is not a problem, but some freeware filters do not reapply properly.

Click the Button-DeleteSmall.gif (918 bytes) Delete Filter Layer button to delete the currently selected filter layer.

Click the Button-ResetAll.gif (138 bytes) Delete All Filter Layers button to delete all filter layers.


Snapshot Options

The Snapshot Options window provides options that determine the size of the snapshot produced and whether it should be Anti-Aliased or not.

Snapshot Size

A number of snapshot sizes ranging from 160x120 to 1600x1200 are available.

Custom sizes are also available by selection "Custom" and entering a desired Width and Height.

Anti-Alias (Available with 3D Canvas Pro)

Anti-Aliasing produces smoother images, at the expense of much slower rendering times.

If you do not have 3D Canvas Pro, you can get anti-aliased images by rendering in a size larger than you need and then using an Image Editing Program to scale the image to a smaller size.

Raytrace using POV-Ray (Available with 3D Canvas Pro)

This option will be available if you have 3D Canvas Pro and POV-Ray installed on your system. If you select this item, 3D Canvas will use POV-Ray to render your scene rather than Direct3D.

POV-Ray is a Raytracing rendering engine that is available for free at www.povray.org. Rendering with POV-Ray is much slower than with Direct3D, however it produces more dynamic images with true shadows and reflections. Note that the lighting scheme for POV-Ray is slightly different than Direct3D so you may find that the final image produced by POV-Ray is somewhat darker, or brighter than the Direct3D produced image. Also, textures are not rendered properly unless you have the MegaPOV version of POV-Ray which is available at ftp.povray.org. There are also differences in interpretation of materials that may make your objects look somewhat different.

3D Canvas supports POVRay version 3.1 or higher and MegaPOV version .7 or higher.

If you do not have 3D Canvas Pro, you can export your scene to a POV-Ray file and then manually run POV-Ray to render the image.

Filter Layers (Available with 3D Canvas Pro)

If you have Photoshop filters installed on your system you can use them to apply post rendering effects.

Click the Button-OpenSmall.gif (177 bytes) Find Filters button to select the location of your Photoshop filters.

Select the filter you would like to apply by clicking on the down arrow next SelectFilter... . You may apply multiple filters if you want.

There are many free Photoshop filters available. Most free filters are not scriptable so they can only be applied using their default settings. Scriptable plugins are indicated by a > in the filters drop down list.

Click the Button-Operation-Update.gif (515 bytes) Refresh Preview button to reapply the selected Photoshop filters. This can be a good way to ensure that the filters reapply properly. This usually is not a problem, but some freeware filters do not reapply properly.

Click the Button-DeleteSmall.gif (918 bytes) Delete Filter Layer button to delete the currently selected filter layer.

Click the Button-ResetAll.gif (138 bytes) Delete All Filter Layers button to delete all filter layers.


BioVision Hierarchy Import Options

BioVision Hierarchy Import Options (Available with 3D Canvas Pro)

The BioVision Hierarchy (bvh) file format is used to store animation information that was created using motion capture. It provides information such as the length of each limb of the person/animal who's motion was captured. It does not describe the appearance of the person/animal itself. This information is used by 3D Canvas to create a skeleton.

In addition to creating a skeleton, 3D Canvas also creates a pedestal for the imported skeleton. This is simply a flattened cube that indicates the start position of the animation sequence. You can reposition and reorient this pedestal to reposition and reorient the animation for your scene. Once you have your scene as you would like it, you can delete the pedestal.

You can choose the start time for the imported animation sequence by entering animation mode and selecting an initial frame with the animation slider.

Import Style

There are three possible import styles available. You may choose to create a skeleton made up of Limb Placeholders, Standard 3D Canvas Bones, or Rounded 3D Canvas Bones. If you are planning to use a jointed model you will want to use Limb Placeholders. If you are planning to use a skin you will want to use one of the bone formats.

If you choose one of the bone types, limb placeholders will also be created to aid in positioning. Once you have oriented the placeholders to match your skin you can delete the placeholders.

Note that no matter what style you choose the skeleton created will not be an Inverse Kinematics capable skeleton. BioVision's techniques for recording skeletal information does not provide information that is entirely compatible with 3D Canvas' Inverse Kinematics, and does not provide information such as joint range of motion. Importing of BioVision Hierarchies is simply a way to add life-like animation to 3D Canvas scenes.

Key-Frames/Second

The number of Key-Frames per second the animation is recorded at is provided by the creator of the file and automatically entered here. If you want to make the animation run slower you can increase this number. If you want to make the animation run faster you can decrease this number.

Percentage of Original Size

Once an animation is imported there is no practical way to change the size of the skeletal structure. Since the skeletal structure is simply the position and orientation of joints at various time intervals it would require repositioning the joints of the skeleton for each key-frame in the animation.

Some trial and error will be required to get the correct import size. It is generally easier to change the model to fit the animation information, but that may not always be possible.

Repetitions

You can choose to repeat an animation sequence. Some animation sequences such as walking or running work well with this option.

Include Keys

You can enter a key-frame range to import a sub-section of an animation sequence. This is particularly useful if you are doing trial imports to determine the correct scaling factor for your model.

Include Relaxed State

Selecting this option will result in the inclusion of the relaxed state for the skeleton as the first key-frame in the animation. Note that not all BioVision Hierarchy files contain a truly relaxed version of the skeleton.

Include X-Axis Movement/Include Y-Axis Movement/Include Z-Axis Movement

You can use these options to select whether to import the actual XYZ movement of the skeleton. Normally you will want to include at least the X and Y axis movement since these are critical the realism of the animation. Joint orientation is always imported no matter what the values of these options.

Hierarchy Components

Each joint position, relative to its parent, is listed so that you can set individual scale factors for selected joint positions. This can be quite handy if you have a model that cannot be resized to fit the skeleton. There is a lot of trial and error required to resize a skeleton to fit a model, but with patience it is not too difficult. Ensure that your Percentage of Original Size results in legs that are the correct length before starting to adjust the position of individual joints. Importing can be time consuming so be sure to set Include Keys to import a single key so that your wait times are reduced.


Creating and Using Scene Components

Components Overview
Using Primitives
Using Skeletal Bones
Adding Lighting to a Scene
Using the Object Building Tools
Using the Object Library


Component Properties

The Component Properties window displays and allows you to update many properties of Scene Components.

A view of the object selected is used to set joint constraints for Inverse Kinematics. The object's parent object is shown in white.

Click Button-WireframeSmall.gif (139 bytes) to display the object in wireframe.

Object Attributes

These are mostly read-only attributes of an object, including the number of faces and points that make up the object, as well as the size of the object. This is only displayed for objects.

You may set that an object should show a shadow by enabling Show Shadow.

If you want a translucent or transparent object to refract light you can set a Refraction Index (Available with 3D Canvas Pro when using raytraced rendering) which adjust the amount of refraction that occurs.

Frame Position

The position within the scene of the component's frame. This position is relative to the parent frame.

Frame Position will only be displayed for scene components that have position. For example, the ambient and directional lights do not have positions.

Frame Orientation

The orientation within the scene of the component's frame. Orientation is expressed in terms of the number of degrees of rotation around each of the X, Y and Z axes. This orientation is relative to the parent frame.

Frame Orientation will only be displayed for scene components that have position. For example, the ambient and directional lights do not have positions.

Frame Rotational Velocity

The rotational velocity of the component's frame.

Frame Rotational Velocity will only be displayed for scene components that have an orientation. For example, many lights do not have an orientation.

Inverse Kinematics

Clicking on an object and dragging normally results in it being moved within the scene. If Inverse Kinematics are enabled, the object will be rotated as though it is connected to its parent with a rotatable Joint.

With Inverse Kinematics, the object is rotated so that the object's "end" points at the desired location. If the object has no identifiable "end" it will simply rotate in an undefined manner. For example, a cylinder has two potential "ends". If the cylinder is centered on its frame it is not possible to detect if the cylinder's top or its bottom should point at the desired location. Only when the cylinder has been shifted so that it is centered on either the top or bottom of the cylinder is it clear what the "origin" of the cylinder is and what the "end" of the cylinder is. The Shift Tool can be used to shift the object on its frame so that a clear "end" is detectable.

A rotation range can be specified to restrict the rotation of the joint. These ranges are in degrees and are relative to the parent frame not the object's frame. The object view shows the range of motion for the joint.

Inverse Kinematics joints work best when it has no restrictions or when movement is restricted to one or two axes.

Inverse Kinematics can be disabled, enabled, or fixed. If set to fixed, its position will not be changed relative to its parent, but will still be part of the Inverse Kinematics chain. This is handy for bones such as Collar bones that have a specific position, but do not move.

General Light Attributes

All lights have color, an attenuation type and an attenuation factor.

Color can ranges from black (off) to white (maximum intensity).

The attenuation type and factor specify how the intensity of the light changes with distance.

Whether a light is used to a source for shadows can also be set. Note that this option also affects whether a light will produce visible light due to particle interaction when raytracing. See the File Properties for more information.

3D Canvas Pro users can also set a glow effect for lights. This option is only available if you have MegaPOV installed and is only rendered when an image is raytraced. Note that the size of the glow effect depends on the intensity of the light. Full intensity light produces very large glow effects.

Spotlight Attributes

Spotlights have additional properties including the Range, Umbra angle and Penumbra angle.

Range is the distance from the spotlight that is lit by the spotlight and is in model units.

Umbra and Penumbra are specified in radians (3.14 = 180 degrees).

Camera Attributes

The Field of View of the Animation Camera can be set. The default is .5.

If you have 3D Canvas Pro, you can also set the amount of focal blur to display when using POVRAY raytracing to create a Snapshot or Video.

The Focal Point is the distance from the camera where sharp focus occurs. The Aperture is much like a camera's aperture and is used to adjust how much blurring occurs. A small aperture results in little blurring and a large aperture results in much blurring. You can also set a Quality level. Higher quality takes longer to render.


Using the Scene Hierarchy

Hierarchy Overview
Naming Scene Components
Changing the Hierarchy of a Scene


Creating and Applying Materials

Materials Overview
Using the Material Palette
Using Texture Libraries
Using Material Libraries


Using the Material Palette's Raytracing Attributes

Using the Material Palette's Raytracing Attributes (Available with 3D Canvas Pro)

There are a number of material options that are only visible when a Snapshot or Video has been rendered with POVRay.

POV-Ray is a Raytracing rendering engine that is available for free at www.povray.org. Rendering with POV-Ray is much slower than with Direct3D, however it produces more dynamic images with true shadows and reflections. Note that the lighting scheme for POV-Ray is slightly different than Direct3D so you may find that the final image produced by POV-Ray is somewhat darker, or brighter than the Direct3D produced image. Also, textures are not rendered properly unless you have the MegaPOV version of POV-Ray which is available at ftp.povray.org. There are also differences in interpretation of materials that may make your objects look somewhat different.

General

Brilliance

This is useful for increasing the brilliance of metallic materials.

Reflection

Allows you to specify how reflective an object is.

Pattern

Allows you to specify a pattern to place on the object. Available patterns are Bumps, Dents, Ripples and Wrinkles.

Depth

Allows you to specify how deep the pattern should appear to be.

Size

Allows you to specify how large the pattern should be.

Iridescence

Factor

The amount of Iridescence the object has.

Thickness

Iridescence is caused by a thin film on the object. The thickness of the film affects the appearance of the Iridescence.

Turbulence

Causes turbulence in the film.

Specular Refinements

Roughness

A Specular highlighting refinement that adjusts the size of the Specular highlight.

Metallic

When selected there is a increase in how metallic the object looks.


Using the Menus, Toolbars and Other Functions

Using the Menus
Using the Toolbars
Using Alternate Keyboard Functions
Importing and Exporting


Options

3D Canvas Options

The 3D Canvas Options window provides a number options for configuring how 3D Canvas works and looks. There are two tabs, the Editing Tab and the Device Tab.

Editing

General

Mouse Style

If you select "3-Button", the middle button of your mouse will be configured for navigation. As a result, the Button-Toolbar-Navigate.gif (919 bytes) will no longer be displayed on the Edit Toolbar since all of its features will be assigned to the center button.

Object Snap to Interval

When working with objects, their position and size are modified to align with this Snap to Interval. You may disable Snap To by de-selecting the Button-SnapTo.gif (163 bytes) on the Main Toolbar.

Point Snap to Interval

When working with points, their position and size are modified to align with this Snap to Interval. You may disable Snap To by de-selecting the Button-SnapTo.gif (163 bytes) on the Main Toolbar.

Grid

You may disable the grids from being showed by de-selecting Button-Grid.gif (151 bytes) on the Main Toolbar.

Origin X

The X position in 3D Space where the grid should originate.

Origin Y

The Y position in 3D Space where the grid should originate.

Origin Z

The Z position in 3D Space where the grid should originate.

Size

The size of the grid.

Interval

The number of world units represented by a single grid interval.

Show Vertical Grids

Should vertical grids be shown? This may be overridden by de-selecting Button-Grid.gif (151 bytes) on the Main Toolbar.

Show Horizontal Grid

Should the horizontal grid be shown? This may be overridden by de-selecting Button-Grid.gif (151 bytes) on the Main Toolbar.

Device

You may select between Direct3D HAL, meaning Hardware Accelerated, or RGB Emulation. Hardware acceleration is much faster, and should be chosen. Note that simply because you choose Direct3D HAL, doesn't mean that 3D Canvas will run with 3D Acceleration. If you choose a screen resolution or color depth that is not accelerated, RGB Emulation will result. Most older, and some newer, 3D graphics cards do not support 32 bit color depths, so if your desktop is set to 32 bit color (true color), you may not see any hardware acceleration.

Render Two-Sided Faces

By default 3D Canvas renders both sides of faces.

If you are creating a model for a game you may want to deselect this option to render faces solid on one side and transparent on the other.


File Properties

The File Properties provides a number options for the appearance of the scene including background color, image and fog properties..

Scene

Background

An image may be selected that will be rendered as the background to your scene.

You may disable the background image from being rendered by de-selecting Button-Image.gif (171 bytes) on the Main Toolbar.

Color

You may alternatively select a background color to be rendered as the background to your scene.

Raytracing (Available with 3D Canvas Pro)

Radiosity Level (Available with 3D Canvas Pro when using raytraced rendering)

Radiosity lighting produces much more life-like lighting than standard raytracing provides.

The quality of radiosity light can be adjusted. A value of zero means do not render radiosity lighting.

Atmosphere

You may disable fog (atmosphere) from being rendered by de-selecting Button-Fog.gif (158 bytes) on the Main Toolbar.

Mode

You may select the mode in which fog will be rendered. The general options are Linear, Exponential and Exponential Squared. If you are a 3D Canvas Pro user and are rendering with POVRay you can also choose to disable standard fog and only render atmospheric effects created by particles (See below).

Color

The color of the fog may be selected by clicking on the current color.

Raytracing Particles (Available with 3D Canvas Pro when using raytraced rendering)

This simulates the effect of light reflecting off of particles in the air. It is useful for producing "visible light" such as Spotlights in fog.

Note that there are a few tricks to getting a good effect with this in POVRay:

  1. To enable "visible light" it is necessary to enable Render Atmosphere on the primary toolbar.
  2. You will need at least one spotlight in your scene or you will not see any "visible light".
  3. "Visible light" is only visible if there is something behind the "visible light". This is easy for any scene that takes place in the interior of a room. But if you want to have "visible light" in "space" you will need to create a giant sphere and place your spotlight and camera inside it. This appears to be a bug in the current version of POVRay. It may be repaired in the future.
  4. You may need to add additional lighting to your scene since "atmosphere" acts like fog reducing the amount of light in a scene.
  5. Making the Atmosphere's Linear: Max. (see below) large helps make the scene brighter.
  6. All point lights and parallel point lights in your scene must be set to NOT cast a shadow. You can do this by right clicking on the lights and de-selecting Cast Shadow. This appears to be a bug in the current version of POVRay. It may be repaired in the future.

Color

The color of the particles. Black disables raytracing particles.

Scatter Freq.

The portion of the light that is scattered by the particles rather than being absorbed. A larger value will result in more visible light.

Linear

The start and maximum distance for linear rendered fog.

Density

The density of exponential rendered fog.

Textures

A number of texture rendering options are provided. Linear is the default because it produces good results at good rendering speeds. If you have a fast system, you may find that Linear MipMap Linear will produce the best results. Point sampled produces the worst results, and should only be chosen if you are running without 3D Acceleration.


Deform Tool Options

The range of effect of the Deform Tool can be set. The range is expressed in 3D Canvas units.


View Selection

The view selection window provides several scene view configurations.

Default positions and view orientations are set for each configuration. You may change the size of each pane by dragging the divider between them. Also, you can change view orientation by right clicking and selecting View.


Using the Edit Control to Modify Components

Control-Edit.jpg (2734 bytes)

The edit control is displayed when you select a scene component.

Clicking on an axis (green, blue or red) and dragging results in the object rotating around its origin using the axis selected. Holding down the shift key while dragging results in your view of the scene being rotated around the active object's origin.

Clicking on the sphere where the axes meet and dragging allows rotation around both the X and Y axes. Holding down the shift key while dragging results in the your view of the scene being rotated around the active object's origin.

Clicking on one of the light gray planes that represent the XZ or YZ axis and dragging results in object, face(s) or point(s) being moved along the selected plane.

Clicking on one of the dark gray planes that represent the XZ or YZ axis and dragging results in the selection being scaled along the selected plane. Holding down the shift key while dragging results in equal scaling in all directions. In the case of a light, scaling results in the intensity of the light being scaled. In the case of the animation camera, scaling results in the Field of View of the camera being adjusted.


Grouping Objects

Select an object, click Button-Toolbar-GroupObjects.GIF (147 bytes), and then a second object to cause the first object to be added to the same group (frame) as the second object.


Modifying Scene Components

Using Tools
Using Operations
Using the Skeletal Operations
Applying Boolean Set Operations
Duplicating Objects


Modifying Components with the Mouse

Components

Clicking on an component and dragging results in the component to be moved along the xz plane. Holding down the shift key while dragging scales the component on the xy plane.

Right-clicking on an component and dragging results in the component to be moved up and down along the Y axis. Holding down the shift key while dragging scales the component on the Y axis.

For both the Left and Right mouse buttons, clicking on an component while holding down the control key, and dragging scales the component equally in all directions.

Scaling generally applies only to objects. Scaling of lights is defined as an adjustment to the light's intensity. Scaling of the Animation Camera adjusts its Field of View.

Object Faces

While using the Point and Face Selection tool, clicking on a face and dragging results in the face being moved along the xz plane. Holding down the shift key while dragging selects multiple faces. Holding down the control key while clicking/dragging toggles selected faces. Holding the alt key and clicking on a face results in the selection of all faces that point the same direction. Holding the alt key and ctrl key and clicking on a face results in the selection of all faces that are the color of the face selected. Holding down the control key and shift key while dragging moves the face in the direction that the face points.

Right-clicking on a face and dragging results in the face being moved up and down along the Y axis.


Navigating Through a Scene

Using the Navigation Control
Using the Mouse to Navigate


Using the Bend Operation

Operation-Bend-A.gif (15309 bytes)

The Bend Operation is used to bend objects.

A series of control points are connected to create the deformation curve. These points define a B-Spline curve. This form of curve has a start control point and end control point that are guaranteed to be on the curve, but any other control points act as magnets attracting the curve in their direction.

Click on a control point and drag to bend the object in the region of the control point.

The top left panel is the deform preview. The bottom left panel allows you to select the orientation of the deformation.

Button-WireframeSmall.gif (139 bytes) display the object in wireframe.

Button-DeleteSmall.gif (918 bytes) resets all deformation factors.


Using the Bevel Operation

Operation-Bevel-A.gif (11227 bytes)

The Bevel Operation creates a bevel on the selected faces.

The Bevel Operation is made up of two panes. The first pane is the bevel preview, which displays the bevel effect created. The second pane is the bevel source grid where you define the bevel. A series of control points are connected to create a bevel. Control points are added by clicking on the grid. An initial control point is automatically created which is colored green. Each point that you add is colored white. The points are connected using a B-Spline curve. This form of curve has a start control point and end control point that are guaranteed to be on the curve, but any other control points act as magnets attracting the curve in their direction.

You may also set control points to be fixed, so that they are guaranteed to be on the curve. Clicking a second time on a control point results in it becoming a fixed control point which is colored blue.

Shift-Clicking on a control point creates a new control point along the curve. Ctrl-Clicking on a control point deletes the control point.

A slider is provided to adjust the detail level of the created bevel.

Button-WireframeSmall.gif (139 bytes) display the object in wireframe.

Button-DeleteSmall.gif (918 bytes) resets the bevel.


Using the Bulge Operation

Operation-Puff-A.gif (5227 bytes)

Move the slider to adjust the bulge effect for the object.

This operation works best on objects that are centered on their frame.


Using the Burst Operation

Operation-Burst-A.gif (8734 bytes)

Move the slider to adjust the burst effect for the object.


Using the Crease Operation

Operation-Crease-A.gif (6477 bytes)

You can increase or decrease the amount of creasing on an object by adjusting the slider. Note that this does not actually affect the shape of the object, just how 3D Canvas smoothes it while rendering.


Using the Extrude Operation

The Extrude Operation extrudes, and optionally Bevels, the selected faces.

You may set an extrusion amount and bevel amount for the Extrude Operation by right-clicking on Operation-Extrude.gif (924 bytes).

The Extrude Operation can also be useful for sub-division a polygon. Setting a 0 Extrude Amount and Negative Bevel amount results in face sub-division.


Using the Flatten Operation

Operation-Flatten-A.gif (5370 bytes)

Move the slider to adjust the Flatten effect for the object.


Using the Particle Operation

The Particle operation is used to clone objects. This is a good way to create a forest from a single tree or a lawn from a single blade of grass.

This cloning process can be animated so that a single smoke particle can be become a trail of smoke from an engine or smoke coming from a fire.

Modeling

Various effects such as scaling, rotating and translating (moving) can be applied to each object clone. Instead of a simple static effect being applied to each clone, each clone is given a random effect within a specified range. So for instance if you were to enter -10 to 10 in the Translate X section each object would be translated between -10 and 10 units along the X axis. The result would be a random distribution of between -10 and 10 units.

The Translate effect is in 3D Canvas units, the Rotate effect is in degrees, and the remaining effects are in percent. So for instance a range of -20 to 20 in the Scale X section means scale the object between -20% and 20% along the X axis. Note that if an object has no X width it will not get larger since 0 * 120% = 0. This is true of all effects that use percentages. If an object has no red component in its color you will not be able to affect the red component of the color.

Animation

Animation provides many more options but the above description still applies. The big difference is that rather than having a large number of particles created all at once, the particles are generated during the animation. The Generation Frequency indicates how many particles are generated for every animation key-frame. Note that particles are not generated until the first key-frame of animation for the object's frame. So if the frame doesn't have any key-frames until time 5 there will be no particles cloned until time 5.

In addition to setting an initial range of effect you can also set a velocity and acceleration for the effect. So, for example you could have a particle be scaled a small amount when it is first created, but as the animation runs the particle could get larger and the rate of which it gets larger could increase.

The Generation Duration is the length of time (in key-frames) during which particles are generated. You can also specify a Life Span which is the length of time that the particle lives. Note that this is a range so that particles disappear at varying times.

Particles can be generated using two different methods. The particles can be emitted, which means that they are dropped along the path of the animation, or they can follow the animation path of the particle's frame. Emitted particles are particularly useful for smoke trails that are emitted from an object.

Animating particles can be very slow, so it is important to remember to use as few particles as possible when designing the particle effect and then increase the number of particles for the final rendering.


Using the Reduce Operation

Operation-Reduce-A.gif (10875 bytes)

Reduces the number of faces and points in an object while maintaining object detail.

Move the slider to adjust the number of faces and points in the object. The slider is in 1% increments with the rightmost location being 100%. 100% means keep all of the object's points. Adjusting the slider to the 50% mark will reduce the number of points by half. Adjusting the slider to the 0% mark removes all points that can be removed while retaining the basic shape of the object.

Button-WireframeSmall.gif (934 bytes) display the object in wireframe.


Using the Scale Operation

This operation scales (resizes) the selected object or face.

You may set the amount to scale by right-clicking on Operation-Scale.gif (936 bytes).

Objects may also be scaled using the Edit Control.


Using the Shear Operation

Operation-Shear-A.gif (15165 bytes)

The Shear Operation is used to shear objects.

A series of control points are connected to create the deformation curve. These points define a B-Spline curve. This form of curve has a start control point and end control point that are guaranteed to be on the curve, but any other control points act as magnets attracting the curve in their direction.

Click on a control point and drag to shear the object in the region of the control point.

The top left panel is the deform preview. The bottom left panel allows you to select the orientation of the deformation.

Button-WireframeSmall.gif (139 bytes) display the object in wireframe.

Button-DeleteSmall.gif (918 bytes) resets all deformation factors.


Using the Shift Operation

Shifts the selected object. This is typically used when you want an object to rotate around a point other than its center.

You may set the amount to shift by right-clicking on Operation-Shift.gif (931 bytes).

You may also shift objects using the Shift Tool.


Using the Smooth Operation

The Smooth Operation divides the faces that make up the selected object, and attempts to smooth it.

You may set a smoothing condition for the Smooth Operation. Each point in an object is normally shared by a number of faces. The angle between the faces that share a point is calculated and smoothing occurs at that point if the angle meets the smoothing condition.

For example, a cube has an angle of 90 degrees between faces, so a condition of "Less than 90" will result in no smoothing, but a condition of "More than 89" will result in smoothing.

The smoothing condition can be set by right-clicking on Operation-Smooth.gif (525 bytes).


Using the Swirl Operation

Operation-Swirl-A.gif (6130 bytes)

Move the slider to adjust the Swirl effect for the object.


Using the Taper Operation

Operation-Taper-A.gif (14646 bytes)

The Taper Operation is used to taper objects.

A series of control points are connected to create the deformation curve. These points define a B-Spline curve. This form of curve has a start control point and end control point that are guaranteed to be on the curve, but any other control points act as magnets attracting the curve in their direction.

Click on a control point and drag to taper the object in the region of the control point.

The top left panel is the deform preview. The bottom left panel allows you to select the orientation of the deformation.

Button-WireframeSmall.gif (139 bytes) display the object in wireframe.

Button-DeleteSmall.gif (918 bytes) resets all deformation factors.


Using the Tip Operation

The Tip Operation creates Tips on the selection.

You may set an Tip extrusion amount by right-clicking on Operation-Tip.gif (529 bytes).


Using the Twist Operation

Operation-Twist-A.gif (11374 bytes)

The Twist Operation is used to twist objects.

A series of control points are connected to create the deformation curve. These points define a B-Spline curve. This form of curve has a start control point and end control point that are guaranteed to be on the curve, but any other control points act as magnets attracting the curve in their direction.

Click on a control point and drag to twist the object in the region of the control point.

The top left panel is the deform preview. The bottom left panel allows you to select the orientation of the deformation.

Button-WireframeSmall.gif (139 bytes) display the object in wireframe.

Button-DeleteSmall.gif (918 bytes) resets all deformation factors.


Using the Unwrap Operation

Operation-UnWrap-A.gif (36345 bytes)

The Unwrap operation is used to create a texture that can be painted in a paint program and applied to an object. The object will be unwrapped based on the Wrap type from the Material Palette.

Simply select the texture size that you want and click the OK button.


Using the UV Map Operation

Operation-UnWrap-A.gif (36345 bytes)

The UV Map operation is used to apply a material to a selection and then permit the adjustment of the created texture mapping coordinates.

The left panel is the UV Map preview. The right panel is used to adjust the texture map coordinates. Each green handle corresponds to the mapping position of a point. These handles can be moved to adjust the point's texture map coordinates.

Button-DeleteSmall.gif (918 bytes) resets all texture coordinates to their unmodified positions.


Order Form

To order via mail send this order form and a check or money order payable to:

Richard Borsheim
c/o Amabilis Software
3071 Glen Drive, Suite 402
Coquitlam, BC
Canada V3B 7R1

Customer information is confidential and will not be shared or distributed to any third party.

3D Canvas Pro _____ at $69.95 ($99.95 Canadian) each = | ____
Total payment: | ____

I wish to receive my license by: | Internet E-Mail | ___
 | Conventional Mail | ___

Date: | ___________________________________
Name: | ___________________________________
Company: | ___________________________________
Postal Address: | ___________________________________ ___________________________________ ___________________________________ ___________________________________
Day Phone: | ___________________________________
E-Mail address: | ___________________________________
How did you hear about 3D Canvas? | ___________________________________ ___________________________________
Comments: | ___________________________________ ___________________________________

I agree to the registration terms set forth in the 3D Canvas Pro License. | ___________________________________
 | (Signature)

Copyright © 2001 Amabilis


Registration
License Agreement for 3D Canvas
License Agreement for 3D Canvas XE/Pro


Creating, Opening and Saving Scenes

Creating a New Scene
Opening a Scene
Saving a Scene


Scripting

Scripting Overview
CanvasApplication Object
CanvasScene Object
CanvasFrame Object
CanvasObject Object
CanvasFace Object
CanvasBone Object
CanvasLight Object
CanvasCamera Object
CanvasMaterial Object


Specifying a Bone Effect Range

Skeletal.gif (17499 bytes)

A bone's range of effect can be adjusted by double-clicking it or selecting it and clicking Button-Toolbar-AttachSkin.gif (151 bytes) on the Edit Toolbar.

The range of effect is displayed as a cylinder or a cylinder with rounded ends depending on the type of bone. Any point within the cylinder will be moved when the bone is moved.

For best results, ensure that each bone's range of effect overlaps another bone and that there are common points affected by at least two bones.

The Origin Range slider is used to increase or decrease the circumference of the bone's cylindrical range at the bone's origin.

The End Range slider is used to increase or decrease the circumference of the bone's cylindrical range at the bone's end.

The Extent slider is used to increase or decrease the length of the bone's effect.

Button-WireframeSmall.gif (139 bytes) displays the skin in wireframe mode.


Table of Contents

Introducing 3D Canvas
Getting Started with 3D Canvas
Tutorials
What's New
Creating, Opening and Saving Scenes
Navigating Through the Scene
Creating and Using Scene Components
Modifying Scene Components
Creating and Applying Materials
Using the Scene Hierarchy
Animating the Scene
Using the Menus, Toolbars and Other Functions
Scripting
Registration