Contents

The recommended approach to learning how to use Genesis is to follow the tutorial. The tutorial will show you how to build a teapot by using most of the editors main features.

The Editor Screen- An image showing all the main elements of the Genesis editor

Tutorial- An in depth guide showing you how to build a teapot

Quick Reference- A quick reference to all menus, tools and facilities

Programming for Genesis- For programmers amongst you, you already have a fully comprehensive development package on your hard disk for developing tools, applications or new geometry engines

Genesis Terms- Descriptions of some of the terms used in this help system


Editor Screen

This picture shows the elements of the Genesis Editors main window:

1. First view into the teapot scene (with overlay on)

2. Second view into teapot scene (with overlay off)

3. View into street sign scene (loaded from a lightwave file)

4. Palette

5. Control bar

6. Toolbox

7. Toolbar

8. Status bar

9. Overlay

10. Grid controls

11. Cursor co-ordinate display and lock buttons

12. Co-ordinate system listbox

13. Object listbox


Tutorial Introduction
Tutorial Introduction:

The quickest and easiest way to learn how to use the Genesis editor is to follow this tutorial. Each of the following steps describe how to create a beautiful antique (shiny green) teapot. OK, it might lack the elegant sophistication of a real teapot let alone an antique, but it does illustrate the main principles you need to understand to work with Genesis.

Each of the steps you are required to perform on the editor are marked with a * character. e.g.

* <This describes something you must do>

If you have used a 3D editor before and want to get through the tutorial quickly, you can skip over much of the text in between. If you follow the tutorial in depth it should take you about 40 minutes after which you will have constructed this;

1. Getting use to the 3D cursor

2. Learning to control the view

3. How to make the main teapot body

4. How to make a small handle for the lid

5. How to correctly position the lid handle on the lid

6. How to make the main handle

7. How to position the main handle

8. How to make the spout

9. How to make a hole in the spout

10. How to position the lights

11. How to convert the teapot into a continuous mesh

If you find you have more thumbs than fingers when it comes to performing these steps you could always load the various steps from the <genesis>\objects directory. The object you should have at the end of each step is named teapot#.gen, where # is the step number (above).


Moving the 3D cursor (tutorial)
Moving the 3D cursor

Before we start the tutorial properly you should take a couple of minutes to familiarise yourself with the 3D cursor. Generally when we mention the cursor we are referring to the 3D cursor drawn in the view window and not the mouse pointer cursor. When we mean the mouse pointer cursor we will clarify this.

You can move the 3D cursor by clicking the left mouse button in the view window and moving the mouse while the button is pressed. Depending on the orientation of your view within the window, moving left/right will move the 3D cursor in the most horizontal axis and up/down in the most vertical axis. To move in and out of the third 3D axis you must press the right mouse button as well.

* Try moving the cursor in each of the three axis.

Locking an axis

You can position the 3D cursor more accurately by positioning say the x axis, then locking it in x so that moving the mouse will not affect its x position. Use the buttons alongside the x, y and z co-ordinates on the control bar to lock or unlock an axis.

Moving the cursor to a vertex position

The 3D cursor can be automatically positioned at the same point in space as a vertex by double clicking the mouse cursor on top of the vertex.


Learning to control the view (tutorial)
Learning to control the view

It will also be useful to spend a couple more minutes learning how to move the viewpoint. Although no objects yet exist in our 3D space we do have a grid which is good enough to show how we can change the viewpoint.

Genesis has a mode whereby you can move the viewpoint interactively using the mouse, however most of the time, when we are actually constructing objects we find that we need use of the mouse for all sorts of other things. This is called Edit mode and is the mode Genesis starts up in.

The set of buttons in the middle of the control bar marked Pos, Dir, Up, In, Out and Back are used for controlling the viewpoint when we are in edit mode.

Pos, positions the viewpoint at the cursor.

Dir, sets the direction towards which we are looking at the cursor. Generally the cursor is positioned in the middle of the object before pressing Dir.

Up, sets the Up direction for the view window. Usually this is parallel to the y axis but it doesnt need to be.

In, zooms in towards the direction position. Each time it is pressed the viewpoint moves in by a certain percentage of the distance towards the direction position. This means that the steps get smaller as you get closer to the direction point, and you cannot move past the direction point. For this reason it is best to position the Dir point in the middle of your object, and not just towards the direction of your object.

Out,  zooms out from the direction position. The exact opposite of In.

Back, moves back to the last viewpoint that was rendered. If you mess up your view and find you are looking into blank space, and feel a bit disorientated, you can press this as many times as is needed.

* Try experimenting with changing the viewpoint, first using the Pos and Dir buttons, then using the In and Out buttons.

* Press Back until you are back to the view you started with.


Make the main teapot body (tutorial)
To make the main body of the teapot:

We draw a 2D outline which gets spun around an axis to form a 3D shape.

* Move the cursor to aprox. x=0, y=-50, z=0. Genesis units do not refer to real distance.

* Select a surface type from the palette, preferably a shiny one.

You can make a shiny surface type if none exists in the palette by selecting Surfaces... from the Scene menu, and pressing the New Surface button. Then define its characteristics and add it to the palette if you want.

* Select the spin tool [image] from the toolbox.

* Select Configure from the tool menu, (or press the toolbar button [image]) and select smoothing/faceted. Here you can specify how many segments the shape should be spun into. The default is 25. Unless you have unlocked genesis you should set this to 15, otherwise our completed teapot will be over 1000 polygons.

You shouldnt use more polygons or patches than is really necessary as this slows things down and unless you have unlocked genesis you only have 1000 to play with. If you dont want the outline spun through a full 360 deg you can specify the angle to spin it through. For our purposes this should be 360.

* Press the Smoothing... button which brings up the smoothing dialog, and ensure the Smooth by angle checkbox is checked.

Many tools will use this dialog. If you click the Smooth by surface type checkbox then any patches the tool creates will be smoothed with any other patches using the same surface type. If you click the Smooth by angle checkbox any patches created will be smoothed with those neighbouring patches which form an angle less than or equal to the threshold value. If neither are checked the objects patches will not be smoothed giving it a faceted appearance.

* Press the Set button on the control bar.

* Move the cursor to aprox. x=0, y=+50, z=0.

* Press Set again.

* Draw an outline from the bottom up.

Each tool uses the Set and Do buttons for its own purposes, but generally each tool gives instructions on what to do in the status bar at the bottom of the main window.

The vertical axis of the outline editor maps onto the line you have just defined with the Set buttons which should be aprox. 100 units high. When drawing an outline with the editor, you will find that each line segment is drawn with a light cyan side and a dark blue side. Once spun into a 3D object the light cyan side will be the empty side of the object and the dark blue, the solid side. This is important because each patch in genesis has a solid side (the inside) and an empty side (the outside). You should design your objects so that you will only ever see the outside of any patch, unless of course you move the viewpoint inside the object.

You should be able to draw a reasonable outline with about 9 lines. Again, many more will take us over 1000 polygons. Dont forget to include the lid and try to use the full height of the window for your outline so that the teapot will be aprox. 100 units high.

