GIG reference manual

Introduction

____________________________________________________________________________________

Section contents:

Introduction to GIG

GIG software is the highly sophisticated 3D design and animation software developed by ELECTROGIG NEDERLAND BV in Amsterdam, The Netherlands.

GIG provides the user with a wide range of 'tools' that make it possible to build, edit, and display three dimensional models and, with the addition of color, texture, lights, and animation, view them in a realistic three dimensional environment.

To provide the user with a basic understanding of GIG, the main GIG concepts are explained below.

1. Modeling techniques

GIG is a solid modeling system, which means that it uses mathematical techniques to represent solid objects. Solid modeling is the most advanced form of computer aided design, and unlike polygonal and surface modeling, it ensures that all objects are geometrically correct.

In GIG there are several ways of building three-dimensional models: by using Primitives, Freeforms, Sculptor, NURBS, or Organic (NURBS and Organic can be found in the Tools menu).

There are five Primitives (solid forms) available: ball, cone, cylinder, cube and torus. These Primitives provide the basic building blocks from which more complex models can be made. Freeforms and NURBS allow the user to model by using curved lines in three-dimensional space and thereby enable the user to model shapes that are not possible using Primitives alone. With Sculptor the same five primitives can be blended into one another, creating smooth transitions between them rather then the "hard edges" usually found when working with primitives. Using Organic it is possible to build flexible models that can be transformed and animated using inverse kinematics and dynamic animation tools. Also, other GIG models can be converted into Organic models.

In order to build and manipulate complex models in GIG, a set of functions is provided which allows any model to be joined to or subtracted from any other. These functions: group, union, subtract, intersect, and overlay, are collectively known as 'Boolean' operations, named after the nineteenth century English mathematician George Boole, who first developed the concept from which these functions are derived.

Once the geometry of a model has been built in GIG, it is necessary to enhance its appearance to make it more realistic. In order to do this, GIG allows the user to assign particular textural characteristics to a model, for example, glass. These textures behave according to ordinary physical laws, so a model assigned a glass texture would be transparent and light would be refracted from its surface, just as it would in the real world.

1.1 CSG tree

A model in GIG is a hierarchical structure of objects, called a CSG tree. (CSG stands for Constructive Solid Geometry.) A tree is a structure similar to a tree in the real world:
It has a root from which everything else originates.
It has nodes with branches which define the (hierarchical) structure.
It has leaves which define the basic building blocks.
However, a CSG tree is a binary tree, which means that each node in the tree can have at most two branches. And unlike a real world tree, the root of a CSG tree is at the top:

Each node represents a combination of real solid objects.
Each leaf represents a real solid object.
Each tree element (leaf or node) can contain a transformation, local axes, lights, textures and animation.
The CSG tree can be visualized using view tree in the edit menu.

1.2 Nodes, Boolean Operations, and Transformation Levels

In a CSG tree the nodes define the Boolean operation of their two branches. In GIG the nodes can be:
group
union
overlay
subtract
intersect
S union
S subtract
S intersect
A Boolean operation defines the result of combining two different branches.
For instance, a group of a ball and cylinder:

a subtraction of a ball and cylinder:

an intersection of a ball and cylinder:

A transformation level is a special case node, for it has only one branch and does not define a Boolean operation. It is used to create an extra intermediate coordinate system for additional solid transformations (e.g., the earth revolves around the sun but also rotates around its own axis).

1.3 Leaves, Primitives and Single Solids

In a CSG tree the leaves define the real solid components of the model. In GIG the leaves can be:
ball
cone
cube
cylinder
torus
S ball
S cone
S cube
S cylinder
S torus
freeform rotation
freeform extrusion
freeform patch
prism (text)
NURBS
particles
polygon mesh
Spline skin

1.4 Hierarchical Structure

The hierarchical structure is very important because it defines how certain properties are 'inherited' down the tree.

Inheriting textures
If a node is assigned a stone texture, every subsolid below that node that doesn't have a texture of its own will become stone, because it inherits its texture from above.

So: If an object has a texture of its own, that texture overrides the otherwise inherited texture.

Inheriting light sources
If a node has a local light source, every subsolid below that node will receive light from that light source.

So: If an object has a light source of its own, that light source will be combined with all the inherited light sources.

Inheriting transformations
If we change the geometry of a node, for instance, by increasing its size by a factor of two, all subsolids below that node will become twice as large.

So: If an object has a transformation of its own, that transformation will be combined with all the inherited transformations.

Transformations are accumulated down the tree:

If for instance A has a scaling transformation of 3 and B has a scaling transformation of 5, then D is scaled by 3*5 = 15. If D itself has a scaling of 0.5, then D is scaled by 3*5*0.5 = 7.5.

1.5 Transformations, Coordinate Systems, and Local Axes

