Art of Illusion modelling tutorial
the hourglass

Introduction

In this tutorarial you'll be shown how to model a simple object with Art of Illusion (AoI), using as an example the hourglass in the picture above. This tutorial does not cover all the feature found in the AoI modeller, there are simply too many, but enough to get you started. You will propably figure out the rest by simply trying, experimenting, creating cool graphics.

If you are already familiar with 3D modelling, you will propably not need to follow this tuturial step by step. You might leaf through it to get some idea of the program's capabilities, but please go and just try it out yourself. For you newbies: I'll get you going making your own 3D graphics in just a few minutes.

For the sake of completeness, an AoI scene file called "hourglass.aoi" is distributed with this tutorial that you can simply open with the modeller. However, if you want to learn from this tutorial, you should try building the scene yourself.

Look around

Lets assume that you've downloaded the whole bunch of AoI, you've got the right JDK version, read the readme files, and got the thing going. If not, refer to the Art of Illusion home page.
When you start AoI, you are presented the main screen. On top of the window is your basic menu bar; take a look around, see what's in the pulldowns. If there's a lot up there that you don't understand, don't worry. You will in time.

To the left you see some icons. Clicking them selects a tool and a single line of help is displayed at the bottom of the screen. The icons are:

move object

rotate object

resize object

move/resize/rotate object

create box

create sphere

create cylinder

create spline mesh

create polygon

create curve

create camera

create light source

move view

rotate view

The bulk of the screen displays four views on the 3D model: Front, Left, Top and Camera1.
For each view the user can set a camera or standard viewpoint (front, left, top, etc.), perspective or parallel viewing mode, display mode (wireframe, shaded, etc.), and a zoom factor (default 100). These viewpoints can be changed using the two appropriate tools for movement and rotation.
You will often change the scale and position of these views but not the viewpoint. The standard views are quite sufficient for most modelling sessions. Only the lower right view, Camera1, will be changed often because it's very useful for checking out the model.

On the right is a (now empty) space for showing a list of objects (shapes) in your model. From this list you can select or deselect objects by clicking on their names. Also, double-clicking will bring up the edit-object dialog.

Before getting started, you need to know about one more thing: coordinates. The positions and dimensions of objects are determined by a coordinate system with three axes, named X, Y and Z. The X axis is considered to be pointing to the right, that is: the greater the X coordinate of a point, the more to the right it is in the model. Likewise, the Y axis points upwards and the Z axis points out of the screen towards you. (In jargon this is called a right handed coordinate system)

Getting started

It's commonly considered good practice to start a 3D modelling session by first sketching your model on grid paper, to get some idea of its dimensions and shape. If you don't, then at least set up a grid in the modeller:

select Scene->Grids from the menu

set Spacing to 0.5

set Subdivisions to 10

check Show grid and Snap to grid

click OK

This allows us to easily draw objects with an exact position and size and to align objects othogonally. You may change the grid parameters at any time to accomodate your needs for finer or coarser grids.
Now let's start drawing. First draw a box for the wooden top and bottom of the hourglass frame:

select the 'create box' tool

draw a box of 1.5 units wide and 0.1 units hight in the front view. That is, with a grid of 0.5 units and 10 subdivision, 3 gridlines wide and two subdivisions high.

select the 'resize object' tool

scale the object in the top view until it is square, 1.5 by 1.5 units.

select the 'move object' tool

move the box so it is centered in the top view.

move it in the front view so it is just below the second grid line from the center.

check out the box's coordinates in the Properties panel at the bottom right of the window.
The box should be sized 1.5 units on the X axis, 0.1 units on the Y axis, and 1.5 again on the Z axis. It should be positioned with its origin at coordinate (0, -1.05, 0). From this panel you can change the box's size, position, orientation, and other properties (see figure below).

Notice that you can draw any object in either the front, left or top view. Since you can only draw two dimensions at once, you'll have to set a third dimension afterwards. You may use the scale and move tools for changing the position and size of the box. But if you have a clear idea of what the dimensions should be, the Properties panel is much quicker.

