Art of Illusion



To Documentation Index


Version 1.1
For Art of Illusion version 0.9
Copyright 2001, Rick van der Meiden

Introduction

In this tutorarial you'll be shown how 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, expirimenting, creating cool graphics.

If you are allready 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 programs 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 you 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 create box
create sphere create cylinder
create spline mesh create polygon
create camera create lightsource
create interpolated curve create approximated curve
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, ect), perspective or parallel viewing mode, 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 usefull 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 deselct objects by clicking on their name. Also, double clicking will bring up the edit-object dialog.

Before getting started, you need to know about one more thing: coordinates. The position and dimensions of objects is determined by a coordinate system with three axis, 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 jagon 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 accomadate your needs for finer or coarser grids. Now lets 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 one subdivision 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 with the Object->Object-Layout from the menu. 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 dialog you can also change the box's size, position and orientation (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 Object Layout dialog 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 Object->Layout Object option from the menu. 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 both still named Cube1. You may change object names by selecting the Object->Rename Object option from the menu. 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.1, Y = 2, Z = 0.1
And create tree 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 approximated curve tool. To avoid painfully precise mouse work, create a 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.

The approximated curve is not very intuitive, but allows you to determine the direction of the curve more exactly than the interpolated curve does. The diretion of the curve at the beginning and end of the curve is determined by the only adjectent point. The curve is vertical at point 5 because points 4 and 6 are in both vertically displaced from this point. In general, the curve at any point is determined by the immeadiately preceding and the two next definition points (the curve is a quadratic spline, or, third order spline).

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 Tool->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. (Ofcourse 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 del 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 Layout object menu option. 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 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 propably not positioned correcty given the position of the camera. Since this lightsource is also far away, we'll delete it and create a new one. AoI supports three types of lightsources: point lights, directional lights and spot lights. We'll use the simplest of them, the point light. Follow The next steps to correctly illuminatre the scene:
  • Find a position for the new ligth 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 lightsource icon and click over the position where you want the light. You should propably move the light (just like moving other objects) in one of the other views to get the correct position in 3D space.
  • select Object->Edit Object from the menu. We should change some properties of the light source to accomadte its position relative to the hourglass. See the dialog image below for the correct values. The default Intensity value is a bit high, resulting in 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 lets make things easy and turn it off.
Now lets render. Select Scene->Render Scenefrom 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

Lets create a texture that looks like wood. Select Scene->Textures from the menu and press New in the texture dialog. In the next dialog, name the texture Wood and select the procedural 3D type (see dialog below).

3D procedureal 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 object 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 teture properies is created by graphically connecting functional components. There are six categories of components:
  • Values determine a constant color or value that may be used as input for other values.
  • Functions are components that output scalar values.
  • Color functionsoutput color values.
  • Transforms transform coordinates to a new set of coordinates.
  • Patterns determine a scalar value as a function of coodinate 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, tansparent, 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 Insert->Patterns->Wood from the menu. This is a pattern of concentric cylinderical bands along the Z axis, just like the cross-section of a tree trunk has concentric rings of color. The default imputs 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 diffue color of the texture. Select Insert->Color Fucntions->Custom from the menu. 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 apear on the preview image.
  • Next we should add some nice woodish colors to the texture.
  • To do this, doule 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 above.

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

The peview now looks like this:

The texture doesn't realy look very realistic but it will have to do for now. To create more complex texture, 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 from the menu. Now select the Wood texture and press O.K.

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, yoou 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. deminuished, change of color). Reflection and transparentcy 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 lathes 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.

In the texture's dialog, create a new uniform texture called Glass. This texture makes 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. The surface's diffuse component does not affect the total color with these settings. We'll use the objects material to color the glass.

To create a new material, select Scene->Materials and click on the New button. The new material may also be named Glass. It should be a uniform material. You can see the parameter settings in the image below. The color of a material is affect by two paramters: Material color and Transparent Color. Both colors parameters attenuate the color of the light as it passes through the material. Material color only affects the light that reaches the camera directly, it is the color that the object appears to have. Transparent Color affects all light passing though the object, and also colors the shadows cast by the object. The first color paramter is easier to use though because it species what color the object will look like. Transparent color however, specifies the fraction of red, green and blue that passes though. The rest of the ligh is reflected and determines the objects color. Howmuch the light is attenuated is determined by the Desnity value. A value of zero results in no attenuation. For this glass material we'll specify a simple green material color that only shows on very massive objects.

The final rendering

The glass we've created cannot be rendered by the raster renderer that we've used for previous renders. Open the render dialog (Scene->Render Scene) and select the Raytracer renderer. The raytracer casts 'rays of light' from the camera back to where they intersect objects. At this point on the object, rays are cast towards the light source to calculate lighting and find shadows. From objects with a specular reflection component or transparency, new rays are cast to find objects seen in reflections or though transparent material.

The default black background makes the glass material look odd. To improve the aprearence of the glass, we'll set a bright background. Due to a bug in version 0.8 a solid background color results in a incorrect rendering, so we'll use a texture for background. Select Scene->Environment from the menu. In this dialog, select texture-diffuse as a background. You may create a new texture with a diffent color or perhaps a procedural image (clouds make a nice exercise) but I'll use the default texture for now.

Finally, to improve the image quality, check the antialiasing option in the render dialog. And if you're (non-directional) 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 avaraged to create a smoother image. The minimum and maximum number of rays per pixel to higher values results in better image quality and slower rendering speed. For a quick image, don't use these options. Good qaulity 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 tutorial ends, but Art of Illusion is capable of much more than shown here. From other tutorials and manuals (at the time of this writing still to be written) 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 programs features, you'll get better and better... and more addicted.

Good luck.