A transformation is always relative to a certain coordinate system. For instance, a rotation transformation of 30 degrees around the x-axis would depend on the position and direction of that x-axis.

In GIG there are the following coordinate systems (also called axes):

1.6 Tags

A tag name can be assigned to any node or leaf in the tree. Always assign tag names to parts of your model. For example: when modeling a car, assign a tag name for the body of the car and for each wheel. Selecting the individual part of the car (e.g., later when assigning attributes or animation) will then become easy using get solid tag.

2. Animation

GIG animation uses timecurves which specify the behaviour of certain parameters over time. It is possible to animate any part of a model built in GIG, including the points within FreeForms and NURBS, textures, lights, and camera view points. For instance, by animating a camera, it is possible to travel through three dimensional space, around, and even through built models.

2.1 Basic Animation

The animation of models is controlled by time curves. A time curve can be created in the following ways:
1. By fixing a certain state for a model on a certain frame. This fixing is called keyframing. GIG will automatically calculate the states in between the fixed frames. The calculation of the frames in between is called interpolation.
2. By creating a 3D track and connecting it to the position of an object (model, light source, or camera).

2.2 Advanced Animation

More advanced features are available in the NURBS, Particles, and Organic Tools.

NURBS
Within the NURBS modeler it is possible to transform one shape into another (3D morphing). A unique feature of GIG is that it is not necessary for these different shapes to have the same number of control points.

Particles
Particle animation allows you to generate effects such as explosions, hair, snow, fire, etc. It is also possible to use Particles for modeling purposes to create real objects, including effects such as shadow, reflection and refraction.

Organic
The Organic Tool of GIG allows you to model and animate splines and skins. By linking splines together skeletons can be constructed. GIG models can be attached to these skeletons to build complex models which can be animated using tools such as inverse kinematics, constraints, and dynamics. Organic is especially useful in modeling and animating moving (e.g., walking) human and animal bodies, and also in animating models that are affected by dynamics such as gravity, collisions, turbulence, etc.

3. Rendering

Rendering is the process of converting your virtual world into a digital image. After modeling your objects and setting a camera position, the rendering function can be invoked. There are two methods for rendering available in GIG (not including the wire frames and flat shaded modes used in the GIG interface), raytracing and raysketching. Raysketch is a simplified and much faster rendering method based on raytracing.

3.1 Raytracing

In the real physical world light is travelling from lightsources via reflection on surfaces or passing through transparent materials towards your eye or camera.

The color, intensity and direction of the light is changed during its journey by the optical properties of the surfaces and transparent materials.

Raytracing is a simulation of this physical process in a computer's virtual world with a virtual camera.

To calculate the light projected on the backplane of the virtual camera only the light rays entering through the lens have to be calculated. That is why so called 'backward raytracing' is used:

Instead of following light rays from the lightsources to the camera, the rays are followed (traced) from the camera towards the lightsources. In its most simple form raytracing is done as follows:

For each pixel of the image a (primary) ray is fired in its corresponding direction into the virtual scene. If the ray hits the surface of an object the position and orientation of the surface is calculated. With this data together with the surface properties, position, intensity and color of the lightsource(s) the total color contribution from the lightsource(s) for this ray is calculated. If the surface is (partially) reflective a new (secondary) ray in the reflected direction is fired into the scene. The color contribution of this ray is (partially) added to the color contribution of the primary ray. The same is done if the surface is (partially) transparent. In this case the new (secondary) ray is fired in the refracted direction. The color contribution of this ray is also (partially) added to the color contribution of the primary ray. Multiple reflections and refractions are properly processed because secondary rays are handled the same way as primary rays. Finally each pixel gets the color contribution of its corresponding primary ray.

4. The User Interface

4.1 Starting the System

Before you can begin working with GIG you have to log in. On most occasions the user name for GIG will be "gig." Upon logging in, the GIG software will start automatically. If this does not occur, or if you had exited GIG earlier but are still logged in, GIG can also be started by typing in 'startgig' and pressing <enter> in one of the UNIX windows.

4.2 What You See on Your Screen

The GIG screen is divided into four areas. The lower left area shows the general submenu and the main menu. The other areas, called windows, provide different views of the project. These views are obtained by cameras that are positioned along a three-dimensional set of axes:
Camera 1: the upper left window shows a side view.
Camera 2: the upper right window shows a front view.
Camera 3: the lower right window shows a top view.
One window is always outlined in red, which indicates that it is the active window. The active window is the one selected to work in at any one time. The other windows are outlined in blue. This indicates that they are the non-active windows.

Attention: A window's being inactive does not mean that the view of the model in this window is not adjusted to any changes made in the active window.

