<b>GIRAM</b> (Giram Is Really A Modeller) - - - - - The Great Open Source POVray Modeller http://www.giram.org/ This is the manual as far as we've got. The first part describes how to create a simple scene - I mean, you want to get going, not get stuck into a big manual, right? After that we'll dive in to the toolbox, which is where we keep all the tools for building a scene with. After that you can pick up the more advanced techniques by experimenting. Your First Scene ---------------- By the time you get here, you should have managed to build or install the Giram modeller and have it running under X-Windows (hint: type 'giram &' at an xterm window). If you want to see the finished result you'll also need Povray installed and running, but you can do modelling in Giram without it. For now we'll just make a lollipop to congratulate you with. For those of you not familiar with English confectionery, it's a sweet on a stick. In order to create any scene, you need to have a viewport to work in. In Giram you make a new viewport by clicking on Giram's [File] tag, and selecting New View. This presents you with a little box, offering views of the X-Y plane, X-Z plane, Z-Y planes and something dubious labelled "New Frame". First the easy part: If you want to edit more than one scene at a time, now is when you should think about using the "New Frame" option. Just click on "New Frame", and then click on "Untitled". That way all your viewports will be looking in on the same world. Now to pick the direction in this world, which is what all these planes are flying around for. It all sounds a bit complicated, but in POVray you can basically think of X as being the left/right direction, Y being up/down and Z as backwards/forwards. For now, just check the "View X-Y" option and click OK. This gives us a window with rules around the edge, with up/down and left/right behaving as you would expect them to. Move back to the Giram Toolbox and click on the sphere icon. If you've got a "Dynamic Toolbox", right-click on the box icon and then select the sphere from the pop-up toolbar (remember this trick for getting the cylinder you'll use in a little while). Click in X-Y view somewhere around the middle of the view, and drag the mouse until you have a circle that looks about the right size for the head of the lollipop you deserve. Now for the lollipop's stalk. Select the cylinder icon from the toolbox in the same way as you picked the sphere, return to your viewport and click in the middle of the circle. Drag the mouse down to the bottom of the viewport, and slightly to one side until it looks a little like the head of the lollipop is impaled on the stick. You'd probably like to see your creation in 3D, so click on the X-Y view with the right-hand mouse button to bring up a pop-up menu. Select the "Render" option, and then "Gouraud Shading". Tada! You have won yourself a lollipop. When you're done admiring it, close the Pov and Povfront rendering windows. How About Some Colour? ---------------------- A grey lollipop isn't very apetising so we'll give it some colour - or color for those of you in that part of the world. However you spell it, the method is the same: From the toolbox click on the select tool - that's the single arrow - and then click on the spherical lollipop top so that it turns red. This indicates that it is selected and doesn't actually change the colour. Right-click in the view and then click on the "Operations" part of the pop-up menu. Up comes another pop-up menu and from this you select "Change Colour". This is where you get a colour wheel in the Change Colour popup, and you can use it to pick the flavour (or flavor) of your lollipop. If you want a lime lollipop, click on the green part of the wheel; if you prefer strawberry, click on the red part; if you like having a blue tongue like a lizard, click somewhere in the blue. You can change your mind later. When you've got the right flavour, click on the big OK button at the bottom of the Change Colour popup. You won't see anything change colour just yet, that only happens when the scene is rendered using Povray. Adding Lighting --------------- Select the little spotlight from the Toolbox, and then click somewhere in the top right corner of the X-Y view. A New Light Source dialog will pop up, with the default lighing set to bright white, but you can change this with the colour wheel. Generally white is what you want, though using blue light creates cold, harsh scenes while slightly yellow light will approximate daylight. You can change the position of the lightsource in this dialog before you place it. I'd suggest using something like -5 for the Z position to put the light source behind the camera. If you're feeling adventurous, play with the colour balance of the light, and maybe create multiple light sources. Do remember that every light source added to a scene will increase the rendering time in proportion to the number of light sources. Use two lights, and your scene takes twice as long to render. Note that changing the colour of the light source will change the colour of the Gouraud shading view. Neat, eh? Positioning The Camera ---------------------- First we'd rather like to have a viewport for the camera. Go to the Giram toolbox, click on the "File" tab, and select "New View". In the resulting dialog box, check the option next to "Camera View" and click the OK button. There you are, but where is your lollipop? The camera needs to look at the scene, and at the moment it probably isn't pointing at the lollipop. If you created the lollipop in the X-Y plane as this tutorial suggests, you'll need to tell the camera to look along the Z-axis in the positive direction, from somewhere back in the -Z direction. It's not so hard really, just right-click in the camera view and select the "Operations" option from the popup menu. One of the items in there is "Edit Camera", so pick that one. The resulting dialog should make sense to you if you've used Povray before. If not, select something like <0,0,-10> for the camera location and set the direction vector to <0,0,1> before clicking OK. If you don't understand what you just did, I suggest it's time to read up on cameras in the Povray documentation. Saving & Loading POV Scenes --------------------------- Of course, once you've made this wonderful scene, you'll want to save it. Just right-click on any of the viewports and the popup menu appears with "Files" as the top entry. The side menu for that entry has "Load" and "Save" options, so click on "Save" to bring up the standard GTK file dialog. Pick your directory, type in a filename (preferably ending in ".pov") and click OK. Now you can exit Giram and your work is safe. Great. A good time to get a beverage of your choice from the kitchen. To load a scene, start Giram again and click on the "File" tab at the top of the Giram Toolbox. There is a "Load Pov" option in the drop-down menu there which brings up the familiar file dialogue again. Just select a POV file and click OK to load it. A configurable selection of views of the object is displayed. At Last, Rendering ------------------ Having made and saved your scene, you'll probably want to render it. For this you must have installed Povray V3.0 or better, preferably 3.1 . You can check for the latest version on http://www.povray.org You need to know the name of the command that you use to run Povray on your system. Typically, this will be x-povray but you can change it. So load your scene, and right-click in one of the viewports. Near the bottom of the popup menu it says "Render". Move to it and click on the "POVRay Rendering" option. This gives you a whole new dialog from POVFront, which Giram uses to launch Povray. Prepare POVFront by clicking on the "Options" tab and setting the name of the renderer (probably x-povray, remember?). Apply the new command name, pick something sensible like 320x240 graphics and use the POVFront "Options" tab to set these as the default settings. Then just click the big "Render" button to see your scene from before your eyes. The next most useful parts you can learn about are the selection tool and the rest of the popup menu options, which we'll cover next. The Selection Tool ------------------ Before you can modify a scene, you have to tell Giram which objects are going to be modified. This is what the Selection Tool is for. With it you can select an object, a group of objects, or change the contents of the current selection. Once selected, objects can be a translated, rotated or scaled. To select an object, just click on it. By default, all objects under the cursor are selected. As scenes can get quite complicated when displayed in 2D, and shapes are displayed stacked up on top of one another, this may not be what you want. So with Giram you can modify the way objects are selected with the [Shift], the [Ctrl] and [Alt] 'Modifier keys. * No Modifier: All the objects under the cursor are selected. Previous selections are forgotten. * [Shift]: All the objects under the cursor are added to the selection. * [Ctrl]: All the objects under the cursor are removed from the selection. * [Ctrl]+[Shift]: Select only the objects that are under the cursor AND were in the previous selection. * [Alt]: The selection is made by the 'first' object under the cursor - the 'first' object being the one that is higher up in the CSG heiracy (basically the one that was created first). Following clicks in the same spot, with the [Alt] modifier, will select the next object under the cursor and so on... * [Alt]+[Shift]: The 'first' object under the cursor is added to the current selection. Following clicks in the same spot, with the [Alt]+[Shift] modifier, will add the next object under the cursor to what were the selection before the first click, and so on... * Alt+Ctrl: The 'first' object under the cursor is removed from the current selection. Following clicks in the same spot, with the [Alt]+[Ctrl] modifier, will removed the next object under the cursor from the selection as it was before the first click, and so on... * Alt+Ctrl+Shift: The 'first' object under the cursor will become the new selection, but only if it was already in the previous selection, otherwise nothing is selected. Following clicks in the same spot, with the [Alt]+[Ctrl]+[Shift] modifer, will do the same thing but with the 'next' object. Viewing The Selection --------------------- Giram has a trick or two to help you navigate quickly around your scene as you build it. For instance, to save fiddling around with zoom to get the whole scene in one window, just right-click in any viewport except the camera, move down the popup menu to "View" and select the "Fit to Scene" option. The view automatically zooms to include all visible objects except light sources (which aren't technically visible anyway). For working on a section of the model, there is a "Fit to Selection", which rather predictably makes the currently selected objects fill the viewport. The Different Toolboxes ----------------------- People expect different things from their programs, and so we have two different layouts for the toolbox. It's a little bit confusing, but you do get a choice: The "Static Toolbox" shows all the icons in one great, big block. If you've ever used "The Gimp", it will look familiar. You want it, it's in there somewhere. The problem is that there are quite a few tools to pick from, and the toolbox can take up quite a bit of screen real estate. On the plus side, it is quicker to get into. The "Dynamic Toolbox" tries to use as little screen space as possible. It puts the tools into categories. The ones used most frequently like move, rotate and scale are left there much as the Static Toolbox. But the shapes are collected into categories like 3D shapes, 2D shapes, lathes, lights and patches - don't worry, you don't have to understand all the shapes yet. If you want to pick a shape from the Dynamic Toolbox and you can't see it, you right-click on an icon that is in the same kind of class. You'll know which ones are dynamic because they have a little black triangle in the top-right corner. So, if you can't see a sphere, but you can see a box (which is a 3D shape), right-click on the box's icon. Up pops a long, thin toolbar of all 3D shapes and there's your sphere to click on. The sphere icon then stays in the toolbox until you replace it with another 3D shape in the same way. More complicated, but the toolbox takes up a lot less space. Currently you have to manually edit the giramrc file to switch between static and dynamic toolboxes (see "Preferences" section below). When the User Preferences are saved, we'll fix that. Using The Tools --------------- When the Rotate Tool or Scale Tool is active, a green cross will appear near the currently selected object. This indicates the whereabouts of the 'pivot point' or 'scale centre point' of an object or group of objects. If you click on the "Dialogs" option on the Toolbox, you will see an entry called "Tool Options". Clicking on this brings up a little window that shows what can be changed about the currently selected too. Cones, for example, can be pointy (like a funnel) or be a cylinder with tapered sides. If you're feeling awkward, you can even make the cone's sides cross over at a point. It might even render. Those of you familar with user interface for The Gimp may prefer to do the same thing by double-clicking the tool in the Toolbox. The Move Tool ------------- To move the current selection, just Drag 'n' Drop it whereever you want. The Rotate Tool --------------- To rotate the current selection around the green cross, Drag'n Drop and the selection will rotate around the pivot point in the plane of the active view. You can place the green pivot point whereever you want, by pressing the Ctrl and clicking in the right place when the Rotate Tool is active. The Scale tool -------------- The Scale Tool uses the scale centre point as a kind of focus for scaling objects. Just click and drag on the shape, and the selection will grow or shrink with the cursor. You can place the pivot point whereever you want, by pressing [Ctrl] and clicking in the right place. You can choose to scale evenly or unevenly with the 'Tool Options Box'. The 'Box' Tool -------------- To create a new box, click to place the first corner, then drag the mouse pointer to the place you want the second corner to be. The box is created when you release the button. The 'Cylinder' Tool ------------------- To create a new cylinder, click to place the center of the cylinder's base. Then drag the mouse pointer vertically to set the length, and horizontally to set the radius. The cylinder is created when you release the button. The 'Plane' Tool ---------------- To create a new infinite plane, click in the View window which resembles the plane required. For example, a click in the X-Y view will create an infinite (X-Y) plane (i.e. with a normal toward the Z vector). The 'Sphere' Tool ----------------- To create a new sphere, click to place the center of the Sphere, then drag the mouse pointer to choose the radius of the sphere and release the button. The 'SuperEllipsoid' Tool ------------------------- When the SuperEllipsoid Tool is active, a click in a XYZ view will bring up a dialog box. There, you can choose to two exponents of the superellipsoid. Exponents near 0 lead to sharp edge, and exponents higher than two lead to pinchy objects. Experiment with this and have fun; a surprising variety of effects can be produced. The forms you'll obtain will vary from spheres, rounded boxes, rounded cylinders, pillows, and so forth. CSG Tree -------- Before you go much further you need to know about the CSG Tree, which is usually invoked from the popup menu's "Dialogs" option on the Giram viewport. The CSG Tree is a window gives you an insight as to how the objects are connected and related. Currently its only other use is to allow you to make specific objects invisible by clicking on the eye at the left of each object's row in the "Visible" column. The objects dimensions are in the far right column marked "Info", and the centre "Tree" shows the graphic artist's version of a directory tree, and you will find that it works a lot like a File Manager utility. Logical branches of a complex object can be individually opened and closed much as directories are on a hard disk. The CSG Tree can also be invoked from the "Dialogs" menu on the Giram Toolbox, but this will load the tree from the last scene loaded, which may not always be what you would expect. If this sounds complex, do not be alarmed. You don't need to use it yet and it's a piece of cake anyway. Main Popup Menu --------------- The popup menu is where we've stuffed all the parts of Giram that you use to manipulate your vision; you get it by right-clicking in a Giram viewport. You've already met the "Files" section and Render" in the 'lollipop' tutorial, but there are many more useful options that are close to your pointer. The menu options are arranged like this: Files Load Pov Load Autocad DXF Save Pov Save Autocad DXF Quit Edit Cut Copy Paste Snap View Zoom In Zoom Out Fit to Selection Fit to Scene Selection Select All Select None Invert Selection Export to DXF Import DXF Objects Operations Translate Rotate Scale Change Colour Edit Camera Render Wire Frame Hidden Faces Gouraud OpenGL Wireframe POVray Rendering Dialogs CSG Tree Tool Options Plugins Your choice here. If you have a different range of options, maybe you've got the wrong documentation. It is even possible you need the version after the one that's just been written... Files ----- "Load Pov" and "Save Pov" load and save Povray scripts pretty much as you'd expect them to. Povray scripts can be hugely complicated, and there are many ways of achieving the same effects so don't expect to get out exactly what went in. If you fancy programming, additions and corrections are more than welcome. "Load Autocad DXF" and the corresponnding "Save" option will load and save ASCII Autocad DXF files. Yes, you can use Giram as a file converter. We hope to add binary DXF capability soon. Also on this menu is the "Quit" option, which is used to terminate Giram prior to re-entering the "real world". Edit ---- "Copy", "Cut" and "Paste" should be pretty obvious to most people by now. But just in case you've been living in the Amazonian rainforest since editors were invented, they allow you to copy your currently selected items to an invisible clipboard, cut the selection out of the existing scene and into the clipboard, or to bring what's already in the clipboard out into the current scene. The "Snap" option needs a little more explaination. It's basically like opting to draw your design on graph paper, except that every line you draw goes from one intersection on the graph paper's grid to another. You get to say how fine the graph paper is. Because we tend to design things in whole multiples of units given the chance, your shapes will naturally fall into place. All the corners will line up, all the edges will be square. Cool, eh? When you click on "Snap" the "Snap" dialogue pops up. In there you can change the scale of the grid independently for each axis, depending on the demands of your model. You can turn the snap action on and off, and you can hide or show the grid. Give ti a go and generate a few shapes - note how they always line up when you make them or when you move them around. View ---- The options "Zoom In" and "Zoom Out" are fairly obvious: The current viewport appears to get closer to or further away, keeping the centre of the view in the middle. The "Fit to Selection" option is very useful when you start creating more complex models. It allows you to select one or more objects, and then zoom in or out automatically to the point where all of the objects selected are just in view. "Fit to Scene" does much the same thing but zooms in or out to encompass all the objects - except the lights - in the current viewport. Both of the exotic zooms leave your selection untouched. Selection --------- "Select All" is fairly obvious. Sometimes it is easier to select all the objects in the secne and then deselect the ones you didn't want. Even objects which are not currently visible (either by virtue of being off the current view, or made invisible through the CSG Tree dialog) will be selected. "Select None" is also a no-brainer. It deselects everything. "Invert selection" is again useful when you want everything but a few bits of the scene. Just select them, and then invert the selection. "Export to DXF" allows you to take the currently selected objects and write them out as an Autocad DXF file, which you can specify using the usual file dialog that will be presented to you. Saving DXFs is subject to the usual limitations associated with exporting files in differing formats. The "Import DXF Objects" option does the reverse. You are presented with a file dialog with which you can select an existing DXF file. This file is then merged with the current frame. Operations ---------- TBA "Change Colour" does just that. The colour of the current selection is set to a colour which you get to choose from a colour wheel. Click or drag the mouse anywhere in the colour wheel to pick the basic hue of the colour you want, and then use the vertical bar in the middle to adjust the shading from your pure colour to pitch black. TBA Render ------ There are a variety of different ways of rendering your masterpiece on the screen. Ideally we'd like to see a high resolution image with textures, shadowing, glints and all but unfortunately the processing power required to do this is beyond the reach of most people - and indeed many small countries. The easiest way of doing things is to construct a "Wireframe" view that is traditionally associated with 3D computer graphics. It's easy for the programmer anyway, and the user gets to see what is inside objects. A slightly more realistic view is "Hidden Faces", in which lines that would not be seen because the front of the object is in the way are identified and not drawn. Depending on what you are designing, this may or may not be preferable to a wireframe view. "Gouraud Shading" is about as good as it gets without doing a proper rendering. The faces of the objects are rendered, and the angle of the face is used to create a shading effect. The OpenGL Wireframe option uses a 3-D graphics library developed by Silicon Graphics. It will also run with packages that are compatible with the OpenGL API such as Mesa (http://www.ssec.wisc.edu/~brianp/Mesa.html) and take advantage of any hardware-specific acceleration that may be supported on your machine. Presently this is minimal in Linux, but things are changing fast. But to see your masterpiece in its true, virtual light you must use a package that does a lot more work, and so takes much longer. Povray (available from http://www.povray.org) is such a program - some would say the best - and it is supported in Giram via the "Povfront" front-end. The front-end saves you having to remember many obscure command line options and saves them for next time, so leaving your brain free to work on your artistic creations. Dialogs ------- In here you'll find options to toggle the Tool Options and CSG Tree boxes on and off. This is included for people who like the Gimp way of doing things from a popup menu. They can also be reached from the "Dialogs" menu on the Giram Toolbox. Plugins ------- Here you'll find additional modules which can written by keen programmers and added to Giram without modifying the Giram source code. The practical upshot is that users will not need to recomplie the Giram code to use a plugin. People can add plugins for creating multiple objects, possibly even ones that vary slightly according to how the plugins are written. The plugins can even have their own Tool Options menus. "Spheres" is a sample plugin that comes with Giram. Try it out. A complete description of the programming interface for plugins is not yet available, but if anyone should feel like writing a plugin, please contact Giram's original creator, David@dindinx.org Shortcut Keys ------------- To make Giram more convenient for your own pattern of use, you can assign your own shortcut keys to menu items. Let's say you want to use [Ctrl]L to load a new Pov file. Move the pointer to the [File][Load] option but don't click on it yet. Press [Ctrl]L and note that the menu gets automagically changed to include your keystrokes as a shortcut. From this point on, you can use [Ctrl]L to bring up the File menu. You don't have to use the [Ctrl] key. [Alt], [Shift], combinations or just a plain alphanumeric keypress will do fine. Use the backspace key to delete a shortcut. Preferences ----------- There is currently no GUI preferences option: You have to edit it the old-fashioned way in the top-level Giram directory's giramrc file. Options are in a standard ASCII file separated by newlines. Amongst the options available are: (toolbox static) All tools are displayed simultaneously in the toolbox. (toolbox dynamic) Only classes of tools are displayed in the toolbox. (dynamic-toolbox-shape vertical) (dynamic-toolbox-shape horizontal) (dynamic-toolbox-shape square) These describe the orientation of tools in the toolbox. (library_path "[path1][[:path2]...]") Tells Giram where to look for include files that are mentioned in Povray scripts. Multiple paths may be defined, each separated by a colon. The CSG Tree ------------ Eventually this will be a powerful tool showing the structure of your model and allowing you to assign portions of models to specific groups and boolean operations. For the moment, it shows you the logical structure of your model and provides a way of selecting objects which we've not yet written the selection code for. To select an object, just click on its CSG tree entry and watch the entry turn blue. At the same time, the object's representation in the views will turn red. The open eye at the left of some objects indicates that they are visible if they are within the view window or camera's field of view. Clicking on the eye will cause it to close, and the shape will no longer be visible. Click the closed eye, and it opens revealing the shape in the view window once more. Note that it is possible to have an object invisible but selected. If you modify the selected shapes at this point, the invisible ones will be affected too. To Do ----- Add numerous descriptions for Toolbox icons, popup menus and Toolbox feature boxes. Section on making a sor shape. Many new items in preferences section. Small Print ----------- All trademarks mentioned in this document are properties of their respective owners. *END*