The outline editor has controls to create boxes and arcs or circles quickly and a button to Join the last point created onto the nearest other point. In addition the right mouse button can be used to move points already defined. You could take this opportunity to experiment with the outline editor, as pressing the Reset button will remove everything drawn, leaving you to start again on your teapot outline.

* Press OK and you will be drawn a wireframe representation of the model.

* Click the render button [image] to see a rendered version.

* If your happy with this press Do otherwise press Set which brings back the outline editor so you can modify the outline.

* Click on the view tool [image] to be able to animate it in real-time using the mouse.

The view tool is a very basic tool which puts the editor into View mode (also accessible using the toolbar button [image] ) and removes the overlay. In view mode when you move the mouse the viewpoint moves instead of the 3D cursor. Moving left/right rotates the viewpoint around the point you are looking towards (set with the Dir. button). Moving up/down rotates you above and below the point. By pressing the right button and moving up/down zooms in and out.

If your not happy with the pot select Undo [image] and try again. The view tool puts the editor back into edit mode [image] when another tool is selected. The edit mode is the mode mostly used by tools. If the 3D cursor moves when you move the mouse, then you are in edit mode.

The editor also has a Select mode [image] in which the mouse movement is used to drag a selection box for selecting objects, patches and vertices and a Flight mode [image] which is similar to the view mode but instead of rotating the viewpoint moves it much like a flight simulator.


Make a small round handle for the lid (tutorial)
To make a small round handle for the lid:

We use a small sphere as a handle for the lid.

* Click on the sphere tool [image].

* Select Configure from the tool menu (or [image]). You will notice that the tool configure menu item will bring up a different dialog depending on which tool is selected.

* Click the Smooth checkbox unless you want to see the individual patches in the sphere, and set the number of verticies to 60.

If you selected the view tool your overlay is probably already switched off. If not you can switch it off from the view menu or the toolbar button [image]. If the overlay is on the sphere tool draws its sphere with a wireframe otherwise it renders it in real time.

* Position the cursor and press Set where you want the centre of the sphere.

It doesnt really matter where you position it, as we will move it about later (for arguments sake put it somewhere about x=0, y=60, z=0)

* Now move the 3D cursor to drag out the radius

* Press Do when you have the desired radius


Position the lid handle so that it sits on the lid (tutorial)
To position the lid handle so that it sits on the lid:

You will very rarely create your objects in the correct place first time, but you can always move them afterwards.

* Select the move tool [image].

* Click on the name of the object sphere in the object listbox on the control bar. This selects the sphere object we have just created. If the overlay is switched on it will be highlighted in red.

* Switch off the overlay [image].

* Use the cursor to move the object.

It is best to switch off the overlay when doing this as the move tool actually renders object as you are moving it allowing you to see if it disappears down into the main object. If the overlay is on it draws it in wireframe, making it difficult to see if you have moved it down too far. You do not need to use the Set or Do buttons for the move tool.

* Select the object statistics tool [image] to see many patches youve already used. You should be at about 240.


Make the teapot handle (tutorial)
To make the teapot handle:

We draw a shape which gets projected or extruded into three dimensions.

* Select the extrude tool [image] and a small toolbar appears.

The extrude tool enables you to define two or more path points in space along which an outline is projected. If you define more than two the outline can be bent at the joints. A good example is to define a circle outline which will form a pipe along the points youve drawn.

* Select tool Configure [image]. For more than two path points you can specify the number of segments that will be used at the joints (0 to 8), the length of the blended bit, whether the ends should be left open or closed and the width of the edit window.

* The defaults should be good enough for our purposes, so just press OK.

The main teapot body is aprox. 100 units high and maybe 50 units in radius. Our handle will basically be a circle outline projected along a U-shaped path.

* To define the first point move the cursor to aprox 50, 30, 0. Again it doesnt matter if its in the wrong place as we can move the entire handle later.

* Press Set and the outline editor pops.

Unlike the spin tool, this time the outline editor has its origin in the middle of the window. This point corresponds to the point in 3D space you set the cursor at.

* Create a point roughly 8 units in any direction from the origin. Change the number of segments in arc field to 15 then press Arc. This gives us a circle with a radius of aprox 8 units. Any bigger and it will look too bulky for a delicate teapot.

* Press OK.

* Now we should build the other path points in a U shape. Position the cursor and press Set at each of the following points (Notice how you get the chance to modify the outline at each point. For our purposes we can just keep pressing OK each time the outline editor appears);

* Position cursor at; 65, 38, 0, Press Set, then OK.

* Cursor at; 75, 0, 0, Set, OK.

* Cursor at; 65, -38, 0, Set, OK.

* Cursor at; 50, -30, 0, Set, OK.

You will have noticed that at each path point you positioned except the first, two arrows were drawn. These show the orientation of the outline editors x and y axis at this point.

This requires a bit of thought. Basically you are drawing an outline which is projected into a pipe type object in space. The pipe can change shape from one end to the other, but it can also twist! Normally the up direction of the outline editor (the +y axis) corresponds to the y axis in 3D space, so that a point at x=0, y=10 on the outline editor becomes a point which is 10 units above the point you set the cursor at. But what happens if your pipe or even part of the pipe runs parallel to the y axis in space? Then the outline point x=0, y=10 can no longer be 10 above the path point otherwise the pipe will be very distorted. Instead the up direction of the outline editor must be made to point out along the x or z axis in space. Most of the time this will not concern you, but in this case part of our handle (the middle of the U shape) will run parallel to the y axis. To ensure that we dont get any twisting in our handle we must make sure that the up directions of each of the outlines, point the same way. To do this;

* Position the cursor in the middle of the paths U shape (say 65, 0, 0).

* Press the up direction [image] button on the extrude toolbar to set the up direction of the current path points outline.

* Use the up and down arrow buttons [image] [image] on the extrude toolbar to set the up direction for all other path points.

* Press the preview button [image] on the extrude toolbar to create the extrude object and display it in wireframe.

* Press the render button [image] on the main toolbar if you want to see a rendered version.

* If it shows any twisting you can reposition the up directions and try again.

Notice the outline button [image] on the extrude toolbar also lets you modify the outline of any point in the path.

* When your sure its right press Do.

If you positioned the path points in the wrong place, made it too big, or made a hopeless shambles of it altogether, simply select Undo [image] and try again. Once youve got the hang of it, its really quite easy.


Position the handle on the teapot (tutorial)
To position the handle on the teapot:

Now that you have a good looking handle you just have to get it in the right place.

* Select the move tool [image].

* Switch off the overlay [image].

You can try it with the overlay on but youll see its more difficult to see how far away from each other the objects are.

* Select the extrude object name in the object listbox and deselect any other highlighted names.

* Move the cursor around until its in the right place.


Make the teapot spout (tutorial)
To make the teapot spout:

The spout can be made in exactly the same way as the handle, we must however bear one thing in mind. Spouts are generally smaller at the pouring end than at the teapot end. So each outline that we draw (each circle) must be slightly smaller than the last. This means that each time the outline editor comes up we must press the Reset button and draw a slightly smaller circle.

Generally the extrude tool connects the first point in the first outline with the first point in the second outline and so on. But the outline editor creates the points in our circle automatically so how can we make sure that the first point in the first circle is in roughly the same place as the first point in the second circle, and not rotated say 180 degrees? Easy, each time you redraw the circle, position its radius in the same direction before pressing the Arc button. For example, for the first circle, position a point at; x=14, y=0, press Arc. For the second, position a point at x=10, y=0 (rather than say, x=0, y=10), press Arc, and so on.

For each circle you draw set the number of segments in arc to 15, otherwise we will easily exhaust 1000 polygons.

* Select the extrude tool [image].

* Position cursor at aprox; -40, -25, 0. Press Set and draw circle of radius 14. Press OK.

* Position cursor at aprox; -60, -25, 0. Press Set and draw circle of radius 10. Press OK.

* Position cursor at aprox; -70, 20, 0. Press Set and draw circle of radius 8. Press OK.

* Position cursor at aprox; -85, 32, 0. Press Set and draw circle of radius 5. Press OK.

* Press Do.

These co-ordinates do not define any straight up sections, so we dont need to worry about positioning the up direction [image] for the outline editor. Teapot spouts are often slightly flattened at the bottom of the teapot end, so you could also use the outline editors right mouse button move facility to distort the first two outlines.


Make a hole for the teapot spout (tutorial)
To make the hole at the end of the spout:

We now need to make a small hole at the end of the spout. We dont really need the hole to go all the way down inside the teapot, just far enough so that it looks like it does. We do this by subtracting a piece out of the end of the spout.

First of all we use the spin tool, to make a very simple cylindrical piece with a radius less than the end of the spout.

* Select the spin tool [image].

* Position the cursor at 0, 0, 0, and press Set.

* Move to say, 15, 12, 0 and press Set.

If you didnt use the suggested path points for the spout make sure that the bit you have just drawn is at the same angle as the end bit of your spout.

* Draw a line alongside the vertical axis from 4, 0 to 4, 10. Press OK.

This will create in a cylinder of radius 4 and length 10.

* Press Do.

* Select the move tool [image], select the spin2 object and move it so that it looks like it sticks out the end of the spout.

* If you want, use the view tool [image] to get a good all round view to see that its centred in the spout correctly.

* Select the subtract tool [image].

* Select the spout object extrude2 by clicking on its name in the object list.

* Press Do. This starts the subtract tool (no need to press Set).

* Click on the Extrude2 - Spin2 checkbox. The Spin2 - Extrude2 checkbox will subtract the spout from the cylindrical piece. Not what we want! Press OK.

You will now be presented with a spout you can pour through. Other tools exists to join or union [image] and intersect [image] two objects.


Positioning the lights (tutorial)
To position the lights:

When you start a new scene on the genesis editor, two default lights are created for you. You can add, remove, reposition or change the characteristics of the lights using the light editor tool.

* Select the lights tool [image]. Each light is displayed in a listbox identified by a number and its position.

* Click on the light you want to move and the cursor automatically moves to its position (if this is off the screen you can press the Out button until you can see it).

* Switch off the overlay [image].

You do not need to switch off the overlay but it makes things much faster when moving the light.

* Move the cursor and the light will move with it showing the rendered results in real-time.

From the dialog box you can also change the intensity of the light and make it diminish with distance.

Although the Genesis system and the editor itself supports coloured lights and directional lights, the current implementation of the geometry engine doesnt, so although you can change the light colour and direction the changes wont show on the rendered image.


Convert the teapot into a continuous mesh (tutorial)
To convert the teapot into a continuous mesh:

This step is largely academic. You do not need to do this but in showing you how to do it, we might help to clarify some points.

Each tool used so far built a part of the teapot and then gave it a name. The parts we have so far are;

1. spin

2. sphere

3. extrude

4. subtract

Each one of these parts is a separate object as far as the geometry engine is concerned. What is more each of these objects should be a continuous mesh of patches. If we chose not to close the ends of our extrude operation (from the extrude config dialog), or when we drew our spin outline if we didnt start and finish the outline exactly on the y axis, then some of these objects wouldnt have formed a continuous mesh.

* Select the enclosed tool [image] to highlight any edges which are not connected to patches on both sides.

You can now see if there are any areas of your teapot which are not fully connected. Dont worry, its really not that important if you have unconnected edges. What is important is that it looks good.

You might remember that the subtract tool [image] took two objects and in subtracting one from the other produced a single object called subtract. You can use the union tool [image] to combine objects in the same way but instead of subtracting one from the other it will form a continuous mesh joining the two objects. If you did this with the spout and the teapot body for instance, the spout would actually stop where it joins the body instead of carrying on inside it. If the two objects you are unioning do not actually touch in space then a single object consisting of two separate continuous meshes will be formed.

* Select the union tool [image].

* Select the spin and sphere objects, and press Do. If you get a warning telling you that one of the objects is not fully enclosed, simply ignore this and continue.

* Select the union and extrude objects and press Do.

* Select the union2 and diff objects and press Do.

Your teapot should now consist of a single object with the name union3. The enclosed tool [image] will show you if it has any unconnected edges or is a continuous mesh. If you give any CSG tool two objects with unconnected edges then the result may or may not have unconnected edges, depending on whether those bits are in the resulting object.

Sometimes the CSG tools themselves will introduce the odd unconnected edge. This is not the result of a bug but rounding errors in the mathematics.


Quick Reference

This section provides a quick reference to all the menus, toolbar buttons, tools and controls available on the Genesis editor. Note. This section will not include details on any third party or public domain tools that may have been added to your system.

Menus and Toolbar Buttons

File	New	View	Toolbar

Open	Status Bar

Close	Grid Points

Save (As)	Grid Lines

Image Save As	Grid Dotted

Unlock	Edit Mode

View Mode

Edit	Undo	Flight Mode

Cut	Select Mode

Copy	Overlay

Paste	Render

Select	Camera Setup

Deselect

Window	Cascade	Tools	Configure

Tile

Arrange Icons	Scene	Rename Object

Surfaces

Help	About	Smoothing

Contents

Tools

View	Spin	Enclosed

Move	Coor Sys Editor	Colourise

Patch	Normals	Statistics

Sphere	Box	Lights Editor

Union	Intersect	Subtract

Extrude

Windows and Controls

Toolbox	Coordinate Display	Palette

Grid Type	Object Listbox	Coor Sys Listbox

Control Bar	View Window	Cursor

Control Bar Buttons

Set	Pos	In

Do	Dir	Out

Select	Up	Back


File New

Opens a view on a new scene. Two default lights are created and an empty object called start to which patches can be added.


File Open

Loads an existing scene from disk. Currently the scene can be either a file saved by Genesis (.gen file) or a Lightwave object file (.lw or .lwo).

Genesis object files do not imbed any textures used, so when loading a file containing textures the texture bitmap files must be either in the same directory as the object file, or in the current working directory (this will be the main Genesis directory if started from windows).

When loading lightwave files basic colour textures are interpreted correctly, even if they are stored as IFF files, however anything other than basic colour textures will be treated as though they are basic colour textures. For instance a texture image which is used as a bump map or to modify transparency or any other aspect of the surface type will be simply be painted on.

TGA bitmap files, and 1, 2 and 4 bit BMPs are not support, but any IFF and 8 or 24 bit BMPs are.


File Close

Closes all view windows on a scene and prompts to save the scene if changes were made.


File Save
File Save (As)

Saves a scene to disk. Currently you can only save as Genesis (.gen) files. All lights, objects and coordinate systems belonging to the scene are saved in file as well as any surface types used in the scene.

Texture bitmap files are not saved as part of the .gen file, so if you move or copy the .gen file you must ensure that the texture files are still accessible the next time you load the object, otherwise the textures will come out blank.


File Image Save As

Saves the current active view as a windows bitmap file. Neither the overlay or the cursor is saved, only the rendered picture. The size of the image is whatever the size of the window is set to and the image will be saved as either 24 bit or 8 bit depending on what the display is using.


File Unlock

This brings up the unlock dialog box. By paying a small fee of just £16 (or equivalent in local currency) Genesis can be unlocked so that you can create as many patches as your memory will allow. By sending us the lock code which appears in this dialog along with your payment, we can send you back an unlock code which you also type in on this dialog. All major credit cards are accepted.

If you have unlocked Genesis and subsequently find that it becomes locked again then contact the author (see the About box for the Email address) and we will give you a new unlock code. This can happen if the name of the computer as known to Windows 95 changes or if the machine is upgraded, say with a new motherboard or keyboard.

Note: The lock code that is generated is specific to your machine. If it is tampered with or copied from a machine which has already been unlocked, then Genesis will recognise this and generate you a new code.


Edit Undo

The undo facility will undo the last action you performed such as moving an object, performing a CSG operation or moving a light. You can only undo the most recent operation.


Edit Cut

Cuts any selected objects or parts of objects to the clipboard. Using the clipboard any object can be cut and pasted between coordinate systems or between scenes. Any surface types used by the object are also saved in the clipboard, so when we paste the object back into a scene the surface types needed can be recreated if they no longer exist.


Edit Copy

Copies any selected objects or parts of objects to the clipboard. Using the clipboard any object can be cut and pasted between coordinate systems or between scenes. Any surface types used by the object are also saved in the clipboard, so when we paste the object back into a scene the surface types needed can be recreated if they no longer exist.


Edit Paste

Pastes the contents of the clipboard into the active coordinate system. Using the clipboard any object can be cut and pasted between coordinate systems or between scenes. Any surface types used by the clipboard objects will be recreated if they no longer exist.

When an object is pasted into a view the move tool is automatically selected so that it can be positioned within the view.


Edit Select

Selects any objects or parts of objects in the selection rectangle. To position the selection rectangle Genesis must be in select mode. If the overlay is switched on the selected parts will be highlighted in the view.

If any object is entirely within the selection rectangle, the whole object is marked as selected and its name will be highlighted in the object listbox on the control bar. To select or deselect an entire object its name can be clicked in the object listbox.

The Select button on the control bar has the same effect as the menu item.


Edit Deselect

Deselects any objects or parts of objects in the selection rectangle. To position the selection rectangle Genesis must be in select mode. If the overlay is switched on the selected parts will be highlighted in the view.

To select or deselect an entire object its name can be clicked in the object listbox.


View Toolbar

Switches on or off the toolbar on the main window. The toolbar can be moved by clicking on an area between the buttons and dragging with the mouse.


View Status Bar

Switches on or off the status bar at the bottom of the main window. Note. If you are not familiar with the tools you are using it is best to leave this on as generally tools give instructions on what to do next in the status bar.


View Grid Points

Redraws the grid for the active view as a sequence of single points. Note. Genesis takes longer to redraw the grid with points than it does to redraw it with lines or dotted lines, so we recommend you stick to lines unless your view gets too crowded.


View Grid Lines

Redraws the grid for the active view using solid lines.


View Grid Dotted

Redraws the grid for the active view using dotted lines.


View Edit Mode

Puts the active view into edit mode. In edit mode when you move the mouse cursor in the view the 3D cursor moves with it. This is the mode Genesis starts up in and the mode in which nearly all tools will operate.


View View Mode

Puts the active view into view mode. In view mode when you press the left mouse button and move left/right the viewpoint rotates about the view direction point. When moving up/down the viewpoint rotates above or below the view direction point. If you press the right button as well and move up and down you will move towards and away from the view direction point.


View Flight Mode

Puts the active view into flight mode. In flight mode when the left mouse button is pressed the active view can be controlled in much the same way as any flight simulator or 3D game. Unlike the view mode where moving the mouse rotates the viewpoint about the object, in flight mode moving the mouse moves the direction the viewpoint is looking in. By pressing the right button at the same time the viewpoint can be moved forward.

The amount you move by when you press the right mouse button in related to the size of the camera. Although you wont actually see an option to change the size of the camera anywhere, in the camera setup dialog you can set the depth of the front clipping plane, which is really the same thing if you thing about it. The closer the front clipping plane is, the closer we can move to objects without bumping into them. In other words, the smaller the camera is. If you move the front clipping plane closer, the camera gets smaller and it therefore moves by a smaller amount in flight mode. Moving it away makes it move faster.

Also, unlike view mode, you can actually crash into objects. In view mode you could move straight through an object. In flight mode if you move too close you will stop and a small beep will be heard.


View Select Mode

Puts the active view into select mode. In select mode pressing the left mouse button and moving the mouse allows a selection rectangle to be positioned. Then by choosing the select/deselect menu items everything in the rectangle can be either selected or deselected.


View Overlay

Switches the overlay on or off in the active view. Sometimes it is best to switch the overlay off when using tools which render in real time. This is because generally it takes longer to redraw the overlay than it does to render the image. Some tools such as the box [image] and sphere [image] tools interrogate the editor and if the overlay is on, render the results in real-time. If it is off they draw the results in wireframe in such a way that the entire overlay doesnt get redrawn.

If you have either a spectacularly fast graphics card, or an extremely large object which takes a long time to render then you might prefer to keep the overlay on.


View Render

Causes a re-render of the active view as seen by the geometry engine. Some tools might prefer to build objects on Genesis but not to render them until you press Do. By selecting the Render menu item you can force a redraw of the view and its overlay if it is switched on.

Note. You should also select Render after pressing Pos or Dir to update the view.


View Camera Setup

Allows you to set the camera viewing parameters. The viewing angle in x and y can be changed as well as the depth of the front and back clipping planes.

Note. If you have a wide viewing angle horizontally and a narrow angle vertically, but your view window is not long and thin then the vertical angle will be adjusted so that the scene is not distorted. This way spheres will always appear round.


Window Cascade

Rearranges the windows so that they are cascaded, one behind another. If you have many windows this could take a while as each window is automatically re-rendered when it changes size.


Window Tile

Rearranges the windows so that they are tiled alongside one another. If you have many windows this could take a while as each window is automatically re-rendered when it changes size.


Window Arrange Icons

Rearranges the icons of all minimised windows.


Scene Rename Object

Renames an object. Each object is created with a default name taken after the tool which created it. For instance the third spin operation performed will create an object called spin3. Using this option you can rename objects to reflect what they represent, e.g. Lampstand.


Scene Surfaces

Brings up the surface type editor dialog box. From here new surfaces can be created, and existing surface modified or deleted. Commonly used surface types can also be added or removed from the palette which is always visible.

The active surface type is the one currently selected in this dialog (and palette). The active surface type is used when a tool creates a new patches.

Surface types are global, in other words the surfaces you see in the dialog are not specific to the active view or scene. The same surface type can be used in several scenes, however, textured surfaces unlike basic coloured ones have a position defined in real space. The position is defined relative to a coordinate system. This means that its position is valid only for the scene which its coordinate system belongs to. The name of the coordinate system is displayed in a box on the dialog. The texture extends from the origin of this coordinate system along the x and y axis by the size defined. If you construct an object using a texture but find that when you move the object the texture doesnt move with it, then the texture is defined in a coordinate system belonging to another scene.

It is possible that you will want to define empty coordinate systems just for positioning textures. This is not a problem. The view window can be closed without destroying the coordinate system to prevent cluttering up the screen (the coor sys name will still appear in the coor sys listbox).

The preview window on the dialog is re-rendered each time a change is made to a type.

Note. It is possible for the tools you are using to create or delete surfaces types and you will not realise until you bring up this dialog.


Scene Smoothing

Brings up the smoothing dialog box. Here you can specify the smoothing parameters that tools should use when creating new objects. Note. A tool does not have to use these values but most do. The smoothing parameters say how two neighbouring patches are shaded. If they are smoothed then the shading on these patches makes them look as if they are apart of the same curved region. If they are not smoothed, they will look like just two flat patches alongside each other.

With the Smooth by type checkbox on, each patch is smoothed with those neighbouring patches using the same surface type.

With the Smooth by angle checkbox on, each patch is smoothed with those neighbouring patches joining at an angle less than or equal to the threshold value.

With neither checkboxes on each patch will come out looking flat.

The geometry engine automatically creates the correct normals to create the desired shading effect.


Tools Configure
Tool Configure

Brings up the configuration dialog box for the selected tool, if it has one.


Help About

Displays information about this program and its author, including an email contact address.


Help Contents

Accesses the on-line help system (what your looking at now).


View Tool

Puts the editor into view mode and removes the overlay. Using the mouse with the left button pressed you can rotate the viewpoint around the object. Using the right mouse button as well you can zoom in and out.

The editor is put back into edit mode when another tool is selected.


Move Tool

Using the mouse this tool allows you to move any selected vertices or whole objects. If your object isnt too complex it is best to switch off the overlay [image]. If the overlay is switched off then the object is rendered as it is moved making easy it easy to see which objects it is in front or behind. With the overlay on it is drawn in wireframe, however with large objects that render slowly this will be more responsive.


Patch  Tool

Creates a single patch as part of the selected object. Only one object should be selected. The active surface type will be used and the smoothing parameters are used to join to any neighbouring patches. For two patches to be joined they must use vertices at each end at exactly the same positions. In addition the vertices on each patch should be ordered clockwise as seen from the outside.

Use Set to place each point, and Do when finished. The last  point will automatically be connected back to the first. You can create as many points as you like and the outline will be split into many patches, depending on the maximum number of vertices the geometry engine will allow in a patch.

All of the points should lie on a plane. However Genesis will do its best to cope if they are slightly off. If the points you create are way off any plane then Genesis will not be able to work out any kind of clockwise/anticlockwise ordering.

This tool will very rarely be needed as much more powerful tools exist to perform more complex jobs.


Sphere Tool

Creates a sphere or a semi-sphere primitive. Options on the configuration dialog [image] allow smoothing to be switched on or off. The smoothing parameters from the Smoothing dialog are not used by the sphere tool as the whole thing is either smooth or faceted.

Use the Set button to position the centre and Do to create it after dragging the cursor out to the radius. If the quickdraw option in on, a simple line is drawn representing the radius. If creating a semisphere the quickdraw option must be on to show the orientation. If quickdraw is off the results will either be rendered or drawn in wireframe depending on whether the overlay is on or off.

Semisphere have the option of being inverted forming a bowl shape rather than a semisphere.


Union Tool

Creates the union of two selected objects. Only two objects can be selected and they must belong to the same coordinate system. The easiest way to select objects is to highlight their names in the object listbox. If the objects you want to union belong to different coordinate systems you can use the select mode to select one of the objects and then Cut and Paste it into the same coordinate system as the other object.

Press Do to start the operation.


Intersect Tool
Intersection Tool

Creates the intersection of two selected objects. Only two objects can be selected and they must belong to the same coordinate system. The easiest way to select objects is to highlight their names in the object listbox. If the objects you want to intersect belong to different coordinate systems you can use the select mode to select one of the objects and then Cut and Paste it into the same coordinate system as the other object.

Press Do to start the operation.


Subtract Tool

Subtracts one object from another. Only two objects can be selected and they must belong to the same coordinate system. The easiest way to select objects is to highlight their names in the object listbox. If the objects belong to different coordinate systems you can use the select mode to select one of the objects and then Cut and Paste it into the same coordinate system as the other object.

Press Do to start the operation and a dialog will appear asking which object is to be subtracted from which.


Enclosed Tool

Shows if any object is not totally enclosed by highlighting any unconnected edges. An unconnected edge is one that has a patch on one side but not on the other. If you use the patch tool to create a single patch then each of its edges will be unconnected.

This tool doesnt use any buttons and has no configuration dialog box.


Spin Tool

The spin tool allows you to draw an outline using the outline editor which then gets spun around 360  degrees to form a solid shape. Use the Set button to position each end of the spin axis, and after drawing the outline press Do to finish creating the object or Set again to modify the outline. The configuration dialog has options to specify whether it should be spun a full 360 degrees or less, and the smoothing dialog can be used to make it appear smooth or faceted.

The active surface type is used as the colour.


Coordinate System Editor Tool

The coordinate system editor tool allows new coordinate systems to be created. The New button on the editors dialog will create a new coordinate system and associated view window. If the view window is closed the coordinate system will still exists as do any objects and lights created in  the coordinate system. Such objects will still be visible in view windows of other coordinate systems.

To modify the position of a coordinate system relative to its parent select its view, either by clicking in the window or clicking on the name in the coordinate system listbox. Then press the Modify button on the coor sys editors dialog box. The parent view window will become activated and a set of axis representing the coordinate system will be drawn in the window. You can use buttons on the dialog box to reposition the coordinate system relative to its parent.

The dialog will disappear when a new tool is selected.


Normals Tool

The normals tool show the positions of all normals on all curved regions within the scene. This is purely an informational tool. It has no configuration dialog and does not use any buttons.


Box Tool

Creates a box primitive. Position one corner at the cursor using the Set button, then drag the cursor to the opposite corner and press Do. If the overlay is on [image] the box is drawn in wireframe. Note. You might have to move the cursor a little bit in all three axis before the outline is visible. If the overlay is off, it is rendered in real-time as the mouse is being moved.


Extrude Tool

Creates a 3D shape by taking an outline and projecting it along a path in 3D space. For instance, a pipe can be made by defining a path in space using a set of points, then drawing a circle outline which gets projected along this path. Any outline can be created using the outline editor. What is more the outline can change at the various points along the path.

Use the Set button to position the first point. The outline editor pops up so you can draw the first outline.

When youve Okd the dialog you position the next point and so and. Press Do to complete the action.

The extrude tool creates a toolbar containing extra controls not available on the control bar. The up direction button [image] allows you to set the orientation of the outline at various points in the path. Usually the up direction is above the path point in the y axis, however if parts of your path proceed parallel to the y axis you must set the up directions to somewhere else by positioning the cursor and pressing the up direction button for each point.

The up and down arrow buttons [image] [image] can move to any point in the path. The outline button [image] allows editing of the outline at the current point and the preview button [image] creates the extruded object so far and displays it in wireframe. If the path has vertical sections and the up directions are not selected carefully you will get twisted sections in the object. These will be shown up by the preview button.

The configuration dialog allows you to specify how the object is bent at the joints in the path. The Num blending segments is the number of sections added at the joints to make it appear smooth. The Length of blending section is the aprox length of the bit which joins the main sections.


Lights Tool

The light editor tool allows lights to be added, deleted or modified. After selecting the tool,  select the coordinate system containing the lights you want to modify either by clicking in the window or highlighting its name in the coordinate system listbox. The lights defined in this system will appear in the dialogs listbox. The cursor automatically positions itself at the position of the selected light. Moving the cursor moves the light. It is best to switch off the overlay [image] when doing this as it is much faster.

This tool doesnt use the Set or Do buttons.

Note. Although the Genesis system and the editor both support coloured and directional lights, the default geometry engine doesnt so if you change the lights colour or specify a direction it will not affect the rendered image.

The dialog will disappear when a new tool is selected.


Statistics Tool

The object statistics tool provide information on any objects defined in the active coordinate system.


Colourise Tool

This tool enable you to change the surface types of any selected patches or whole objects. Select the object by highlighting its name in the object listbox, or use the select mode to select a part of an object. Use the palette or surface type dialog to select a surface you want to use to colour the object and press Do to apply the colour. This tool doesnt use the Set button.


Toolbox

The toolbox is the small area at the top of the control bar which contains a button for each tool. A tool is selected by clicking on its button. There is no limit to the number of tools which can be added so a scroll bar exists to scroll through the list.


Control bar

The control bar is the area to the right of the main window area which contains controls such as buttons and listboxes. The Control bar can be moved by clicking on an area between the controls and moving it into the middle of the window. It can be left floating or docked to either the right or left side of the main window.


Palette

The palette is a window which contains the most commonly used surface types. Surface types can be added or removed from the palette using the surface type dialog box. The active surface type can be changed by clicking on its button in the palette.


Cursor

Each view window has a 3D cursor which shows the distance of the cursor point from each of the main axiss. The cursor can be moved if the view is in edit mode, by pressing the left mouse button in the view window and moving the mouse.

Moving the cursor to a vertex position

The 3D cursor can be automatically positioned at the same point in space as a vertex by double clicking the mouse cursor on top of the vertex.


View Window

The main editor window can contain many view windows. Each view window represents a coordinate system which objects can be created in. The coordinate system editor tool is used to create new coordinate systems and therefore more windows.

The main editor window can contain views from several scenes loaded at the same time.

The active view is view window which is currently selected (the one with the highlighted title bar). The active coordinate system is the one belonging to the active view.


Object Listbox

The objects listbox lists all of the objects defined in the active coordinate system. Other objects will probably be visible in the view which arent listed. These objects are defined in other coordinate systems.

An entire object can be selected quickly by clicking on its name in this listbox.


Coordinate System Listbox

The coordinate system listbox lists all of the coordinate systems belonging to the scene. The indenting of the names in the listbox shows the child/parent relationships of the coordinate systems. A coordinate systems view window can be made active by clicking on its name in this listbox.


Set Button

Like the Do button, any tool can use the Set button for its own purposes. The meaning of this button depends on which tool is selected.


Do Button

Like the Set button, any tool can use the Do button for its own purposes. The meaning of this button depends on which tool is selected.


Select Button

This button has the same effect as the select menu item. It is used to select objects or parts of objects in the selection rectangle. The editor must be in select mode [image].


Pos Button

Positions the viewpoint for the view.


Dir Button

Positions the point you are looking towards in the view.


Up Button

Positions the up direction in the view. Usually this is above the direction point (in the positive y axis), but can be changed if desired.


In Button

Moves the viewpoint in towards the point set by the Dir button.


Out Button

Moves the viewpoint away from the point set by the Dir button.


Back Button

Changes the viewpoint parameters to those used previously. This can be pressed many times to step back through all the previous views.


Grid Type

The grid type selection box on the control bar allows the active views grid to be changed to one of three planes or switched off altogether.


Coordinate Position Windows and Buttons

The coordinate position windows display the position of the 3D cursor in the active view. The buttons alongside the coordinate windows can be used to lock or unlock the cursor from moving in this axis. If the axis is locked the coordinate position text appears in red.


Programming for Genesis

In the Genesis\Doc directory you will find the Genesis programming specification in both Microsoft Word format and as a plain text file. This document describes in detail all aspects of programming for genesis. You will also have a Genesis\Include and Genesis\Lib directories containing everything you need to be able to start programming totally free of charge. The only thing we dot supply you with is a C compiler (sorry).

The programming spec is very easy to understand (it has many pictures and diagrams) and assumes no prior knowledge of 3D graphics systems.

Genesis can be programmed in three possible scenarios;

* Writing tools for the editor. Additional tools can be created very quickly using the Tool and Geometry APIs. The Geometry engine is so versatile that a tool be almost anything, e.g. a file format loader or saver, a VRML internet connector , a fractal landscape creator or simple primitive creators for cylinders, cones and boxes etc.

* Writing applications for Genesis. The editor is a Genesis application but by no means the only one. Using the Geometry API you can write your own applications which could include games, simulations, or scientific visualisation.

* Writing new Geometry engines. The Geometry engine can be replaced by writing a simple DLL which exports the set of functions required by the Geometry API. The Helper API exists to make this easier. You might want this to support a hardware accelerated 3D graphics card for instance.

Genesis has a set of comprehensive programming interfaces comprising of five main parts;

Geometry API. Calls to build and render objects e.g. AddObject(), DefPatch() and Render().

Maths API. Geometry related C functions and C++ classes, e.g. vecA=vecB*mat, multiplies a vector with a matrix and ConvToPolar() converts a cartesian vector to polar co-ordinates.

Tool API. Extensions to the main Geometry API to enable tools to be added to the editor, e.g. GetNextSelectedObject() returns the Geometry handle of the next object selected by the editors select mode and RemoveOverlay() turns off the editors overlay.

Helper API. Functions to aid development of new geometry engines, e.g. Split(), splits an n sided polygon up into smaller polygons and CompNormal() computes the normal of a set of points on a polygon.

Debug API. Set of functions to help debugging. This is a general debug library which handles tracing and memory management and can report any memory your application/tool/engine has left unfreed.

The Genesis editor and programming toolkit are Freeware. This means they are freely distributable on any media as long as they are not used for commercial gain. If any commercial product uses any part of the Genesis toolkit or APIs then a small royalty payment should be paid to Silicon Dream Ltd. The payment is negotiable on an individual basis. Contact spike@silicond.demon.co.uk for details.

For tool coders a special offer has been made. Anyone that writes a tool which is robust and generally useful to others can send it to me and it will be packaged in the next release of Genesis. The royalty payments being received will then be shared amongst all those who contributed towards making Genesis a better product.

Please feel free to ask me for advice or help with aspects of programming Genesis, or to report bugs. Once again I can be contacted on; spike@silicond.demon.co.uk.


Genesis Terms

This section explains terms used within the help system that you might not be familiar with.

Clipping Planes

Coordinate Systems

Coordinate Units

CSG

Geometry Engines

Normals

Objects

Overlays

Patches

Scenes

Surface Types

Textures

Tiled Textures

Tools

Vertices


Patches

A patch is another name for a polygon or face. All objects are made out of patches. A cube for instance has 6 square patches. A complex object like a human face, require many more. Probably 100 at least and more like 1000 for a face which is at all realistic.

Powerful tools are available on the Genesis editor for creating objects out of patches. However should you choose to, you can define each patch manually using the patch tool [image]. You will notice that if you try to build a patch with more than 4 points it will automatically be split into two or more patches. This is because the default geometry engine supplied with Genesis cannot cope with patches of greater than four points. Most objects however are simply made out of triangles.

Each patch has a solid side and an empty side. Which side is which is determined by the ordering of the vertices. Any patch should have its vertices ordered clockwise as seen from the outside. Most objects will be totally enclosed by patches so that you cannot see the inside of any patch unless you move the viewpoint inside the object. The reason for this is that if you look at a patch from the wrong side it in fact becomes invisible. If each object is totally enclosed in a continuous mesh of patches, then you will not be able to see any individual patch from the wrong side, unless you go inside the object. If you want to be able to move inside the object then you will have to design the inside of the object to prevent you looking out, otherwise the whole thing would be invisible e.g., in the case of the cube, we would need six more patches on the inside.

The enclosed tool will highlight any patches with edges not connected to other patches. If no highlighted sections appear then your object is a continuous mesh. It doesnt matter if its not a continuous mesh but if it has large gaping holes showing through to the inside it might look confusing from some angles.


Verticies
Vertices

A Vertex is a point on a patch. The four corners of the cube are referred to as vertices.


Normals

Normals are created for you by the geometry engine to make the curved parts of objects appear smooth, since all objects are made of patches and patches are flat. A normal can be thought of as an arrow sticking out at 90 degrees from all vertices on curved regions of objects. The purpose of the normal is to say, although this is a flat surface, generate the shading for this point as though this arrow were at 90 degrees to the patch.

You do not have to worry about creating normals. The engine does it for you depending on parameters set in the Smoothing dialog. The normals tool [image] can be used to view the normals.


Coordinate Units

The unit of distance in Genesis doesnt relate in any way to real distances. For instance in some programs, 10 on the x axis means 10 feet or 10 inches. In Genesis 10 simply means, 10. Twice as much as 5, and ten times as much as 1.


Overlays

The overlay is the bit which is drawn on top of the rendered graphics. It shows the edges and vertices of the objects in the view. The overlay can be turned on and off using the Overlay option on the view menu or the toolbar button [image].


Tools

What Genesis refers to as tools are often called plug-ins on other programs. They are extensions to the main Genesis editor which can be added or removed without affecting operation of the main program. Each tool exists as a window DLL, and each tool is represented by a button with a symbol on it in the toolbox.

When a tool becomes active it applies not only to the active view, but to the active scene. If you have several scenes loaded into Genesis, each one can have a different active tool selected.


Scenes

A scene is what is saved to and from disk. A scene to Genesis is what a document is to a word processor. It consists of a top level coordinate system which may contain several objects, lights and possibly child coordinate systems. A scene will normally have a view window for every coordinate system that exists within it. However each view window shows not only the objects in its coordinate system but all of the objects in the entire scene.

Several scenes can be loaded into the Genesis editor at any one time.


Clipping Planes

When Genesis renders a scene it has to apply what we call clipping planes to the scene so that we only see what we are supposed to see. There are six clipping planes. Four are obvious, they are the top, bottom, left and right sides of the window. The other two are not obvious. Being a three dimensional drawing package we must also specify a front and back clipping plane so that we only draw what is within this range. The front and back clipping planes are defined as distances from the viewpoint. Needless to say the front is very close to the viewpoint and the back a long way off.

We need at least the front clipping plane for one very simple reason. We all know that as things comes closer they appear bigger. In real life, our head generally stops us moving too close to objects. However the programs viewpoint has no head, and if it moved so close to an object that it actually touched it, the image would appear infinitely large. The computer cannot draw infinitely large objects, so we must clip it before it gets too close.


Textures

There are many types of texture used in computer graphics. Genesis uses only the simplest type. Basically it consists of taking an image and projecting in onto a patch or an object. This then gives the illusion of added complexity in the image. For instance you could take a simple wall and project an image of bricks onto it.

Exactly how the projection is handled is a matter for the underlying geometry engine. The default geometry engine supplied with Genesis handles texturing exactly the same way you wrap up a Christmas present. Suppose you have a wall (imagine this is the present), and you have some wrapping paper with bricks painted on it. Folding the paper around the corners of the wall so that the whole wall is covered is a straight forward business. Suppose though your object is a battleship made up of tens of thousands of patches and you want to apply a rusty metallic texture. The principal is exactly the same, the texture will be folded around the edges of every patch until the whole object is covered. It is done very quickly and once an object is wrapped in this way it can be rendered as many times as you like without having to re-wrap it. If the texture is changed to another texture of a different size, or the texture or its coordinate system move relative to the object, then it is automatically re-wrapped. This shouldnt happen very often.

The disadvantage of using this wrapping approach as opposed to other methods is that when wrapping complex objects in textures there are inevitably edges where the texture is not continuous, as anyone whose ever wrapped a present will know. The main advantage though is that it can be rendered much faster than other projection methods. Most other methods also suffer from some type of distortion on even simple objects.

Any 8 or 24 bit BMP file, or any IFF (Amiga Ilbm) file can be used as a texture.

One of the Genesis features not supported by the default engine is recursive textures. These are textures where each index in the bitmap used refers not to a colour, but another surface type (which can also be textured). By pressing the More button on the surface dialog, you can define recursive textures. This feature will be implemented on future versions of the engine.

Textures distortions

The default geometry engine can sometimes cause textures to distort. This happens when high resolution textures are applied to large patches. The reason this happens is due to the way the engine uses internal tables in order to make the texture mapping as fast as possible. If you experience this you can do one of three things; either use several smaller patches instead of one large one, use a lower resolution version of the same bitmap or simply make the textures size larger (relative to the patch) from the surface type dialog.

If you still experience texture distortions it is more likely that you are using a texture which is defined in a co-ordinate system belonging to another scene. In this case either create another instance of the surface type or change its co-ordinate system from the surface type dialog.


CSG