The first box is the bottom of the model. The top looks exacly the same, so create a box for it by copying.

select the first box, Cube 1 from the list on the right

select Edit->Copy from the menu

select Edit->Paste from the menu

move the copy upwards until the bottom of the box is at y=1. Do this by using either:

the 'move object' tool. Hold shift to move only orthogonal.

the Properties panel. Center it at y=1.05.

the Object->Transform Object option from the menu. Move it 2 units upwards on the Y axis.

the Object->Align Objects option from the menu. Align the bottom (y-axis) to 0.

Now we have two boxes, symmetrical about the origin. Note that both boxes are still named Cube1. You can change the name of the selected object in the Properties panel. Proper names could be 'Top' and 'Bottom'. Now it is easier to keep them apart when selecting from the list.

Using the techniques above we can also create the four poles between the top and bottom boards. Use the 'create cylinder' tool to create a cylinder of the following proportions:

position: X = 0.6, Y = 0, Z = 0.6

size: X = 0.05, Y = 2, Z = 0.05

And create three more cylinders in the other corners of the hourglass frame.
Hints:

draw the first cylinder in the front or left view, this allows you to set it's diameter as well as its length. Position the cylinder using the other views.

Create the other cylinders by copying and moving.

You cannot see the cylinders you've created in the top view because they are obscured by the top box. Select Scene->Display Mode->Wireframe from the menu, and you will be able to see them again.

Now we have a frame for the hourglass. Now use the 'move viewpoint' tool and the 'rotate viewpoint' tool to change the lower-right view (camera1). Now you can see the model from any angle you like. The result should look something like this:

A complex object

The most complex shape in this scene is the glass bulb. It will be created using the Lathe tool. A lathe is an object created by revolving a spline curve, which determines the contour of the shape, around an axis.
To create the contour curve we will use the create curve tool. To avoid painfully precise mouse work, first create a finer Grid: spacing 0.2 with 2 subdivisions. Then select Scene->One View from the menu. You can then set the zoom factor of the view to 200 percent. Now create the spline curve by adding the points 1 though 9 shown in the image below (in that order). Double-click point 9 to finish the spline curve. Make sure that the first and the last point are nicely on the y axis and tangent to the the top and bottom boxes we made earlier.

This is an approximated curve, meaning the curve does not pass exactly through all the points. You can also create interpolated curves, where the curve does pass through all the points. Double-click the create curve icon to pick which kind of curve to create. The approximated curve is less intuitive, but produces a smoother shape than the interpolated curve does. The direction of the curve at the beginning and end of the curve is determined by the only adjacent point. The curve is vertical at point 5 because points 4 and 6 are both vertically displaced from this point. In general, the curve at any point is determined by the immediately preceding and following definition points.

As the central axis of the glass bulb, we will use the line running though the endpoints of the curve. In our drawing, this is the y axis, but by using the first line results in a solid object. To create the lathe, first select the curve and then select Tools->Lathe from the menu. In the lathe dialog, select the Line though endpoints as the lathe axis (see figure below).

The lathe shape is automatically centered at (0, 0, 0). This is exactly where we want it, so leave it. (Of course this is no coincidence. I planned it that way!). The spline curve that we created first is now redundant. You may delete it, but you don't have to since it won't show up in the final rendering. To delete an object, select it (from screen or from list of objects) and press delete on the keyboard. You may also use the menu option Edit->Clear.

Scene layout

Now we've finished modelling all the shapes. We should try to render the scene with accurate shapes and lighting. Before rendering though, we should determine the layout of the key elements in the scene, the camera and the light.

First, determine the position and orientation of the camera. This is easily done using the camera preview in the lower right corner. Translate and rotate the view using the move view tool and the rotate view tool. Hold Control while moving the view to zoom in and out. And you may roll the view over by holding Control and using the rotate view tool. You may also position the camera using the move object tool and the rotate object tool or with the Properties panel. The camera is an object just like any other. A good position might be one where you can see the top and two other sides of the object.