You can activate a window by moving the cursor into that particular window and then clicking the left mouse button once. Activating one window automatically means deactivating the others. You will normally activate the particular window that is most appropriate for the part of the model you're working on at the time.

4.3 How to Use the Mouse

The mouse is used as a pointing device. By moving the mouse over your desk top you can change the position of the pointer (cursor) on the screen. The speed with which you move the mouse will determine the distance the cursor will travel on the screen. The movement of the cursor on the screen is controlled by the movement of the mouse, not by the location of the mouse on the desk top. You can pick up the mouse and put it on a different spot on your desk without moving the cursor on the screen.

The mouse has three buttons which are used for:

Clicking (left)
Dragging (middle)
Canceling (right)
Clicking: to click means to press and then quickly release the left mouse button. By moving the mouse cursor to something on your screen and then clicking the left mouse button, you select what is beneath the cursor. For example, this is used to activate menu options and/or data input boxes.

Dragging: to drag means to hold down the middle mouse button while moving the mouse in a particular direction. Dragging is used among other things to transform objects. For example, a square can be transformed into a rectangle by pulling (dragging) in one direction.

Canceling: to cancel means to delete the last performed mouse action by clicking the right mouse button.

4.4 Menus and Menu Items

Menus are basically lists of options from which GIG functions can be selected. Each option is shown as a rectangular button. When you click a button you activate a particular function or menu. A shadow appears behind the selected button to indicate that the corresponding function has been activated. When you click the button again, that particular function is deactivated. When you select an option by clicking its corresponding button, another menu may then appear. For example, when you choose the page size option from the main menu, the page size menu will appear. From this menu a further option may be selected, or you can return to the general menu by clicking the corresponding button.

Menus consist of three parts:

main menu
menu
status area
Main Menu
The main menu, found on the right hand side of each menu, consists of 17 vertically positioned buttons:
general
page size
solid construct
transform
edit
attributes
lights
camera
animation
ff mode
ff trans
ff edit
ff grids
render
channels
tools
help
The general button, which is at the top of the main menu, represents the default menu. This is the menu that will appear when you start the system. The first 16 buttons, from general to tools, are used to activate menus. The help button, which is set slightly apart from the other buttons, does not actually represent a menu, but rather allows you to ask for information on any item (a button or data input box, for example) in a particular menu.

Menu
Menus contain the options belonging to the main menu button you have activated and are located to the left of the main menu. Depending on the number of options a particular menu has, there may be as many as three full columns of buttons.

The buttons are of three different types:

Single toggle buttons
Multiple toggle buttons
Action buttons
Single toggle buttons:
These buttons are used to activate or deactivate a function. The choice you make remains active until you click the button again.

Multiple toggle buttons:
These buttons are used to switch (toggle) between different functions Each time you click a multiple toggle button, you will activate another function.

Action buttons:
These buttons are used to initiate a certain action (function). When the function has been executed, the button will automatically switch off again.

Status Area
The status area is that part of a menu where you can enter data or text. The status area is to be found at the bottom of the menus.

The status area may consist of four types of input boxes. These boxes are used for the following purposes:

To enter values (data).
To activate submenus.
To use as so-called slider boxes to modify data input.
To toggle between different settings of a function.
To enter a value into an input box:
Click the box. The box will now be outlined in red to indicate that it has been activated.
Type the required value and press <enter>, or click the left mouse button.

To activate the submenu of an input box:
Click the box and a submenu will appear.
To exit the submenu, click confirm to accept any change made,
or click cancel to undo.

To use an input box as a slider box:
In the color submenu, click the required box. A slider box appears.
Hold down the drag button and drag the slider to the left or to the right.
Accept the indicated value by clicking the left mouse button once.
To toggle between the different settings of a function, click the box until the required value is displayed.
Help Button
In most menus you will find a help button. By activating this button you can ask for information on menu items that are visible on the screen at that time. The help information will consist of a brief explanation of the item, its function, and how to use it.
Activating the help function is simple:
Click the help button.
Click the menu item you want information about.
If there is more text than can be displayed in the menu area, the message More will appear and press any key to continue. To actually display more of the text, again press any key on the keyboard or click the left mouse button. When there is no more text to display the message, End will appear, and press any key to continue. To return to the menu from where the help button was first activated, press any key on the keyboard or click the left mouse button. You can always interrupt (stop) the display of help information by holding down <shift> while pressing <!>.

Displaying the Reference Manual on screen
This Reference Manual can be displayed on screen by clicking the h keyboard button. The table of contents for the currently active menu will then be shown on screen (e.g., when you are in the camera menu, clicking the h key will display the table of contents for the Camera section of the Reference manual). For more information on how to navigate through the Reference Manual, see Navigating the GIG Manuals.

4.5 Wire Frame Colors

Explanation of the wire frame colors used in GIG: