MORAY V1.2 Monty, the Modeller An interactive scene designer Copyright 1993 SoftTronics, Lutz + Kretzschmar All Rights Reserved. Munich, Germany CIS : [100023,2006] March 1993 MORAY is a "shareware program" and is provided at no charge to the user for evaluation. You are encouraged to pass a copy of MORAY along to your friends and fellow raytracers for evaluation. Please encourage them to register their copy if they find that they can use it. Please do not give it away altered or as part of another system. This software is shareware, not crippleware. All functions in this shareware version are enabled. This is so that you can test all the functionality of the program. Please read Appendix D (page 45) for a definition of shareware. You are expected to register this program if you continue to use it after trying it out. Registration will also entitle you to up-to- date information on this product. There is a protected mode version planned for those *big* scenes. Whether this will happen depends on what sort of feedback I receive from you (also how many registrations). DISCLAIMER - AGREEMENT Users of MORAY must accept this disclaimer of warranty: "MORAY is supplied as is. The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or consequential, which may result from the use of MORAY." User Manual Page 2 MoRay V1.2 __________________________________________________________________ The essence of "user-supported" software is to provide personal computer users with quality software without high prices, and yet to provide incentive for programmers to continue to develop new products. REGISTRATION If you find this program useful and find that you are using MORAY and continue to use MORAY after a reasonable trial period (30 days, for example), you must make a registration payment of US$59 to Lutz + Kretzschmar. The US$59 registration fee will license one copy for use on any one computer at any one time. You must treat this software just like a book. An example is that this software may be used by any number of people and may be freely moved from one computer location to another, so long as there is no possibility of it being used at one location while it's being used at another. Just as a book cannot be read by two different persons at the same time. Commercial users of MORAY must register and pay for their copies of MORAY within 30 days of first use or their license is withdrawn. Site-License arrangements may be made by contacting Lutz + Kretzschmar. Anyone distributing MORAY for any kind of remuneration must first contact Lutz + Kretzschmar at the address below for authorization. This authorization will be automatically granted to distributors recognized by the ASP as adhering to its guidelines for shareware distributors, and such distributors may begin offering MORAY immediately (However Lutz + Kretzschmar must still be advised so that the distributor can be kept up-to-date with the latest version of MORAY.). All registered users will receive a copy of the latest version of the MORAY system. As a registered user, you will be informed when new versions of MORAY become available. You will receive special conditions for updating your version, depending on the changes made to the program. User Manual Page 3 MoRay V1.2 __________________________________________________________________ Contacting the author: Home of POV-Ray and MORAY is CompuServe in the GRAPHDEV area (GO GRAPHDEV). This is the place to ask questions about POV-Ray and MORAY, there are a lot of users of POV-Ray (and MORAY, I hope) there. You can reach me in the following ways: CompuServe : 100023,2006 This is the fastest, easiest and the preferred way of reaching me. You can post questions concerning POV-Ray and MORAY in the GRAPHDEV forum. I will probably answer e-mail within two or three days, depending on my workload at 'real' work. Your question may get a faster answer in the forum, if someone else knows the answer. Internet: 100023.2006@compuserve.com You can use the CompuServe Internet gateway to send me e- mail. I have no direct access to the internet. Postal mail: Up to the 1 July 1993: After the 1 July 1993: Lutz + Kretzschmar GbR Lutz + Kretzschmar GbR Fritz-Reuter-Str. 20B Fritz-Reuter-Str. 20B W-8000 Munich 60 81245 Munich Germany Germany The German Postal Service is changing all postal codes to 5 digits on the 1st of July 1993, so letters sent after the 1st of July with the old address will take longer. Fax: +49 89 8204270 (24h availability) Telephone: +49 89 8204250 (emergencies only!) Remember the timezone difference, this number is my office number, where I can be reached Mon-Fri, 9am to 6pm GMT (which is 6 hours ahead of New York time). You may get lucky 2 or 3 hours outside these times. User Manual Page 4 MoRay V1.2 __________________________________________________________________ T A B L E O F C O N T E N T S ----------------------------------- 1. What is MORAY? 8 2. MORAY Features 8 3. Requirements 9 3.1. Hardware 9 3.2. Software 9 4. Installation 10 5. Configuration 10 5.1. POVVersion 10 5.2. ModelPath 10 5.3. PrintPathxx 11 5.4. IncludeFilexx 11 5.5. TextureList 11 5.6. StartupScene 11 5.7. CheckTextures 11 5.8. WarnOnNoEMS 12 5.9. AlwaysMapEMS 12 5.10. AskOnExport 12 5.11. ViewLayout 12 5.12. GraphicsMode 12 6. Theory of operation 13 6.1. Object Attributes 13 6.1.1. Transforms 13 6.1.2. Bounding boxes 13 6.1.3. Texture 14 6.1.4. Visibility Level 14 6.1.5. Nested Attributes 14 6.2. Basic Interaction 15 6.3. The Primitives 15 6.3.1. Cube 15 6.3.2. Sphere 15 6.3.3. Cylinder 15 6.3.4. Cone 16 6.3.5. Torus 16 6.3.6. Rotational sweep 16 6.3.7. Translational sweep 16 6.3.8. Conical sweep 16 6.3.9. Bezier Patches 16 6.3.10. Heightfields 17 6.3.11. Light sources 17 6.4. The Non-Primitives 18 6.4.1. CSG Objects 18 6.4.2. Group Objects 18 6.5. The Cameras 18 6.6. The Textures 19 7. Creating an Object 19 User Manual Page 5 MoRay V1.2 __________________________________________________________________ 7.1. Primitives 19 7.2. Bezier patches 19 7.3. CSG and groups 20 8. Creating a Texture 20 8.1. Predefined POV texture 20 8.2. Opaque texture 20 8.3. Imagemap texture 21 8.4. Wood texture 21 9. Selecting an Object 21 9.1. Graphically 21 9.2. Using the Object Browser 22 9.3. Selecting the Parent of an Object 22 9.4. Selecting the Texture of an Object 22 9.5. Selecting the Bounding Box of an Object 22 10. Editing an Object 23 10.1. The Object Edit Menu 23 10.1.1. Assigning a texture 23 10.1.2. Assigning a bounding box 23 10.1.3. Changing the visibility 24 10.1.4. Changing the name 24 10.1.5. Calling the extended editor 24 10.1.6. Leaving the Object edit menu 24 10.2. The Torus Edit menu 24 10.3. The Heightfield Edit menu 25 10.4. The Light Edit menu 25 10.5. The Group Edit Menu 25 10.5.1. Adding a sub-object 25 10.5.2. Removing a sub-object 25 10.6. The CSG Edit Menu 26 10.6.1. Adding a sub-object 26 10.6.2. Removing a sub-object 26 10.6.3. Changing the CSG operation 26 10.6.4. Changing the sub-object order 26 11. Copying objects 27 12. Texture Editing 27 12.1. Deleting a texture 28 12.2. Replacing a texture 28 12.3. Creating a texture 28 12.4. Texture display 28 12.5. Editing the IMAGEMAP texture 29 13. The main screen 29 13.1. The three 2D Views 29 13.1.1. Disabling a view 29 13.1.2. Enabling a View 29 13.1.3. Enlarging a View 30 13.1.4. Toggling the Grid in a View 30 13.1.5. Panning a View 30 13.1.6. Zooming a View 30 13.2. The 3D View 30 User Manual Page 6 MoRay V1.2 __________________________________________________________________ 13.3. Interacting with Objects 30 13.3.1. Setting the interaction mode 31 13.3.2. Using Scaling mode 31 13.3.3. Using Rotation mode 31 13.3.4. Using Translation mode 31 13.4. Interaction strangeness 32 13.5. The Main Menu 32 13.5.1. The Transformation blocks 32 13.5.2. The menu items 32 13.5.2.1. The CREATE button 32 13.5.2.2. The SELECT button 33 13.5.2.3. The EDIT button 33 13.5.2.4. The COPY button 33 13.5.2.5. The CAMERAS button 33 13.5.2.6. The TEXTURES button 33 13.5.2.7. The FILES button 33 13.5.2.8. The OPTIONS button 33 13.5.2.9. The QUIT button 34 13.5.3. The information block 34 14. The FILES Menu 34 14.1. LOAD 35 14.2. MERGE 35 14.3. SAVE 35 14.4. OPTIONS 35 14.5. EXPORT 36 14.6. NEW 36 15. Extended Editors 36 15.1. The Bezier Patch Editor 36 15.1.1. Mesh density 36 15.1.2. Redraw Rate 37 15.1.3. Selecting and deselecting control points 37 15.1.4. Changing the control point positions 38 15.1.4.1. Translate 38 15.1.4.2. Scale 38 15.1.4.3. Local Scale 39 15.1.4.4. Uniform 39 15.1.4.5. Rotate 39 15.1.4.6. Local Rotate 39 15.2. The Sweep Editor 39 15.2.1. Curve divisions 40 15.2.2. Moving a knot 40 15.2.3. Smoothing a knot 40 15.2.4. Adding a knot 40 15.2.5. Deleting a knot 41 15.2.6. Entering values 41 15.2.7. Exporting to a RAW file 41 16. Appendix A: Hotkeys 42 16.1. Main menu 42 16.2. Object Browser 42 16.3. Bezier Editor 42 17. Appendix B: Tips 43 User Manual Page 7 MoRay V1.2 __________________________________________________________________ 17.1. For all POV users: 43 17.2. POV 1.0 users: 44 17.3. POV 2.0 users: 44 18. Appendix C: Definition of Shareware 45 19. Appendix D : Index 46 User Manual Page 8 MoRay V1.2 __________________________________________________________________ 1. What is MORAY? MORAY is a program with which you can design scenes for the POV-Ray raytracer to render. Contrary to normal scene design, with MORAY you design the scenes graphically. Up to now it was pretty difficult to imagine what the scene looked like, without laying it out on graph paper, or doing many test renders. MORAY is like a graph paper, it lets you place and change objects in wireframe while you see them. MORAY then generates the text file that POV needs to read. MORAY can thus also be used as a rapid prototype tool, to place objects quickly and write the scene file. You can then edit the scene file to suit your needs, just like you have been doing up to now. MORAY stores and works with POV-Ray primitives, as opposed to normal CAD systems, which mostly convert all objects to triangle meshes or similar polygon based formats when outputting. This ensures optimum performance and image quality from the raytracer. If you're a POV enthusiast and have access to CompuServe you should check out the GRAPHDEV forum for the latest news and tips on using POV. If you want to obtain the latest version of POV-Ray you can probably do so at the same source you obtained MORAY from. 2. MORAY Features The emphasis in designing MORAY was to be able to work as intuitively and as graphically as possible. Most of the work can be done with the mouse. Three 2D views and a 3D view of your scene are visible on screen. You can perform all transformations of the objects in the 2D views with the mouse. The 3D view shows what the current camera will see, i.e. how POV will raytrace it. MORAY allows you to, - scale, rotate and translate an object interactively on the screen. - define cameras with which to view your scene, that will show the scene in wire frame as POV-Ray will raytrace it. - graphically place a bounding box around an object. - make CSG or composite objects that can be nested arbitrarily deep. User Manual Page 9 MoRay V1.2 __________________________________________________________________ - assign textures from the TEXTURES.INC file to your objects. - define a new texture from within MORAY. - manipulate the control points of a bezier patch to create shapes not easily created otherwise. - create rotational, translational and conic sweeps that are then output as smooth triangles. - copy complex nested objects. - create multiple copies of an object transforming each copy by amounts you specify in one easy step. - export to POV-Ray 1.0 or 2.0. - specify the complexity of on screen objects. 3. Requirements 3.1. Hardware MORAY requires at least a 286, a SVGA card and a mouse, although I cannot recommend this set-up. The minimum system, if you want to do some larger scenes, would be a 386/25 with a 387 and 2MB EMS memory. 3.2. Software No specific software is required. You need to have POV-Ray 1.0 or POV-Ray 2.0 to raytrace the scene. Due to some limitations in 1.0 certain features are not available when writing to 1.0 format. This includes nested bounding boxes. User Manual Page 10 MoRay V1.2 __________________________________________________________________ 4. Installation To install MORAY simply copy MRAY.EXE to a sub-directory of your hard drive (e.g. \MORAY) and execute it, it is a self-extracting archive. The following files will be created: MORAY.EXE The actual executable. MORAYPOV.CFG the configuration file (see next section). SYSFONTx.FNT Fonts for different resolutions. MRYDEFLT.INC The default include file. MRYTXTR.LST The list of textures and colors that MORAY should know about for predefined textures. MRY\MRYSTART.MDL The default scene file. MRY\*.MDL Various other scene files. 5. Configuration There are a number of things that need to be configured for MORAY to work correctly. You need to specify where to write the POV files, what file to include on exporting, what file to load as default and various other settings. The settings are found at the end of MORAYPOV.CFG, in the [CONFIG] section. This file can be edited with a text editor and changed according to your set-up. The settings you can specify are described in more detail below. 5.1. POVVersion Specifies the POV version to default to. If you're using POV 1.0 set this to 1.0, else set it to 2.0. 5.2. ModelPath The directory in which MORAY stores its native format (binary) files. You can set this to the directory where your MDL files should reside. When installing MORAY, the sub directory MDL is automatically created and this is the default in this file, too. If you want to store the files elsewhere, just change this setting. User Manual Page 11 MoRay V1.2 __________________________________________________________________ 5.3. PrintPathxx The directory to which MORAY will export the POV file according to the output format. PrintPath10 is for POV 1.0 and PrintPath20 is for POV 2.0. If these directories do not exist, MORAY will print a corresponding warning on start-up and when you attempt to export. If you export, MORAY will write the file to the current directory. 5.4. IncludeFilexx This specifies the file which all exported POV files will include. The contents of this file are placed in exported files, before the scene data follows. By default this file is MDLDEFLT.INC and contains statements to include COLORS.INC, TEXTURES.INC and SHAPES.INC. 5.5. TextureList This file contains the list of textures that you are offered to choose from when creating pre-defined textures. It also contains the colors you can choose from when setting the color of a texture. As it comes with MORAY, it contains all the textures from TEXTURES.INC and all the colors from COLORS.INC. 5.6. StartupScene This setting specifies the MDL-file which MORAY loads on start-up, if no file is specified on the command-line. You can use this to load a file containing a camera, a light and a ground plane, for example. The default file MDLSTART.MDL contains a camera and a light source. You can load and edit this file according to your wishes, then save it and it will consequently be loaded on start-up. 5.7. CheckTextures This is a switch setting that can be turned on (YES) and off. When on, it makes MORAY check the scene for objects that don't have textures assigned to them, whenever you attempt to export a scene. If MORAY finds an object that has no texture assigned to it, it will highlight this object and give you the chance to assign a texture to it. User Manual Page 12 MoRay V1.2 __________________________________________________________________ 5.8. WarnOnNoEMS Since MORAY depends on the availability of EMS memory to store the Vector and Edge List, the absence of EMS will consume most of the memory available to MORAY. To warn you of this, you can set this variable to YES. If you then start MORAY with no EMS available, MORAY will print a warning and ask you to verify that you wish to continue. MORAY will function correctly until you run out of memory. 5.9. AlwaysMapEMS This setting disables EMS page caching. Normally you would not set this to NO. If you are experiencing problems in a multi-tasking environment, such as Windows 3.1 or Desqview, you may want to set this to YES. The setting will impact the performance of MORAY slightly. 5.10. AskOnExport This setting determines whether MORAY asks you for permission to overwrite an existing *.POV file when you select EXPORT 2 POV. This is to prevent you (and MORAY) from inadvertently erasing a file that you may have edited since the last export. If you set this setting to something else than YES, MORAY will not ask for permission to overwrite the file and will simply export the scene. 5.11. ViewLayout This setting can be used to change the arrangement of the four views. The default setting is the way a technical drawing is made, but you may prefer another setting. Following the keyword are four words: SIDE, TOP, FRONT and 3D. The order these four words appear determine the position of the views. The order is specified as the top-left, then the top-right, the bottom-left and the bottom-right view. 5.12. GraphicsMode This setting can be used to set the default startup graphics resolution. If you leave this unset MORAY will start in 640x480. Using the -G commandline parameter overrides this setting. Possible values are 640x480, 800x600 and 1024x768. User Manual Page 13 MoRay V1.2 __________________________________________________________________ 6. Theory of operation 6.1. Object Attributes Objects are what MORAY works with. An object has certain data associated with it that you can change as you would in the text file describing the scene for POV. The data includes positioning information (scaling, rotation, translation), texture information and bounding information. Some of these are optional. There are a couple of other things associated with an object, but we'll come to that later. Each object has a name that needs to be unique in the whole scene. MORAY assists you with ensuring this. The objects you create are kept in a global object list. When you create a complex object, such as a CSG or a Group object, the objects that you assign to this complex object will be removed from the global object list. Thus the global object list contains all top-level objects, i.e. objects that have no parents. 6.1.1. Transforms Each object has transformations associated with it. These transformations are handled a bit differently from the way that POV- Ray handles it. This difference is important to understand. In POV- Ray you can scale, rotate and translate an object any number of times and in any order to achieve a certain transformation. This means that you could first translate an object and then rotate it, which has the effect of moving an object in an orbit. In MORAY the transformations that can be applied to an object are first scaling, then rotation and then translation. You cannot have another order and you cannot add more transformations. Although this seems like a restriction at first, you will soon get over this and it will seem very normal (there are also ways around this). 6.1.2. Bounding boxes An object can have a bounding box associated with it. This bounding box is always defined in the objects local co-ordinates, i.e. before the transformations are applied to it. This is handy, since when you scale, rotate or move an object, its bounding box will follow this movement automatically. It is also automatically copied with an object. Note: if you're using POV 1.0 you will not be able to bound nested objects. This is a limitation of POV 1.0 that has been removed for 2.0. User Manual Page 14 MoRay V1.2 __________________________________________________________________ 6.1.3. Texture An object can also has a texture associated with it. This texture can be a predefined texture from TEXTURES.INC or a texture that is defined in MORAY. The textures that you cannot define in MORAY are ones with 3D textures, such as marble, bozo, etc. You can however define a planar imagemap or a wood texture and assign it to an object. The imagemap projections (or the wood) will then be shown on the screen. You can select it and scale, rotate and translate it till it is correctly placed. 6.1.4. Visibility Level Objects in MORAY have a visibility level associated with them. This level determines whether an object will be drawn or not. There is a global visibility level that defines the visibility to be shown. Objects that have a visibility level higher than the global level will not be drawn. You can use this to reduce the complexity drawn on screen and to thus increase the refresh speed. You don't always want to see all the details of a scene. For example, if you are designing a house and want to add a garage, you don't need to see the fixtures in the kitchen, or the knobs on the cupboards or the furniture, you just need the basic shape of the house. So you assign a high level to the furniture and stuff and keep the walls of the house at a low level. To assist you in easily changing the visibility of complex (deeply nested) objects, you can assign relative visibility levels to objects. This means that you can say that the knob of the cupboard has one level of visibility more that the cupboard. Then if you change the cupboards visibility, the knob will change with it, whereas if you manually assign a visibility level of one more to the knob, you will not change the level of the knob when you change that of the cupboard. 6.1.5. Nested Attributes There is something special about nested objects (CSG or Group objects). MORAY allows textures and visibility levels of group- objects to be inherited by lower level objects. This means that you can assign a texture to a high-level object in the hierarchy and objects below this hierarchy will automatically have this texture assigned to them, unless they specifically use another texture. So you don't need to assign a texture to every object you create. If you create a CSG object that should be one color, you just assign this texture to the CSG and leave the textures of the sub-objects undefined. They will then automatically inherit the texture from the union. User Manual Page 15 MoRay V1.2 __________________________________________________________________ This is also true of the visibility level. If an object has 0 as its level it will be assigned the level of its parent object. As mentioned above you can also specify that an object has a visibility level relative to its parent object. 6.2. Basic Interaction When MORAY first starts up you will see the main screen with 3 2D- views, a 3D-view and the main menu. Below the four views is space for various sub-menus. You interact with the scene in the 3 views, using the mouse. You can select and move objects in any of the views. If you have placed a camera in the scene, your actions are displayed in the 3D window from its viewpoint. This is also exactly what POV will render. The menu is operated like any other normal GUI menu, you click the mouse button while the cursor is over the button you want to choose. Interaction on the main screen is covered in more detail later. 6.3. The Primitives The primitives that MORAY supports are all closed objects. They are: Cubes, Spheres, Cylinders, Cones and Tori. These can also be used in CSG and Group objects. More primitives are rotational, translational and conical sweeps, bezier patches and heightfields. Light sources are also in this category. These objects can be used in Group-, but not in CSG objects. 6.3.1. Cube The cube is your standard issue box that goes from (-1,-1,-1) to (1,1,1), i.e. is centered around the origin and is 2 units wide in each direction. 6.3.2. Sphere This is a normal run of the mill sphere, centered at the origin with a radius of 1.0. You can unevenly scale this sphere, the conversion to the correct primitive for POV-Ray is handled by MORAY. 6.3.3. Cylinder The cylinder is defined as an object with its base at Z=0, extending to Z=1, centered on the X-Y plane, with a radius of 1.0. User Manual Page 16 MoRay V1.2 __________________________________________________________________ 6.3.4. Cone The cone has its cap plane at Z=0, where the radius is 1.0 and extends to Z=1 where it comes to a point. 6.3.5. Torus The torus lies in the X-Y plane. The major and minor radius can be entered from its editing menu (see later). 6.3.6. Rotational sweep The rotational sweep is an object defined by taking a number of curves (segments) and rotating them about the Z-axis. When MORAY exports a rotational sweeps, it outputs a union of smooth_triangles. The whole object is auto-bounded with one bounding box, unless you provide a bounding box yourself (which is not really necessary, since MORAY will make a really tight bound). 6.3.7. Translational sweep The translational sweep is an object defined by extruding a number of curves (segments) that make a closed outline, from Z=0 to Z=1. This is output as a union of triangles and smooth_triangles. The cap and base planes are created by splitting the polygon, obtained by connecting all edge points together, into triangles. 6.3.8. Conical sweep This is a sweep that is defined by taking a number of curves (segments) that make a closed outline and extruding them from Z=0 to Z=1, except that all points on the curves move towards and meet at (0,0,1). 6.3.9. Bezier Patches A single bezier patch (the POV-Ray primitive) is defined by sixteen control points. This does not give you many possibilities of deforming the surface. Basically you can make a 'hump' type shape or a paper sheet like object. To make more complex bezier patch shapes you need to have more control points, i.e. more patches. MORAY has the ability of handling connected bezier patches. User Manual Page 17 MoRay V1.2 __________________________________________________________________ Getting two adjoining bezier patches to meet at a common edge is relatively easy, all you need to do is to place the control points that are along the shared edge at the same positions. But getting the patches to make smooth transitions is difficult, because the slope at these shared control points need to be the same in both patches. This is very tedious to do by hand. MORAY handles this for you, making sure that adjoining patches will not only connect correctly, but will also exhibit 1st order continuity, meaning that you won't see a crease or edge where the patches join. This is done by not allowing the user to move the shared control points directly. The shared control points are calculated by MORAY according to how you move the surrounding control points. This ensures that the slope at the control point exhibits 1st order continuity. You can create a sheet of patches. The patches are created so that they share their common edges. You can create one that is 3 by 2 sheets, for example. This patch starts out flat. You can also create a cylinder type structure. It starts out as a cylinder and can be deformed to make a bulging pipe, for example. Two bezier patches share the two opposite edges to make up one cylinder segment. You can specify how many of these segments to stack on top of each other. You can also create another cylinder type-structure. It also start out as a cylinder where not two, but four patches make up one cylinder segment. This arrangement is used for the body and lid of that classical graphic object, the Utah teapot. The spout and handle are made of the 2 cylinder version, above. The patches you create will remain one object, no matter how many sub patches make up the object. 6.3.10. Heightfields MORAY can handle heightfields, although they are shown as cubes, i.e. the heightfield data is not read in from the file. This would be too much data and consume a lot of memory and would bog down redraws pretty heavily. 6.3.11. Light sources Light sources are not really primitive objects, since one can't see them, all they do is let us see the rest. But they fit into the primitive object category from the way that MORAY handles them and what you can do with them. User Manual Page 18 MoRay V1.2 __________________________________________________________________ Contrary to POV, you can place light sources in composites (group objects). So if you make a desk lamp, you can attach the light source to the globe in the lamp. MORAY will calculate the correct position according to the lamp transformations and export the correct position to POV. 6.4. The Non-Primitives These are CSG objects and Group objects. 6.4.1. CSG Objects CSG objects are made up of one or more primitives or CSG objects and can be a union, a difference or an intersection of these sub- objects. 6.4.2. Group Objects Group objects are made up of one or more primitives, CSG- or Group objects. They are similar to composites in POV-Ray except that you can also place light sources in Groups. 6.5. The Cameras The cameras are special objects. You can define the position, the lookat and the aperture of the camera. You can also tell MORAY how large to display the camera in the wire frame display. MORAY will create the correct definition for POV-Ray. The scaling fields of the camera objects are used differently from the way they work with normal objects. The X-scale specifies how large to draw the viewing pyramid (which has nothing to do with POV), the Z-scale specifies the aperture of the camera in degrees. The rotation fields are not used in cameras. The translation fields define the position of the camera or the position of the lookat point. These can be switched for moving on the screen. User Manual Page 19 MoRay V1.2 __________________________________________________________________ 6.6. The Textures There are two ways of defining a texture. You can select a pre- defined texture from a list defined in one of the support files, or you can create your own. If you create a pre-defined one you cannot edit any of its parameters, since it is defined outside of MORAY. If you create your own you can change the ambient, diffuse, specular, reflection and refraction components as well as the color. 7. Creating an Object To create a new object, click on the CREATE button in the main menu or press Alt-N (for New). You will be presented with a list of possible objects you can create. Click on the object you wish to create. You will be asked for a name for the object. This must be a unique name, i.e. no other object in the scene is allowed to have the same name. If you enter a name that already exists, you will not be allowed to create this object. MORAY then creates the object and places it in the global object list. Depending on the type of object created you will need to specify further information about the object. 7.1. Primitives All primitives require no more information and you are presented with the objects editing menu (see Editing an Object later). 7.2. Bezier patches To create a bezier patch, you need to tell MORAY what type of patch you would like (see Bezier Patches). If you want a sheet type patch, click on SHEET. Then select how many basic patches (i.e. the POV-Ray primitive type patch) to create. You need to specify how many in X and how many in Y should be created. Then click ON OK to create the patch. If you want a cylinder-type patch, click on the 2-patch or 4-patch cylinder button. Then specify how many cylinder parts should be stacked on top of each other. Then press OK to create the patch. User Manual Page 20 MoRay V1.2 __________________________________________________________________ After the patch has been created you will be placed in the object editing menu. 7.3. CSG and groups If you create a CSG or Group object you can specify which objects to combine to a CSG or Group. An object selection list on the left will show you all defined objects. You can select an object to attach to the CSG or Group by double-clicking on it, or clicking once and selecting GROUP IT. When you are done press DONE and you will then be presented with the objects editing menu. 8. Creating a Texture To create a texture select TEXTURE from the CREATE menu or CREATE from the TEXTURE menu. You will be asked to choose what type of texture to create. 8.1. Predefined POV texture MORAY knows about all textures you put in the TextureFile (see Configuration). It will display a sorted list of these textures. You can choose one and it will be created for you. If you wish to create another one, simply click on it, otherwise press cancel or click on DONE. When exporting your scene, MORAY will not create the definition of this texture, it's up to you to include the correct file containing the textures declaration. 8.2. Opaque texture This allows you to create the texture from within MORAY. You can change the ambient, diffuse, specular and various other components. When exporting you scene, MORAY will create a texture definition according to your settings. User Manual Page 21 MoRay V1.2 __________________________________________________________________ 8.3. Imagemap texture This texture allows you to create an imagemap texture, that you can graphically place on an object. Once you have assigned a texture of this type to an object, it will be displayed on the wire frame display. It is a light green rectangle with arrows from the origin (bottom left) of the image along the X- and the Y-axis. The X-axis has a closed arrow, to help you to keep the X- and Y-axis apart. You can select this texture graphically and scale, rotate and move it about just like any other object. 8.4. Wood texture This texture is meant for making it easier to place wood on an object. It also has a graphical display, like the imagemap. The display consists of four lines along the woods major axis, forming a circle (well square, actually). The wood will have one ring (roughly) in this circle. You can now select the wood and scale and rotate it to make the object look like it was cut out of the wood at a certain angle or position. 9. Selecting an Object Before you can edit or change an object, you need to select it. Only one object can be selected at any one time. It is displayed in yellow on the screen, whereas all the other objects are gray. 9.1. Graphically This is the easiest and most straightforward way to select an object or a camera, or a texture, or a bounding box. Move the cursor over a line that belongs to the object you want to select. Then press and hold the Shift-Key and the left mouse button. Then drag the mouse to open a rectangle that covers the line, i.e. the line should run through the rectangle you make. The first object MORAY finds that has a line running through this rectangle will be the object that is selected. User Manual Page 22 MoRay V1.2 __________________________________________________________________ 9.2. Using the Object Browser If you click on the SELECT button in the main menu a window with a tree-like display of the names of all objects will be displayed. The names are displayed in buttons. Top-level objects are displayed at the left edge of the window. Sub-objects are displayed to the right of their parents, connected to them by lines. Bounding boxes are displayed in red above the objects they bound. To select an object simply click on the button with the name of the object you want to select on it. The selected object is displayed on a yellow button. All the sub-objects belonging to the selected object are displayed in a slightly lighter color. If you want to edit the object, you can immediately press Alt-E from the browser. The window will then disappear and the normal object editing menu appears. After you have finished editing the object you will be returned to the browser. If you want to delete and object you can also press Alt-D to delete the selected object. You will be asked to verify this decision. 9.3. Selecting the Parent of an Object If you have selected an object and wish to select its parent, press Alt-P. If no parent object exists for the currently selected object, nothing happens. 9.4. Selecting the Texture of an Object To select the texture of an object, press Alt-T while the object is selected. You can now scale, rotate and move it, just like an normal object. This is handy for placing a planar imagemap. 9.5. Selecting the Bounding Box of an Object You can select the bounding box of the currently selected object by pressing Alt-B. If the object has no bounding box then nothing will happen. You can directly select the bounding box in the object browser (see above). User Manual Page 23 MoRay V1.2 __________________________________________________________________ 10. Editing an Object Before you can edit an object, you need to select it. See the chapter above on ways to do this. 10.1. The Object Edit Menu This is a basic menu that all objects share. It offers controls for changing the texture, the bounding box, the visibility level and the name of the object. If an object has another editor (true for bezier patches and sweeps), you can call an extended editor from this menu. More complex objects will have more buttons added to it. 10.1.1. Assigning a texture There is a list button containing all the names of the currently created textures. You can assign one of these textures to the object by clicking on the required texture. If you have not yet created the texture fro this object, you can do so by clicking on the NEW button next to the NO TEXTURE button. You will be allowed to create one or more textures and can then assign on of them to the object. The name of the currently assigned texture is shown in a label button. Above this label button is a button with the legend NO TEXTURE. This button can be used to clear the reference to the texture. The texture name may have an asterisk ('*') in front of it. This means that the texture has been inherited from the parent object. Clicking on the NO TEXTURE button in this case will have no effect. 10.1.2. Assigning a bounding box There is a list button containing all the names of the currently available (i.e. not assigned) bounding boxes. You can assign one of these bounding boxes to the object by clicking on the required bounding box. It will disappear from the list. The name of the currently assigned bounding box is shown in a label button. Above this label button is a button with the legend NO BOUND. This button can be used to clear the reference to the bounding box. The bounding box may have an asterisk ('*') in front of it. This means that the bounding box has been inherited from the parent object. User Manual Page 24 MoRay V1.2 __________________________________________________________________ 10.1.3. Changing the visibility There are four buttons concerned with the visibility level of an object. There is a 'R' button, a '+' button, a display button and a '-' button. The display button shows the current visibility level. If it is prefixed by an asterisk, then the visibility level is inherited from the parent object. If it is prefixed by a plus sign, then the visibility level is relative to the parent object. The 'R' button specifies whether the visibility of the object is relative or absolute. If the button is depressed then the level is relative. Pressing the '+' or '-' buttons increases or decreases the visibility level. If you decrease the visibility level to 0, the object will inherit the visibility from its parent. 10.1.4. Changing the name The name of the object is displayed in a label button. Pressing the NAME button will pop up an editing window, allowing you to enter the new name. 10.1.5. Calling the extended editor If an object has an extended editor the EXT. EDIT button will be available. Press this button to enter the extended editor. 10.1.6. Leaving the Object edit menu To leave this object editing menu either press the DONE button or click the right mouse button. 10.2. The Torus Edit menu The torus menu offers two buttons more than the normal object menu. These are used to set the outer and inner radii of the torus. Clicking on one of the buttons will pop up an editing window, allowing you to specify the new radius. User Manual Page 25 MoRay V1.2 __________________________________________________________________ 10.3. The Heightfield Edit menu The heightfield menu offers a button to specify the filename of the heightfield. Although you can enter any file name, MORAY will only work correctly on GIF, TGA and POT files. If you specify another file name, you will need to edit the POV scene file. Clicking on the buttons will pop up an editing window, allowing you to specify the file name. 10.4. The Light Edit menu The editing menu for lights is similar to the normal object editing menu, except that the texture and bounding box lists are inactive. Additionally it contains sliders for specifying the color and/or brightness of the light. The top three sliders are R, G and B components respectively. If you want colored lights, use these sliders to set the light color. The fourth slider is set by MORAY to the gray equivalent of the colors. If you manipulate the fourth slider you are specifying white light and the slider sets the brightness of the light. All sliders will then become the same value. 10.5. The Group Edit Menu When you edit a group object the basic editing menu described above will be expanded by controls to add and remove sub-objects and a list of the current sub-objects. 10.5.1. Adding a sub-object To add a sub-object click on the ADD OBJECT button. You will be asked to select the object to add to the group. When you confirm the choice the object will be removed either from the global object list or from the object it was a sub-object of. It will now appear in the object list. 10.5.2. Removing a sub-object To remove one of the sub-objects click on this object in the list. The UNGROUP button will be activated. Pressing on this button will cause the object to be ungrouped and it will re-appear in the global object list. User Manual Page 26 MoRay V1.2 __________________________________________________________________ 10.6. The CSG Edit Menu When you edit a CSG object the basic editing menu described above will be expanded by controls to add and remove sub-objects, to show a list of the current sub-objects, to change the order of the sub- objects and to specify the operation. The first object listed in the sub-object list is the base object. If the CSG is a difference this will be the base object from which all subsequent objects will be removed. 10.6.1. Adding a sub-object To add a sub-object click on the ADD OBJECT button. You will be asked to select the object to add to the CSG object. When you confirm the choice the object will be removed either from the global object list or from the object it was a sub-object of. It will now appear in the object list. 10.6.2. Removing a sub-object To remove one of the sub-objects click on this object in the list. The UNGROUP button will be activated. Pressing this button will cause the object to be ungrouped and it will re-appear in the global object list. 10.6.3. Changing the CSG operation Press the OPER button until correct CSG operation is shown. Choices are DIFFRNC, INTERSCT and UNION. DIFFRNC makes an object that consists of the first subobject in the list minus all the rest, i.e. all subobjects except the first are cut away from the first subobject. INTERSCT makes an object that consists of all the space that all the subobjects share. UNION makes an object that consists of all the subobjects. 10.6.4. Changing the sub-object order Press the CYCLE button to cycle the subobject. The first object becomes the last object and the second object becomes the first object. This allows an object that was not added to the CSG object as the first object to be made the main object. User Manual Page 27 MoRay V1.2 __________________________________________________________________ 11. Copying objects MORAY allows you to make single or multiple copies of the selected object. If you click on COPY or press Alt-C from the main menu, a sub-menu will open where the main menu was. By default, the menu is setup for making a single copy of the object. If that's all you want to do, just click on OK. There are transformation buttons, just like in the main menu, which enable you to transform each object as it is created. For example, if you make multiple copies of a cube and set the X-Translation to 2, each new cube will be offset by 2 units from the last created cube along the X-axis, forming a line of cubes. There are two modes that you can specify for scaling, rotation and translation modes. Change modes by clicking on the SCALING, ROTATION or TRANSLATE buttons. The button text will change from OFFSET to FACTOR or vice versa. Offset means that for the new copy the values that you entered are simply added to the values that the previous copy had. For example, if you've set X-translate to 2, all subsequent copies will be two units away from each other. Factor means that the values of the object are *multiplied* by the values that you entered. For example if you've set X-translate to 2, and the first cube has a X-translation of 1, the first copy will be at 2, the next at 4, the next at 8, then at 16, at 32 and so on. The ATTACH TO SAME PARENT button specifies whether to attach the new copies, that will be created, to the same parent object as the original object is attached to. This button is only active if the object you are copying has a parent object. The REPEAT COUNT button specifies how many copies to create. Click on the button to enter a repeat count. Once all the settings have been set to your satisfaction, click on the DONE button for the objects to be created. If you change your mind, press CANCEL. 12. Texture Editing You can edit some of the textures that you create in MORAY. If you use a predefined texture, however, you cannot edit any of the parameters of the texture, since it needs to be defined in an include file. User Manual Page 28 MoRay V1.2 __________________________________________________________________ Pressing TEXTURES from the main menu brings you to the texture list. On the left is a list showing all the texture names that you have created in this scene. Clicking on a texture will set all the buttons to the texture settings of that texture. You can then click on the parameters and enter new values. There are also three sliders with which you can set the color of the texture. 12.1. Deleting a texture You can remove unused textures and used textures. If you want to delete textures that are not being used in the scene, click on the DEL UNUSD button. Otherwise click on DELETE and the texture will be deleted. Any references to this texture will also be removed, i.e. objects that have the texture assigned to them will consequently have no texture assigned to them after this. 12.2. Replacing a texture You may change your mind about what type of texture to assign to an object, or you may work with dummy textures until the geometry (i.e. scene layout) is finished and then wish to set the textures to their correct setting. This function can be used to accomplish this. You select one of the textures in the list on the left of the menu and then click on REPLACE. You then need to create the texture. If you've defined it somewhere already then create a pre-defined one with the correct name. When done, MORAY will replace all references to the first texture by references to the newly created one. 12.3. Creating a texture To create a new texture press CREATE. You will be asked what kind of texture and the name of the texture. 12.4. Texture display The imagemap texture is displayed in the wire frame display to aid you in placing (scaling, moving, rotating) it relative to your object. It consists of a light green rectangle with arrows along the X and Y-axis of the image file. The X-axis has a CLOSED arrow on it's end, the Y-axis has an OPEN arrow on it's end. This assists you in seeing exactly how the image file will be mapped onto the object. User Manual Page 29 MoRay V1.2 __________________________________________________________________ The wood texture is also displayed in the wire frame display to help you place it correctly. It is displayed as four lines along the axis of the tree at a distance of 0.866 from the center of the wood. Use this as a reference when scaling the texture. 12.5. Editing the IMAGEMAP texture The Imagemap texture also has it's own editor, next to the editing facilities in the texture editor. Here you can set the filename, tiling and smoothing of the imagemap texture. Click on FILENAME to specify the filename to use for the texture map. You need to specify the extension, too, since MORAY extracts the extension when exporting to POV to specify the image file type. Click on the ONCE/TILED button to toggle between the two. The displayed status is the status that will be exported. If the button says ONCE the texture will only be mapped once onto this body. Click on the ROUGH/SMOOTH button to switch on (or off) the interpolation parameter. 13. The main screen The main screen is divided into four views. To the right and below these views are menu areas. On the main screen the area to the right contains the Main menu and the area below the views is empty. 13.1. The three 2D Views The 2D views represent views from above, from the side and from the front. Each view can be separately panned and zoomed and can have a labelled grid to aid you in placing objects. 13.1.1. Disabling a view You can disable a view by moving the cursor over it and pressing the '-' key. The view will be cleared and will not be refreshed when you change the scene. 13.1.2. Enabling a View You can enable a disabled view by moving the cursor over it and pressing the '+' key. The view will be from then on be updated when you change the scene. User Manual Page 30 MoRay V1.2 __________________________________________________________________ 13.1.3. Enlarging a View You can enlarge a view by placing your cursor over the view in question and pressing either the middle button, if you have a three- button mouse, or both left and right buttons if you have a two- button mouse. The view will be enlarged to cover the area previously covered by the three views. Pressing the same button(s) again will make the view revert to its original size. 13.1.4. Toggling the Grid in a View You can turn the grid in a view on and off by moving the cursor into the specific view in question and pressing the Alt-G key. This will turn the grid off if it was on and on if it was off. 13.1.5. Panning a View Each view can be separately panned to bring certain areas of a scene into view. To do this, move the cursor into the view you want to pan. Press and hold the CTRL-key. Now press and hold the left mouse button and drag the scene. The scene will follow the mouse. When done release everything. 13.1.6. Zooming a View To zoom into or out of a view, move the cursor to the view in question. Now press and hold the ALT-key. Press and hold the left mouse button and move the mouse up (away from you), to zoom into the view or move it down (towards you) to zoom out of the view. 13.2. The 3D View The 3D view is the view that the last selected camera sees and the view that the raytracer will create. If this window is blank, you either don't have a camera defined or it's pointing away from any objects in the scene. You cannot interact with this window in any way, it's merely a display of the scene, although it can be enlarged and disabled (see above). 13.3. Interacting with Objects You interact graphically with the selected object on this screen. All interaction is done by moving the cursor over the view where you want to interact with the object, depressing the left mouse button and moving the mouse until the object has been manipulated to your satisfaction and then releasing the mouse button. User Manual Page 31 MoRay V1.2 __________________________________________________________________ What happens to the object when you do this is determined by the currently set interaction mode. There are three basic interaction modes: scaling, rotating and moving. Scaling is divided into uniform and non-uniform scaling. 13.3.1. Setting the interaction mode The interaction mode is set by either clicking on the mode you need on the main menu, or by pressing the corresponding key on the keyboard. You cannot change interaction modes while having the mouse button depressed. To set: - non-uniform scaling mode, press 'S' or click on SCL. - uniform scaling mode, press 'U' or click on USCL. - rotation mode, press 'R' or click on ROTATE. - translation mode, press 'T' or click on TRANS. 13.3.2. Using Scaling mode To scale objects, you need to move the mouse into the view that displays the objects in the dimensions you want to scale. If you have uniform scaling mode set, this doesn't matter, since all dimensions of the object are scaled equally. Now press the left mouse button and drag the mouse to the upper right. The object will follow the mouse movement. When scaled enough, release the button. 13.3.3. Using Rotation mode To rotate an object move the mouse into the view where the axis of rotation would come out of the monitor. Move the mouse to a point away from the objects origin, press and hold the left mouse button and drag the mouse around the objects origin. It will rotate about its origin, following your mouse. 13.3.4. Using Translation mode To move an object move the mouse into the view representing the plane in which to move the object, i.e. the dimension that should remain the same should be the one that would stick out of the screen. User Manual Page 32 MoRay V1.2 __________________________________________________________________ 13.4. Interaction strangeness When you select an object and attempt to scale, rotate or move it, it may not follow your mouse. This happens when the object is part of a hierarchy of objects that have also been rotated or scaled. For example consider the following set-up: you have a group containing two non-transformed cubes. Now you rotate the group by 90 degrees around the Z-axis. If you now select one of the cubes and attempt to move it along the X-axis, it will move along the Y-axis! This is because the transformation of the cube (translation in X) is appended to the group transformation (rotation about Z). So the cubes X translation gets rotated to a (in the absolute world) Y rotation. So when designing scenes, start from the bottom up and only group once all subobjects have the correct relative position to one another. 13.5. The Main Menu The main menu is the menu that you see when the program has started up. It has two main regions. The top half or so contains information about the current object. Specifically it displays the name of the object and its transformations. 13.5.1. The Transformation blocks The very first button contains the name of the object. Then follow three blocks of transformation information, as well as the current transformation mode indicators (more on that later). The first block of three buttons contain the scaling that is being applied to the object in X, Y, Z order. The second block contains the rotation in degrees that is being applied to the object in X, Y, Z order. The third block contains the translation that is being applied to the object. 13.5.2. The menu items Following the transformation block are a couple of menu items that allow you to access certain functions of the program. 13.5.2.1. The CREATE button This button brings you to a menu where you can create new objects, cameras or textures. User Manual Page 33 MoRay V1.2 __________________________________________________________________ Hotkey : Alt-N 13.5.2.2. The SELECT button This button can be used if you want to select an object by name instead of graphically (see later). 13.5.2.3. The EDIT button This button can be used to edit the currently selected object. If no object is selected you will first be asked to select one. Hotkey: Alt-E 13.5.2.4. The COPY button This button makes one or more copies of the currently selected object. If no object is selected you will be asked to select one. You will then be presented with another menu, where you specify a few things about the new object(s). This menu is explained in more detail later. Hotkey : Alt-C 13.5.2.5. The CAMERAS button This brings you to the camera list editor. Here you can create, delete or rename cameras. 13.5.2.6. The TEXTURES button This button brings you to the texture editor where you can create, edit, replace or delete textures. 13.5.2.7. The FILES button This button brings you the files submenu. Here you can load, save, merge and export scenes. Hotkey : Alt-F 13.5.2.8. The OPTIONS button This button brings up the options menu, where you can set various parameters for MORAY to use. Hotkey : Alt-O User Manual Page 34 MoRay V1.2 __________________________________________________________________ 13.5.2.9. The QUIT button This button will exit the program. If you have changed the scene and have not saved it, you will be asked to confirm this action. Hotkey : Alt-X 13.5.3. The information block Below the main menu are six buttons that give you information about the current state of MORAY. The first three show the X, Y and Z position of the cursor when in one of the 2D views. The fourth button shows the amount of available conventional memory and the amount of available EMS. The fifth button shows the number of points currently being calculated for every refresh and the percentage of the point list used. The sixth button show the number of edges currently being drawn during a refresh and the percentage of the edge list used. 14. The FILES Menu The files menu is used to load, save, merge and export files to/from disk, to delete the scene in memory and to set some options. The actions that can be executed use the current filename, which is shown below the list of available drives. If it is empty, the action buttons are inactive. To enter a new filename either click on the filename button or simply start typing. Either way, an editing window will pop up where you can enter a filename. To select a filename already on disk, simply click on the name in the list button showing the MDL files in the current directory. It will appear in the filename button above the list. If your file is in another directory you can navigate through the directories by clicking on the directory names, which are surrounded by square brackets. When you are done, press DONE or the cancel button to leave the FILES menu. User Manual Page 35 MoRay V1.2 __________________________________________________________________ 14.1. LOAD Once you have selected or entered a name, click on LOAD to load the MDL file. If there is a scene in memory you will be asked whether to delete this scene. Answer YES if you want to discard the scene in memory and load the one on disk. If you press NO, MORAY will not load the file. 14.2. MERGE You can add files to your current scene by clicking on MERGE. The selected filename will be loaded and added to the scene. This can be used to import objects from a library for example. 14.3. SAVE If you loaded a file and now want to save it again, you can click on SAVE directly, since the filename will still be the same (unless you merged in another file). MORAY will keep the old file, changing its extension to BAK, and will save the scene to the original name. If you want to enter a new name under which to save the scene, do this before clicking on SAVE. Just start typing the filename. 14.4. OPTIONS Clicking on this button will open a menu below the views, which allows you to change a few options. You can change the target raytracer to either POV 1.0 or POV 2.0. You can call the texture checking routine. This searches the scene for objects that have no textures assigned to them. This object will be selected and you can the edit it and assign a new texture. You can enable or disable the grid snap. You can also set the snap grid size. Alt-S can be used to toggle snap. There is also a REGISTER button that you will use, if you decide to register. This function will ask you to type in your name and a number (which you will receive when registering). WARNING : Do *NOT* use this function with incorrect data. MORAY will not be usable if you enter incorrect data. User Manual Page 36 MoRay V1.2 __________________________________________________________________ 14.5. EXPORT This button is used to actually write the scene in memory to a POV scene file. MORAY will create a file in the target directory as specified in the CFG file (see Configuration). You can then leave MORAY and start POV to trace the scene you just created. 14.6. NEW This button clears the scene in memory. It will ask you to verify this decision first, though. 15. Extended Editors Two object types have further editors that change the object geometry; the Bezier patches and the sweeps. 15.1. The Bezier Patch Editor This editor allows you to change the control points of your patch and the graininess of the patch display, i.e. how fine to draw the patch. The patch is drawn in the 2D-Views and the 3D-Views, and you manipulate the points similar to how you would manipulate the objects in the main screen. The views can be panned and zoomed just as on the main screen. The patch is manipulated by moving control points. MORAY allows you to move a single control point or a selection of control points. There are a couple of ways to move the control points, you can move them, you can scale them and you can rotate them. 15.1.1. Mesh density You can adjust the amount of mesh lines that MORAY will create for your patch. If you want a detailed view, you would select a high density, i.e. move the slider to the right. This will slow down screen redraws and chew up memory. If you're satisfied and don't need that much detail you could then select a lower setting. This setting is only relevant for MORAY, since POV-Ray handles the bezier patches itself. User Manual Page 37 MoRay V1.2 __________________________________________________________________ 15.1.2. Redraw Rate Apart from using the Mesh density setting to decrease the amount of lines that need to be drawn, you have two more options of increasing the redraw rate while moving the control points. The SHOW MESH button can be used to hide or show the mesh while moving the control points. The mesh redrawing can take quite some time, so it may be good to hide it while moving the points. Once you release the mouse button, after dragging the points, the mesh will be redrawn. Hotkey : M The SHOW CTRL button can be used to hide or show the control point grid while moving control points. Hotkey : C 15.1.3. Selecting and deselecting control points To select points move the cursor to a view where the control points are visible. Press the Left-Shift-key and then open a rectangle that encloses the points. Do this by clicking the left mouse button, keeping it pressed and moving the mouse. When the points are inside the rectangle release the mouse button. The selected points will now be marked. You can see the number of points you have selected in the corresponding button on the menu. You can also depress the Left-Shift-key and press and release the left mouse button. In this case all points near the cursor will be selected. To deselect points, do the same as above, but enclose the selected points. MORAY tries to guess at what you're attempting to do with respect to selecting or deselecting. If you do a select operation on points that are already selected, MORAY assumes you want to deselect them and does so. If you do a select operation on points that are all deselected, MORAY assumes you want to select them. If you do a select operation where you enclose selected and deselected points, MORAY can't know what you want to do, so it looks at the keyboard modifier. If you've pressed Left-Shift, MORAY assumes you want to select and if you've pressed Right-Shift, MORAY assumes you want to deselect. User Manual Page 38 MoRay V1.2 __________________________________________________________________ Naturally, you can change views between selection operations. So if you wanted to select a point in the side view and there are other points 'behind' this point you'll have selected all these points. Then to deselect those that are behind the point of interest, you would go to the top view and deselect the ones that you're not interested in. There are a three buttons that you can use to change the selection. You can select all the control points by pressing on MARK ALL. This is good for moving the whole origin of the patch somewhere else. You can deselect all points by clicking on UNMARK ALL. This is useful, if it would be a bit tedious to deselect the points by hand. You can change the state of all the points by clicking on TOGGLE MARKS. This selects deselected points and deselects selected points. If you want to select all points but one, you could select that one and then click on this button. 15.1.4. Changing the control point positions Once you've selected points to manipulate you have seven possibilities of moving them. While moving the control points, the control grid and the actual patch mesh can be made to disappear (see Redraw Rate, above). Once you are finished moving the points about, the mesh will reappear. You can select three basic modes: scaling, rotation and translation. Scaling and rotation can be made to work locally (more later) and scaling can be switched to and from uniform scaling. 15.1.4.1. Translate Use this mode if you want to just move all the selected points to a new location. Move them just like you would an object. Press and hold the left mouse button and move the mouse. Hotkey : T 15.1.4.2. Scale Use this mode to move the points in such a way that it would represent scaling the points relative to the whole patch. When you move the mouse, after pressing and holding the left mouse button, the points will be scaled accordingly. Hotkey: S User Manual Page 39 MoRay V1.2 __________________________________________________________________ 15.1.4.3. Local Scale If you want to scale the points in relation to each other, i.e. want to get them closer together or further apart, you would use this mode. MORAY calculates the center of gravity of all selected points and scales relative to this point. Hotkey : L (after pressing S) 15.1.4.4. Uniform If you press the UNIFORM button then scaling will be uniform, i.e. MORAY will scale the selected points equally in all three dimensions. Hotkey : U (toggle) 15.1.4.5. Rotate If you want to rotate the points about the origin select use this mode. Again, press and hold the left mouse button and move the cursor in a circular path around the origin. Hotkey : R 15.1.4.6. Local Rotate If you want to rotate the points in relation to each other, i.e. about their center, use this mode. MORAY calculates the center of gravity of all selected points and rotates the points around this point, according to the movement of the cursor. Hotkey : L (after pressing R) 15.2. The Sweep Editor The three sweep types (rotational, translational, conical) all have the same editor. Sweeps consists of a number of curved line segments, forming a closed outline. For a translational sweep, this outline is swept along a straight line from Z=0 to Z=1. For a conical sweep the outline is also swept from Z=0 to Z=1, but is also shrunk to a point at the same time. For a rotational sweep the outline is rotated about the Z-axis. The editing screen can be panned and zoomed like the views on the main menu. User Manual Page 40 MoRay V1.2 __________________________________________________________________ The editor starts out with four segments, arranged in a square. At each end of a segment is a point with two handles (a knot). These handles determine at what angle the curves leave the knot. To move the handles, move the cursor over a handle, press and hold the left mouse button and move the handles about. The handles only rotate about the position of the knot, i.e. where the two curve segments meet. Normally the two handles are locked in relation to each other. To move only one of them, press and hold the Shift key before pressing the mouse button. 15.2.1. Curve divisions The divisions slider determines how many times the line segments are subdivided. For editing, this setting only influences the display on the screen, but once you leave the editor, it determines how fine the wire frame will be displayed. This of course directly influences the amount of memory the object requires and how fast it can be redrawn. The divisions setting has no influence on the number of divisions used for exporting. 15.2.2. Moving a knot To move a knot, move the cursor over the knot position, press and hold the left mouse button and drag the knot around. The attached curve segments will move along with the knot. When you have placed the knot correctly, let go of the mouse button. 15.2.3. Smoothing a knot In order for a sweep to be continuous across a knot, the handles need to be at the same angle or 180 degrees apart. To make the handles of a knot form a straight line you can use the SAME ANGLE button. Click on it, then move the cursor over the knot in question and click again. The handles will be set to the same angle and the sweep will not have a visible edge there. 15.2.4. Adding a knot To add a knot, click on the INSERT KNOT button. Then move the cursor onto the curve at the position where you wish to insert the knot. Click the mouse. A knot will be inserted there, in such a way as not to create an edge. You can then move or edit this knot. User Manual Page 41 MoRay V1.2 __________________________________________________________________ 15.2.5. Deleting a knot To delete a knot, click on the DELETE KNOT button, move the cursor over the knot you wish to delete and click the mouse. The knot will be removed and the knots on either side of the deleted knot will be joined. You can delete all knots except three, since you cannot make a useful outline with two segments. 15.2.6. Entering values You can also directly enter the values for the last selected knot. Simply click on the corresponding button and enter the new value. 15.2.7. Exporting to a RAW file You can export sweeps to a file in raw format. This will allow you to create sweeps that you can use with other programs that can read raw files. Raw files are normal ASCII text-files that contain data that define triangles. There are nine numbers per line, three sets of XYZ coordinates. If you are using POV 1.0 this might be of interest to you in speeding up the rendering. POV 2.0 will include code that optimizes composites made of triangles, but POV 1.0 does not do this. However, there is a program called RAW2POV.EXE by Steve Anger that creates POV 1.0 files from Raw files, that are tightly bounded and will speed up rendering tremendously. RAW2POV.EXE can be found on CompuServe (GO GRAPHDEV, LIB 8) or on most BBS that have POV. User Manual Page 42 MoRay V1.2 __________________________________________________________________ 16. Appendix A: Hotkeys 16.1. Main menu Alt-n where n is 1 to 9 sets the global visibility level to n. Alt-0 Sets the global visibility level to 10. Alt-B Selects the bounding box of the currently selected object. Alt-C Calls the Object Duplicator to make copies of the currently selected object. Alt-D Deletes the currently selected object. Alt-E Edit the currently selected object. Alt-F Calls the Files Menu. Alt-G Toggles the grid display. Alt-N Calls the Create menu. Alt-O Calls the Option Menu. Alt-P Selects the parent object of the currently selected object. Alt-S Toggles Grid Snap. Alt-T Selects the texture of the currently selected object. Alt-V Verifies that all the objects in the scene have a texture attached to them. Alt-X Quit the program. '-' Disable the view under the cursor. '+' Enable the view under the cursor. 'R' Set the transformation mode the rotation. 'S' Set the transformation mode to non-uniform scaling. 'T' Set the transformation mode to translation. 'U' Set the transformation mode to uniform scaling. 'L' If the selected object is a camera, make the translation transformations move the lookat point. 'P' If the selected object is a camera, make the translation transformations move the camera position. 16.2. Object Browser Alt-E Edit the currently selected object. Alt-D Delete the currently selected object. Alt-P Select the parent object of the currently selected object. 16.3. Bezier Editor Alt-S Toggle Grid Snap 'T' Select translation mode for moving the control points. 'S' Select non-uniform scaling mode for moving the control points. '' Select uniform scaling mode for moving the control points. 'R' Select rotation mode for moving the control points. 'L' Select local mode if either scaling or rotation mode is selected. 'U' Deselect the selected points. 'A' Select all points. User Manual Page 43 MoRay V1.2 __________________________________________________________________ '+' Disable the view under the cursor. '-' Enable the view under the cursor. 17. Appendix B: Tips 17.1. For all POV users: Use the visibility setting of objects to hide fine details when working with large scenes. This will improve redraw speed. Use the relative visibility setting on nested objects. This allows you to quickly hide large objects when working on the details of other objects. Since CSG objects are not displayed in their final form, you should make the subobjects of a difference have a visibility level that's higher than the base object, i.e. the first object of the CSG difference should have a lower visibility level than all the other sub-objects. This will avoid the cluttering of the display by all those shapes that cut away from the base shape. Design Group- or CSG-Objects with their origin at the global origin, then move the group. Don't group objects at their final location, move the group to the final location. This makes editing subobjects easier. Don't transform Group- or CSG-Objects until all their subobjects have been correctly placed. This helps you transform subobjects with the mouse, wtihout getting confused. Don't assign textures to subobjects of Group- or CSG-objects, unless they have a different texture from the rest of the Group object, since textures are inherited to subobjects. This lets you easily change the texture of the whole object later, without having to go to each subobject to change the texture. Group objects logically. If you make a body, group the eyes together. Then group the eyes, nose, mouth and skull together. Then group the upper body with the head and arms, etc. This lets you transform the entities better, e.g. turning the bodies head, involves only the changing of the rotation of the head. Eyes, mouth and skull will follow. Don't make the divisions of sweeps and beziers too high. During editing, set the divisions as high as you want, but when finished, set it to an acceptable level, where you can make out enough detail. This is so that your display doesn't get cluttered, the redraw speed stays high, and conventional memory is saved. User Manual Page 44 MoRay V1.2 __________________________________________________________________ If you use the snap to grid function, use it from the very beginning. This is because only the cursor is snapped, not the objects themselves. So if an object has an X translation of 0.05 and you set the X-Snap to 0.5, moving the object will change the X translation by 0.5 (in this example to 0.55). Use the '-' key to disable views if you only need one view to edit in. This will improve the redraw rate. When done use the '+' key to redraw the disabled views. If your bezier patches are coming out with holes or have other irregularities, you may have to edit the POV file and change the subdivision or flatness setting of the patches. 17.2. POV 1.0 users: Don't make groups too deeply nested. Since POV 1.0 cannot have bounds on nested objects, this will not allow you to make tightly bounded scenes. Tip: Check whether POV 2.0 isn't out yet. If you are using complex sweeps, you may find a vast improvement in rendering time if you export the sweeps (EXPORT RAW in the sweep editors) to the RAW file format and use Steve Angers RAW2POV utility (which can mostly be found where you found POV) to convert to a tightly bounded triangle patch. If you do this, then make sure that the sweeps are not part of a group, since RAW2POV creates a composite object, that you would need to transform by hand. 17.3. POV 2.0 users: Bound your subobjects, if they are complex. Although POV 2.0 has bounding slabs, you may find manual bounding better. User Manual Page 45 MoRay V1.2 __________________________________________________________________ 18. Appendix C: Definition of Shareware Shareware distribution gives users a chance to try software before buying it. If you try a Shareware program and continue using it, you are expected to register. Copyright laws apply to both Shareware and commercial software, and the copyright holder retains all rights, with a few specific exceptions as stated below. Shareware authors are accomplished programmers, just like commercial authors, and the programs are of comparable quality. (In both cases, there are good programs and bad ones!) The main difference is in the method of distribution. The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group. For example, some authors require written permission before a commercial disk vendor may copy their Shareware. Shareware is a distribution method, not a type of software. You should find software that suits your needs and pocketbook, whether it's commercial or Shareware. The Shareware system makes fitting your needs easier, because you can try before you buy. And because the overhead is low, prices are low also. Shareware has the ultimate money-back guarantee -- if you don't use the product, you don't pay for it. User Manual Page 46 MoRay V1.2 __________________________________________________________________ setting snap, 35 toggling, 30 19. Appendix D : Index Group Object, 18 adding subobjects, 25 creation, 20 editing, 25 removing subobjects, 25 B Bezier patch H creation, 19 editing, 36 Heightfield, 17 editor hotkeys, 42 editing, 25 general, 16 Hotkeys, 42 Browser, 22 hotkeys, 42 I C Imagemap display, 28 Camera, 18 editing, 29 Cone, 16 Installation, 10 Configuration, 10 Interaction CSG Object, 18 general, 15 adding subobjects, 26 changing order, 26 creation, 20 editing, 26 L operation, 26 removing subobjects, 26 Light source, 17 Cube, 15 editing, 25 Cylinder, 15 M E Main menu, 32 EMS hotkeys, 42 free display, 34 MDL page caching, 12 directory, 10 warning, 12 startup scene, 11 F O Files Object exporting, 36 assign a bounding box, 23 general, 34 assign a texture, 23 loading, 35 bounding box, 13 merging, 35 browser, 22 saving, 35 creation, 19 deleting all, 36 editing, 23 general, 13 G interaction, 30 name, 24 Grid primitives, 15 User Manual Page 47 MoRay V1.2 __________________________________________________________________ selection, 21 V texture, 14 transformations, 13 View visibility, 14; 24 disabling, 29 Options, 35 enabling, 29 registering, 35 enlarging, 30 grid display, 30 panning, 30 zooming, 30 P visibility, 24 changing an objects, 24 POV general, 14 creating file, 36 relative, 24 overwriting files, 12 setting global, 42 version, 10 W R Wood RAW display, 29 exporting to, 41 RAW2POV.EXE, 41 S Selecting objects, 21 the bounding box, 22 the parent, 22 the texture, 22 via Browser, 22 Sphere, 15 Sweep conical, 16 editing, 39 export to RAW, 41 rotational, 16 translational, 16 T Texture, 19 creation, 20 deleting, 28 display, 28 editing, 27 imagemap, 21 opaque, 20 pre-defined, 20 pre-defined list, 11 replacing, 28 wood, 21 Torus, 16; 24 editing, 24