Next we should illuminate the scene. As you can see there is already a light source in the scene from the beginning of the session, Light 1. The light source should be positioned so that it illuminates the side of the object we are looking at. Light 1 is probably not positioned correctly given the position of the camera. Since this light source is also far away, we'll delete it and create a new one. AoI supports three types of light sources: point lights, directional lights and spot lights. We'll use the simplest of them, the point light. Follow the next steps to correctly illuminate the scene:

Find a position for the new light near the camera or at least on the same side of the object as the camera. Use a lower zoom factor (30) to find the camera in the views.

To create the light, click on the create light source icon and click over the position where you want the light. You should probably move the light (just like moving other objects) in one of the other views to get the correct position in 3D space.

We should change some properties of the light source to accomodate its position relative to the hourglass. You can do that with the Properties panel, as shown in the image below. The default Intensity value is a bit high, resulting in a picture that looks like the camera was blinded by the light. Change the intensity value to 0.8. Set the Decay Rate to zero. This value determines how fast light intensity decays over distance. In reality, light intensity decay is related to the squared distance. The default Decay Rate would result in a very dark image. This simple scene does not need this much realism anyway, so let's make things easy and turn it off.

Now let's render. Select Scene->Render Scene from the menu. Don't bother with the settings yet, just press OK on the render dialog. The result should be something like this:

Rather boring isn't it ? Everything is a dull white. We want wood and glass, we should add textures.

Textures and materials

Wood

Let's create a texture that looks like wood. Select Scene->Textures from the menu to display the Textures and Materials dialog. Find the popup menu that says New... (in the top right corner of the dialog) and select Procedural 3D texture.

3D procedural textures determine color, roughness, reflection and other surface properties as a function of 3D coordinates. For any position in space, the texture defines what a shape's surface looks like, as if we had cut the shape out of a solid block of this 'material'. However, for objects of which we can actually see the inside, transparent objects, we should use a material to define the inside, not a texture. Textures only determine what the surface of an object looks like.

A function mapping 3D coordinates to the values of texture properties is created by graphically connecting functional components. There are six categories of components:

Values determine a color or value that may be used as input for other values.

Operators are simple mathematical operations like addition and subtraction.

Functions output scalar values that depend on their inputs.

Color functions output color values that depend on their inputs.

Transforms transform coordinates to a new set of coordinates.

Patterns determine a scalar value as a function of coordinate values. This scalar value may be used to determine a color pattern for the texture or to pattern some other texture property.

When you've created a new texture, you'll be presented with a dialog in which you may specify the texture. There's a large empty white area, in which we'll add functional components. And to the right there are blocks with names like diffuse, specular, transparent, etc. These are properties of a texture which will be connected to the components we've added in the empty area.

The following components are added to the procedure to make a wood texture:

Select Patterns in the menu on the left side of the window to display the Patterns category, then click on Wood. This is a pattern of concentric cylindrical bands along the Z axis, just like the cross-section of a tree trunk has concentric rings of color. The default inputs of this components are the three coordinate values, X, Y, Z and a 0.5 noise value. These are fine, so we won't have to add components for them.

We'll use this pattern for the diffuse color of the texture. Select the Color Functions category in the menu, then click on Custom. Connect the wood pattern component to the custom color function, and connect the color function to the diffuse color component at the right of the dialog (see figure below). Now you should see rings appear on the preview image.

Next we should add some nice woodish colors to the texture. To do this, double-click the custom color function component. You'll be presented with the dialog below. Add extra markers (little trangles) and set the color at each triangle to match the colors in the dialog below.

Finally, we'll make the wood texture a bit denser, more rings. Double-click the wood pattern component and set the values shown in the dialog:

The preview now looks like this:

The texture doesn't really look very realistic but it will have to do for now. To create more complex textures, read the section on textures of the the Art of Illusion manual.