CSG stands for Constructive Solid Geometry. It was developed as a more intuitive way of building three dimensional objects using a set of primitives and three basic operations to combine them; union, intersection and subtraction. For example you could take a sphere primitive and a cylinder primitive and subtract the cylinder from the sphere and the resulting object then becomes a second generation primitive. Give it a name like SphereWithHole and then you could use this to subtract, union or intersect with something else.

Genesis is one of the few polygon based 3D editors that supply you with a full set of CSG tools.


Surface Types

A surface type is to Genesis what a colour is to a paint program. A surface type defines not only the colour of the surface but also a texture if it uses one and how light reflects off the surface at various angles. An example of a surface type might be Bluish Green Gold. The gold refers not to the colour, but to how highlights will appear on the surface, i.e. as if it were made of the metal gold.

The default geometry engine recognises only the following reflection types for surfaces;

Dull

Silver

Gold

Glass

Linear

25% Glossiness

50% Glossiness

75% Glossiness

100% Glossiness

All of the others that appear in the surface type dialog box are mapped onto the closest one of the above.

These reflection types control the size and shape of the highlights due to the light reflected from a light source bouncing back towards the eye (or viewpoint). For instance Gold tends to produce large ring shaped highlights. Highly reflective surfaces such as mirrors should ideally reflect images of the surrounding scene but unfortunately the computing time required to generate such images are outside the realms of real-time graphics.

The shine value of a surface type controls the sharpness of the highlights and ranges roughly from 1 to 10. A value of 1 produces diffuse, dull highlights (e.g. a piece of paper) and a value of 10 produces small bright highlights (e.g. a snooker ball).

The surface types can be modified from the surfaces dialog box, available from the scene menu.


Objects

An object consists of a set of patches which will usually totally enclose the shape in a continuous mesh in the same way a patchwork quilt is made. The models you are building can consists of many objects. For instance a model of a teapot can consists of the main body object, the handle object and the spout object.

Generally objects are named after the tools which created them. For instance the spin tool will create objects spin, spin2, spin3.... Objects can be renamed using the Rename Object option on the scene menu.


Coordinate Systems

Coordinate systems require a little more understanding than most of the concepts introduced so far. You can use Genesis without ever needing to understand how coordinate systems work, but the chances are that eventually you will have a problem that can only be solved with the help of coordinate systems.

Every scene on Genesis has to have at least one coordinate system. The coordinate system listbox on the control bar displays the names of all the systems belonging to the active scene. A coordinate system defines the 3D space that objects are placed in. You can think of the coordinate system and the view window as the same thing. The coordinate system editor tool can be used to create additional systems or modify or delete existing ones.

The active coordinate system is the one belonging to the active view.

Lets start by posing some problems, then maybe the significance of coordinate systems will become more obvious;

Problem 1.

You have designed a large cube with one corner at the origin. You now want add a load of primitives (spheres, blocks etc.) such that they appear to be sitting on one of the faces of the cube. However the face you have chosen is the back vertical face! Even if you re-position the viewpoint so you can see what you are doing you are used to working on a flat horizontal surface not a vertical one and have trouble adjusting. Worst still suppose the face isnt exactly aligned with one of the axis, you will have terrible trouble knowing whether your new primitives are actually sitting on the surface, penetrating it, or sitting too high above it. Further, some tools such as the box tool only create primitives aligned with the axis.

Problem 2.

When defining a texture, the bitmap you use is initially placed at the origin of its coordinate system before wrapping the object. Suppose the texture isnt tiled and must be placed at a position away from the origin. You will notice there is no way using the surface editor dialog that you can specify its position or orientation.

Problem 3.

You are using an animation tool. You have a landscape and within it a river. On the river are two boats; A and B. Boat A has 10 people on it. When the boat moves relative to the landscape all the people on the boat must also move (otherwise they will end up suspended above the river!), BUT the people must still be able to move about on the boat. Boat B obviously moves independently of boat A. You need a way of telling the editor that the people objects of Boat A must move when the Boat A object moves and likewise for Boat B.

The answer to all these problems is coordinate systems. By defining a new coordinate system you are defining a new origin and set of axis relative to the main one. The new origin can be in any position and the new axiss do not have to be aligned with the original set. If you have not already created one you will have a single coordinate system called top level. The coordinate system editor tool enables you to define a new coordinate system relative to top level using the New button. The new coordinate becomes a child of top level and the three buttons at the bottom of the coor sys editor dialog allow you to reposition and scale it relative to its parent. When you move a coordinate system all objects, lights and textures defined in it move as well.

When you create a new coordinate system a new view is automatically created for you. In this view you will be able to see all objects in the entire scene, not just those defined in the coordinate system. Because the co-ordinates of each object are defined relative to its coordinate system, some tools such as the CSG tools will only work on objects belonging to the same coordinate system. This can easily be worked around by using the clipboard to cut and paste objects between systems (see below).

To modify a coordinate system relative to its parent, first make it active (by clicking in its view, or selecting its name from the coor sys listbox). Then click the Modify button. The tool then makes its parents view active and draws a representation of its axiss within its parent. Then using the Origin>Cursor button you can move the origin, and using the Z Axis>Cursor button you can specify a direction towards which the z axis should point. The third button; Y Dir>Cursor can be used give an approximate direction to the Y axis given the constraints of the origin and the z axis.

You can define a coordinate system purely for the purpose of defining a texture position. The surface type dialog has a field where you can tell it the name of the coor sys the texture is defined in. You can then close the view if your not going to be working in it (this doesnt delete the coor sys).

In the Problem 3 example boats A and B will each have their own coordinate system which is a child of top level. The landscape will be defined in top level by a bunch of patches. The individual people of boat A will each have their own coordinate system (as they can all move independently of each other) but they will all be children of the boat A coordinate system (as they must move if the boat moves). Boat B will likewise have its own coordinate system as a child of top level.

To move objects from one coordinate system to another

Make the coordinate system you want to paste into the active one and position the view so that you can see the object you want to get at. Use the select mode to draw a rectangle around the object and Cut it from the view using the clipboard. Note. You will not be able to select it by clicking on its name in the object listbox, as it doesnt belong to this coordinate system. Then without changing view, Paste it back into the view and it will reappear in exactly the same place, but now it will belong to this coordinate system. i.e., you should now see its name appear in the object listbox.

By selecting the object using the view window of another coordinate system we convert the co-ordinates of the object into that coordinate system. Then by pasting it back into the same one we find the object stays in exactly the same place but has just swapped systems. If you had selected it using one view then pasted it into another its position in the scene will change.


Tiled Textures

A tiled texture is one that repeats forever in all direction. The bitmap chosen should be selected carefully so that when multiple copies are placed alongside one another it looks like a single large image.


Geometry Engines

The Geometry engine is the bit of Genesis which performs all 3D rendering. The engine is replaceable so that when fast 3D accelerated graphics cards become available, Genesis will be able to exploit these for faster rendering. The engine supplied as part of the main package is a software only engine, albeit a very fast one.

You might find that some of the features supported by Genesis are actually not supported by the default engine. Examples are coloured lights and recursive textures. Any new Geometry engine has the option of supporting as many or as few of the Genesis features as it likes.