This texure will be assigned to the top and bottom boards and the sticks in between that we've created earlier. Select all the shapes that should be assiged the Wood texture. Then select Object->Set Texture and Material from the menu. Now select the Wood texture and press OK.

Now select only the Top and Bottom objects. Again call up the set texture dialog. Now click on the button labeled Edit Mapping. In this dialog, you may scale, translate, and rotate the texture to fit the object. We'll only rotate the texure to get the following result:

Now for the sticks. Select them all and edit the mapping mapping again. Create a mapping like this:

Now let's look at the result. The rendered image will look something like this:

Glass

The glass bulb object should have the material properties of glass. That is, it should should be transparent to light and it should also reflect light on the surface. Light that passes through a glass object is refracted and attenuated (e.g. diminished, change of color). Reflection and transparency are texture properties. Refraction and attenuation are properties of an object's material. Materials can only be assigned to solid objects. This makes sense because the amount of attenuation and direction of the light after refraction depends on where a ray of light enters and on where it leaves the object. Fortunately, our bulb shape is a solid object. All lathed shapes with the rotation axis through the begin- and endpoints of the profile curve are solids.

First we'll create the glass texture, and then the glass material.

Select the bulb. From the Texture option in the Properties panel, select New Uniform Texture. This texture will make the surface transparent, so the inside material will be visible, and it determines the amount of specular reflection. The image below shows what settings to use for the new texture. Transparency is controlled by both the Transparent Color and the Transparency value. The red, green and blue fraction of the transparent color determine how much of each color component remains when light passes though the surface. It is a filter color. White, the default color, means that light of any colors passes the surface. Black means no light passes. The transparency value determines the total fraction of the light that passes though. A value of 0.7 means that 70 percent of the light is let through the surface. This also means that the transparent component determines the color of the surface for 70 percent. The remaining 30 percent of color will be determined for 100 percent by reflection, so the Specular value will be set to 1.0. Shininess determines the brightness of reflected highlights. In most cases, specularity and shininess should be set to the same value. The surface's diffuse component does not affect the total color with these settings. We'll use the object's material to color the glass.

To create a new material, select New Uniform Material for the Material option in the Properties panel. The new material may also be named Glass. You can see the parameter settings in the image below.
The color of a material is affected by three parameters: Emissive Color, Transparent Color, and Scattering Color. Emissive color is the color of light given out by the material. Use this for glowing materials like fire. Our glass shouldn't glow, so this is set to black. Transparent color affects the light passing through the object, and also colors the shadows cast by the object. It specifies the fraction of red, green and blue that passes through. Scattering color is the color of light that gets reflected from inside the object. How much the light is attenuated is determined by the Density value. A value of zero results in no attenuation. For this glass material we'll specify a green scattering color that only shows on very massive objects.

The final rendering

The default black background makes the glass material look odd. To improve the aprearence of the glass, we'll set a bright background. Select Scene->Environment from the menu. In this dialog, Environment is already set to Solid Color. Click on the color box just below it, and change it to white.

Finally, to improve the image quality, set Antialiasing to Maximum in the render dialog. And if your light source is near the object, checking Soft Shadows will result in a more realistic image. Both options cause the raytracer to cast multiple rays per pixel. The results are averaged to create a smoother image. Setting the minimum and maximum number of Rays/Pixel to higher values results in better image quality and slower rendering speed. For a quick image, don't use these options. Good quality is achieved by setting minimum and maximum to 4 and 16 rays respectively. More rays may be needed for large soft shadow areas.

Raytracer settings and the resulting image are shown below:

Imagine it

This is where the tutorial ends, but Art of Illusion is capable of much more than shown here. From other tutorials and the manual you may learn about these. Most of the cool features are intuitive enough though, and you can simply try them all and see their effect.

Using the basics from this tutorial you can now start modelling the worlds of your imagination. Gradually, as you learn to master all of the program's features, you'll get better and better... and more addicted.