Moray V2.0 An Interactive Wireframe Modeller for POV-Ray V2.2 or higher and Polyray V1.8 or higher January 1996 Copyright 1992-1996 by SoftTronics, Lutz + Kretzschmar GbR E-Mail 100023.2006@compuserve.com Address SoftTronics Lutz + Kretzschmar Fritz-Reuter-Str. 20b 81245 Munich Germany Manual MORAY V2.0 Page 2 ---------------------------------------------------------------------- 1 Introduction MORAY is a "shareware program" and is provided at no charge to the user for evaluation. You are encouraged to pass a shareware 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. All functions in this shareware version are enabled. This is so that you can test the complete functionality of the program. You are reminded that it is a shareware program on startup. Please read Appendix D (page 117) for a definition of shareware. You must register this program if you continue to use it after trying it out for a period of 30 days. Registration benefits: - you support the further development of MORAY. - your suggestions are given a higher priority, and you get to see them earlier. - you get special update/upgrade conditions. 1.1 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." 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. Manual MORAY V2.0 Page 3 ---------------------------------------------------------------------- 1.2 Registration If you find this program useful and find that you are using MORAY and continue to use MORAY after a reasonable trial period of 30 days, you must make a registration payment of US$64 or DM 100 to Lutz + Kretzschmar. This 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. To register please read the file REGISTER.INS for instructions. 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 would really appreciate being advised so that the distributor can be kept up-to-date with the latest version of MORAY. 1.3 Contacting the authors 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) there. MORAY is available from library 13 as MORAY.ZIP. The newsgroup comp.graphics.rendering.raytracing is also frequented by many raytracing enthusiasts. MORAY can be downloaded via ftp from ftp.povray.org in the directory /pub/povray/modellers/moray in the file MORAY20.ZIP. Please see the file SUPPORT.DOC that came with this package for ways of reaching the authors. Manual MORAY V2.0 Page 4 ---------------------------------------------------------------------- 1.4 Credits I would like to thank all the beta testers that helped make this program what it is. You know who you are. Thank you all for your valuable input and support. Special thanks to Andreas Lagotzki, who wrote the German manual and found numerous bugs in the process. Thanks to Steve Perrigo for his extensive editing of the documentation, making this manual much more readable and understandable. Thanks to Thomas Baier for providing code for the blob evaluation and for allowing me to include his two shareware utilities, 3DTO3D and POV2MDL. Please support him by registering these utilities if you use them. Thanks to Xander Enzmann for his support and code for interfacing with Polyray. Thanks to the POV-Team for providing such a high-quality raytracer for free. Keep up the good work. Thanks to Matt Drury, sysop of the Graphics Developers forum on CompuServe for his assistance during the beta test. Manual MORAY V2.0 Page 5 ---------------------------------------------------------------------- 2 Table of Contents 1 Introduction .......................................................2 1.1 Disclaimer agreement ...........................................2 1.2 Registration ...................................................3 1.3 Contacting the authors .........................................3 1.4 Credits ........................................................4 2 Table of Contents ..................................................5 3 Installation ......................................................11 4 Tutorials Section .................................................13 4.1 Basic Interaction with MORAY ..................................13 4.1.1 Starting MORAY .............................................13 4.1.2 The View Environment .......................................13 4.1.3 Loading A Scene ............................................14 4.1.4 Panning A View .............................................14 4.1.5 Zooming A View .............................................15 4.1.6 Selecting Objects ..........................................15 4.1.7 Editing Objects ............................................15 4.1.8 Transforming Objects .......................................16 4.1.9 Saving A Scene .............................................17 4.1.10 The View Popup ............................................18 4.2 Creating Objects ..............................................19 4.3 Creating Textures .............................................19 4.3.1 Introduction ...............................................19 4.3.2 The Editor .................................................19 4.3.3 Pigment ....................................................20 4.3.4 Preview ....................................................22 4.3.5 Normal .....................................................23 4.3.6 Finish .....................................................23 4.3.7 Imagemaps ..................................................23 4.4 Create A Simple Scene .........................................24 4.4.1 The Sphere .................................................25 4.4.2 The Camera .................................................25 4.4.3 The Light ..................................................25 4.4.4 The Texture ................................................26 4.4.5 Assign the Texture .........................................26 4.4.6 Making a Pedestal and the Floor ............................27 4.4.7 Rendering ..................................................28 4.5 Editing Sweeps ................................................28 4.6 CSGs and Groups (Grouping Objects) ............................31 4.7 Importing RAW files ...........................................33 4.8 Logos with Heightfields .......................................34 4.9 Editing Bezier Patches ........................................35 4.9.1 A Flat Patch ...............................................36 4.9.2 The Editor .................................................36 4.9.3 A cylindrical patch ........................................37 4.9.4 A Funnel Shape .............................................37 4.9.5 Adding the Twist ...........................................38 4.10 Creating User-Defined Objects ................................38 4.11 Importing Blobs ..............................................39 4.12 Working With Spotlights ......................................40 4.13 The Object Browser ...........................................41 4.14 Copying Objects ..............................................43 Manual MORAY V2.0 Page 6 ---------------------------------------------------------------------- 4.15 Reference Objects ............................................45 4.16 Visibility Levels ............................................46 5 Reference Section .................................................48 5.1 Main Menu .....................................................48 5.1.1 Object Name (Name) .........................................48 5.1.2 Object Type (Type) .........................................48 5.1.3 Scaling Mode (SCL) .........................................48 5.1.4 Uniform Scaling mode (USCL) ................................48 5.1.5 Clear Scale (CLR) ..........................................48 5.1.6 X, Y and Z Scale ...........................................48 5.1.7 Rotation Mode (ROTAT) ......................................49 5.1.8 Clear Rotation (CLR) .......................................49 5.1.9 X, Y and Z Rotation ........................................49 5.1.10 Translation Mode (TRANS) ..................................49 5.1.11 Clear Translation (CLR) ...................................49 5.1.12 X, Y and Z Translation ....................................49 5.1.13 Undo ......................................................49 5.1.14 Create ....................................................50 5.1.15 Copy ......................................................50 5.1.16 Delete ....................................................50 5.1.17 Select ....................................................50 5.1.18 Textures ..................................................50 5.1.19 Files .....................................................50 5.1.20 Options ...................................................50 5.1.21 Quit ......................................................50 5.2 View Popup ....................................................51 5.2.1 Disable ....................................................51 5.2.2 Disable/Enable Snap ........................................51 5.2.3 Zoom To Obj ................................................51 5.2.4 Zoom To Fit ................................................51 5.2.5 Pan ........................................................51 5.2.6 Zoom .......................................................51 5.2.7 Maximize/Minimize ..........................................51 5.2.8 Select .....................................................52 5.2.9 Redraw .....................................................52 5.2.10 View:type .................................................52 5.2.11 Lock/Unlock Grid ..........................................52 5.2.12 Disable/Enable Grid .......................................52 5.2.13 Insert Node ...............................................52 5.2.14 Delete Node ...............................................52 5.2.15 On/Off Curve ..............................................52 5.2.16 Unmark/Mark All ...........................................53 5.3 Create Submenu ................................................53 5.3.1 Cube .......................................................53 5.3.2 Sphere .....................................................53 5.3.3 Cylinder ...................................................53 5.3.4 Cone .......................................................53 5.3.5 Torus ......................................................53 5.3.6 Plane ......................................................53 5.3.7 Disc .......................................................53 5.3.8 Translational Sweep (TRANS SWEEP) ..........................54 5.3.9 Rotational Sweep (ROTAT SWEEP) .............................54 5.3.10 Tapering Sweep (TAPER SWEEP) ..............................54 5.3.11 Bezier Patch ..............................................54 5.3.12 Heightfield ...............................................54 5.3.13 Raw Triangles Object ......................................54 5.3.14 User-defined Object .......................................54 5.3.15 Blob (LOAD BLOB) ..........................................54 Manual MORAY V2.0 Page 7 ---------------------------------------------------------------------- 5.3.16 Pointlight ................................................55 5.3.17 Spotlight .................................................55 5.3.18 Arealight .................................................55 5.3.19 Group .....................................................55 5.3.20 CSG Object ................................................55 5.3.21 Camera ....................................................55 5.3.22 Texture ...................................................55 5.3.23 Done ......................................................55 5.4 Files Submenu .................................................55 5.4.1 Current File ...............................................55 5.4.2 New ........................................................55 5.4.3 Load .......................................................56 5.4.4 Save .......................................................56 5.4.5 Save As ....................................................56 5.4.6 Save Sel ...................................................56 5.4.7 Merge ......................................................56 5.4.8 Export .....................................................56 5.4.9 Render .....................................................57 5.4.10 DOS Screen ................................................57 5.4.11 DOS Shell .................................................57 5.4.12 User1, User2 and User3 ....................................57 5.4.13 Options ...................................................57 5.4.14 Done ......................................................57 5.5 File Selector .................................................57 5.5.1 OK and Cancel ..............................................58 5.5.2 Current directory ..........................................58 5.5.3 Frequent directories .......................................58 5.5.4 Filename ...................................................58 5.5.5 Files ......................................................58 5.5.6 Extensions .................................................58 5.5.7 Drives .....................................................58 5.5.8 Directories ................................................58 5.6 Options Submenu ...............................................59 5.6.1 Undo Buffer Size ...........................................59 5.6.2 Clear Undo Buffer ..........................................59 5.6.3 Visibility Level ...........................................59 5.6.4 Grid Snap ..................................................59 5.6.5 Renderer ...................................................59 5.6.6 Render Options .............................................60 5.6.7 Display ....................................................60 5.6.8 Verbose ....................................................60 5.6.9 Pause ......................................................60 5.6.10 Continue ..................................................60 5.6.11 Interruptible .............................................60 5.6.12 Resolution ................................................60 5.6.13 Antialias .................................................60 5.6.14 Jitter ....................................................61 5.6.15 Rays ......................................................61 5.6.16 Method ....................................................61 5.6.17 Max Level .................................................61 5.6.18 Register ..................................................61 5.6.19 About .....................................................61 5.6.20 Done ......................................................62 5.7 Copy Submenu ..................................................62 5.7.1 Scaling Factor Mode (SCL FCT) ..............................62 5.7.2 Scaling Offset Mode (SCL OFF) ..............................62 5.7.3 X, Y and Z Scaling Values ..................................62 5.7.4 Rotation Factor Mode (ROT FCT) .............................63 5.7.5 Rotation Offset Mode (ROT OFF) .............................63 Manual MORAY V2.0 Page 8 ---------------------------------------------------------------------- 5.7.6 X, Y and Z Rotation Values .................................63 5.7.7 Translation Factor Mode (XLAT FCT) .........................63 5.7.8 Translation Offset Mode (XLAT OFF) .........................64 5.7.9 X, Y and Z Translation Values ..............................64 5.7.10 Orbiting ..................................................64 5.7.11 X, Y and Z Orbit Values ...................................65 5.7.12 Attach ....................................................65 5.7.13 Copies ....................................................65 5.7.14 Reference .................................................65 5.7.15 OK ........................................................65 5.7.16 Cancel ....................................................65 5.8 Object Menus ..................................................65 5.8.1 Common Editing Menu ........................................66 5.8.2 Cylinder Menu ..............................................68 5.8.3 Cone Menu ..................................................68 5.8.4 Torus Menu .................................................68 5.8.5 Disc Menu ..................................................69 5.8.6 Sweep Menus ................................................69 5.8.7 Bezier Patch Menu ..........................................69 5.8.8 Heightfield Menu ...........................................69 5.8.9 RAW Triangles ..............................................70 5.8.10 Blob Menu .................................................71 5.8.11 Pointlight Menu ...........................................72 5.8.12 Spotlight Menu ............................................72 5.8.13 Arealight Menu ............................................73 5.8.14 Group Menu ................................................74 5.8.15 CSG Menu ..................................................75 5.8.16 Camera Menu ...............................................75 5.9 Texture Editor ................................................76 5.9.1 Create Texture (CREATE) ....................................76 5.9.2 Import A Texture Definition (GET) ..........................76 5.9.3 Delete Texture (DELETE) ....................................76 5.9.4 Delete Unused Textures (DEL UNUSED) ........................76 5.9.5 Copy A Texture (COPY) ......................................77 5.9.6 Exit Texture Editor (DONE) .................................77 5.9.7 List Of Textures In Scene ..................................77 5.9.8 Preview Display ............................................77 5.9.9 Make Preview (PREVIEW) .....................................77 5.9.10 Object For Preview (OBJECT) ...............................77 5.9.11 Background For Preview (BACKGND) ..........................77 5.9.12 Texture Type (TYPE) .......................................77 5.9.13 Rename A Texture Layer (RENAME) ...........................78 5.9.14 Add A Layer (ADD LAYER) ...................................78 5.9.15 Delete A Layer (DEL LAYER) ................................78 5.9.16 Reorder Layers (MOVE UP) ..................................78 5.9.17 List Of Layers (AVAILABLE LAYERS) .........................78 5.9.18 Pigment Buttons ...........................................78 5.9.19 Normal Buttons ............................................83 5.9.20 Finish Buttons ............................................85 5.10 Bezier Patch Editor ..........................................86 5.10.1 X-, Y- and Z-Mirror .......................................86 5.10.2 Snapping Points (SNAP POINTS) .............................86 5.10.3 Marked Point Number (MARKED) ..............................86 5.10.4 Mark All ..................................................86 5.10.5 Unmark All ................................................87 5.10.6 Toggle Marked .............................................87 5.10.7 Scaling Mode (SCL) ........................................87 5.10.8 Uniform Scaling Mode (USCL) ...............................87 5.10.9 Local Scaling Modes (LOCAL) ...............................87 Manual MORAY V2.0 Page 9 ---------------------------------------------------------------------- 5.10.10 Rotation Mode (ROTATE) ...................................87 5.10.11 Local Rotation Mode (LCOAL) ..............................87 5.10.12 Translation Mode (TRANSLATE) .............................87 5.10.13 Divisions Slider .........................................87 5.10.14 Show Mesh ................................................88 5.10.15 Show Control Mesh (SHOW CTRL MESH) .......................88 5.10.16 Continuous updates (CONT. UPDATE) ........................88 5.10.17 Done .....................................................88 5.11 Sweep Editor .................................................88 5.11.1 X- and Y-Mirror ...........................................88 5.11.2 Insert Node ...............................................89 5.11.3 Delete Node ...............................................89 5.11.4 Snap Nodes ................................................89 5.11.5 Marked Node Number ........................................89 5.11.6 Mark All ..................................................89 5.11.7 Unmark All ................................................89 5.11.8 Toggle Marked .............................................89 5.11.9 On/Off Curve ..............................................89 5.11.10 Scaling Mode (SCL) .......................................89 5.11.11 Uniform Scaling Mode (USCL) ..............................90 5.11.12 Local Scaling Modes (LOCAL) ..............................90 5.11.13 Rotation Mode (ROTATE) ...................................90 5.11.14 Local Rotation Mode (LOCAL) ..............................90 5.11.15 Translation Mode (TRANSLATE) .............................90 5.11.16 Divisions Slider .........................................90 5.11.17 Top Z Coordinate (TOP Z) .................................90 5.11.18 Bottom Z Coordinate (BOTTOM Z) ...........................90 5.11.19 Sweep Type ...............................................90 5.11.20 Importing a Glyph (IMPORT) ...............................91 5.11.21 Done .....................................................91 5.12 Object Browser ...............................................91 5.12.1 Main View .................................................91 5.12.2 Collapse All ..............................................91 5.12.3 Expand All ................................................92 5.12.4 Collapse Sub ..............................................92 5.12.5 Expand Sub ................................................92 5.12.6 Larger Font ...............................................92 5.12.7 Smaller Font ..............................................92 5.12.8 Zoom In ...................................................92 5.12.9 Zoom Out ..................................................92 5.13 Command-line options .........................................92 5.14 User-defined objects .........................................93 5.14.1 UDO File Format ...........................................93 5.14.2 Example UDO file ..........................................94 5.14.3 Converting RAW to UDO with the 3Dto3D Utility .............95 6 New Features in V2.0 ..............................................96 6.1 Interface .....................................................96 6.2 Objects .......................................................97 6.3 Textures ......................................................98 6.4 Browser .......................................................99 6.5 Miscellaneous .................................................99 6.6 Rendering ....................................................100 6.7 Exporting ....................................................100 7 Configuration ....................................................101 7.1 MORAY.INI Settings ...........................................101 7.1.1 The [CONFIG] section ......................................101 7.1.2 The [FILEOPEN] section ....................................105 Manual MORAY V2.0 Page 10 ---------------------------------------------------------------------- 7.1.3 The [TEXTURE EDITOR] section ..............................106 7.1.4 The [OPTIONS] section .....................................106 7.1.5 The [POV DEFFILE] section .................................108 7.1.6 The [POLYRAY INIFILE] section .............................108 7.2 Objects in the Texture Editor Preview ........................109 7.3 The POV2MDL Utility ..........................................109 7.4 VESA Drivers .................................................109 8 Appendix A: Hotkeys ..............................................111 8.1 Main Menu ....................................................111 8.2 Files Submenu ................................................112 8.3 Object Browser ...............................................112 8.4 Edit Menu for Bezier Patches .................................113 8.5 Texture Editor ...............................................113 9 Appendix B: Polyray ..............................................114 9.1 Texturing ....................................................114 9.2 Render Region ................................................114 10 Appendix C: Frequently Asked Questions ..........................115 11 Appendix D: Shareware ...........................................117 12 Appendix E: Index ...............................................118 Manual MORAY V2.0 Page 11 ---------------------------------------------------------------------- 3 Installation Installing the program is simple. Depending on where and how you got the program, you will have a ZIP file containing the program. You need to unzip this file to a directory of your choice. It is recommended that you create a new directory for MORAY and not use an existing one. For example, if you are installing to drive C:, do the following from the DOS prompt (note that you do only type the commands after the end of the prompt '>') : C:\> md moray C:\> cd moray C:\MORAY> copy a:moray20.zip C:\MORAY> pkunzip -d moray20.zip This will create a couple of files and sub-directories in the MORAY directory. Basically, MORAY is now installed, but you need to edit some files and set certain parameters in MORAY.INI, so that MORAY knows how to call POV-Ray and/or Polyray. In the sub-directory POVSCN, edit the file POVTRACE.BAT and edit the line that calls POVRAY.EXE to include the whole path to the executable. In the sub-directory POLYSCN, edit the file PITRACE.BAT and edit the line that calls POLYRAY.EXE to include the whole path to the executable. Edit MORAY.INI in the main directory and make the following changes: - If you have a CD-ROM drive, search for the SkipDrives variable in the first section [CONFIG] and add the drive letter of your CD-ROM to the AB already there. E.g. if your CD-ROM is drive E, make sure that it says ABE after SkipDrives. - If your graphics card can do higher resolutions than 640x480 in 256 colors, you can set the GraphicsMode variable to the resolution you want to use. Note that you may want to leave this as it is and use the -G command-line parameter first (see page 92), to find out whether MORAY can use the graphics mode that you want. If MORAY can use it you can change it here in the INI later. Remember that Alt-X can be used to exit MORAY if the screen comes up garbled and you can't use the mouse. - Search for the section [POV DEFFILE], near the end of the INI file. This is where you can specify the switches that POV-Ray should use on your system. Manual MORAY V2.0 Page 12 ---------------------------------------------------------------------- - Search for the section [POLYRAY INIFILE], near the end of the INI file. This is where you can specify the switches that POV-Ray should use on your system. Manual MORAY V2.0 Page 13 ---------------------------------------------------------------------- 4 Tutorials Section The following Tutorials will introduce you to the most important features of MORAY V2.0. Each tutorial is an entity in itself, explaining a certain feature. So feel free to just jump into any tutorial to get to know a feature. Do start each Tutorial from the beginning, though, since your screen needs to be in the state that the text assumes. Most Tutorials start off with MORAY running and ask you to load a scene. This is covered in the first Tutorial, Basic Interaction, so you should definitely do this one before doing any of the others. V1.5x users: even though you are familiar with a lot of MORAY, you should skim over the first tutorial and read about what's new in V2.0. Also, check the chapter in the reference manual New Features in V2.0 (page 96). 4.1 Basic Interaction with MORAY 4.1.1 Starting MORAY To start MORAY you change to the directory in which MORAY is installed and simply enter MORAY from the DOS prompt. MORAY will then start up, using the graphics mode that you have defined in the INI file (see Configuration, page 101). You can also start MORAY in a certain graphics mode or with a certain scene file (see Command-line options, page 92). If you start MORAY with no arguments, MORAY will start with a minimum scene containing one pointlight and one camera. 4.1.2 The View Environment Once MORAY has started, you will see the main screen. This screen contains four views into your scene and two menu areas, one below the views and one to the right of the views. The default arrangement of the views is to display three 2D views into the scene and one perspective 3D view. The 2D views represent the view in the direction of the 3 axes, X, Y and Z. the 3D view represents the view from the active camera defined in the scene. Each view is named. The "SIDE" view is looking along the scene's X-axis, the "FRONT" view is looking along the Y-axis, and the "TOP" view is looking along the Z-axis. The name of the 3D view comes from the name of the active camera, who's position and attributes define the view. Manual MORAY V2.0 Page 14 ---------------------------------------------------------------------- The views can be configured to suit your needs (see View Popup, page 51). The type of view is displayed in the upper left corner of each view. The Main Menu is to the right of the views. It also shows the transformations of the currently selected object, as well as the current transformation mode (more on that later). Below the transformations are the menu buttons that give you access to the fundamental MORAY functions. The Editing Menu is at the bottom of the screen, below the views. The Editing Menu displays attributes for the currently selected object. If no object is selected, it is empty. In the lower right corner of the screen you can see six buttons. The first three are indicators of which axes are locked and which are free (more on that later). The other three are a memory display, and indicators for how full the vertex and edge list are. The first number is the absolute number of vertices (or edges), the second number is a percentage. The percentage should never go over 100, otherwise the wireframe will be incorrect. 4.1.3 Loading A Scene Let's load a scene so that we can get to know the basics of interacting with the views. Click on the FILES button in the Main Menu. The Main Menu now disappears and is replaced by the Files Submenu. In the Files Submenu, click on the LOAD button (or press F3). This will pop up the File Selector. Navigate to the MDL subdirectory and double click on TUTOR01.MDL. This will load a simple scene file with a camera, a point light, cube, a cylinder and a sphere. Now either click on the DONE button at the bottom of the Files Submenu or click the right mouse button, while the mouse cursor is over the Files Submenu. This gets us back to the Main Menu. Now let's see how we can move the area displayed in the views and the objects themselves in the scene. 4.1.4 Panning A View You'll notice that in the TOP view only the cylinder is visible. The remaining objects are off to the top and left. To bring the entire scene into view, press the CTRL key, and keep it depressed. Then move the mouse near the cylinder over the TOP view, click and hold the left mouse button and drag the mouse towards the bottom and right. The view will pan with the mouse movements. Manual MORAY V2.0 Page 15 ---------------------------------------------------------------------- 4.1.5 Zooming A View You will notice that you can't get the whole scene into the view since it is wider than the current view. What we need to do is to zoom the view out. To do this, move the mouse over the middle of the view, press and hold the ALT key, click and hold the left mouse button and slowly move the mouse away and towards you. The scene is zoomed in and out, according to your mouse movements. Another way of zooming into a view is to define a rectangle that you want to fill the view with. To do this, move the mouse to one corner of the rectangle, press and hold ALT and SHIFT, then click and hold the left mouse button, drag the mouse to the diagonally opposite corner of the rectangle of interest and release everything. The view will then be zoomed so that the view will fill this rectangle. You can also use the Alt-Z hotkey to zoom the view in such a way that all objects fit inside the view. Simply move the mouse cursor over the view you wish to zoom in this way and press Alt-Z. Do this now with the TOP view. 4.1.6 Selecting Objects OK, now let's start working with objects. To do this we need to first select an object. MORAY identifies the selected object by drawing it in yellow. The easiest way of selecting an object is to move the mouse cursor close to an edge that belongs to the object we're interested in and dragging a rectangle over that edge, while holding down the SHIFT key. So, move the cursor close to a line belonging to the cylinder, press and hold the SHIFT key, click and hold the left mouse button and drag the mouse until the rectangle covers some of this edge. Then release everything. The cylinder should become the selected object. It will turn yellow to indicate this. The Editing Menu at the bottom of the screen will be replaced by the Editing Menu for the cylinder. 4.1.7 Editing Objects The Editing Menu at the bottom of the screen shows you all the information associated with the currently selected object. Some buttons are there for all objects, like the NAME of the object and the NOSHADOW flag. Some buttons are specific to certain objects and only appear when an object of this type has been selected. For example the Cylinder adds the OPEN button. This allows you to create an open cylinder. Using the technique described, select the cube. You'll notice that the OPEN buttons have disappeared. This is because the OPEN buttons make no sense when a cube is selected. Manual MORAY V2.0 Page 16 ---------------------------------------------------------------------- Click on the NAME button. This will pop up a line editor (this is a pop-up box that allows you to enter a line of text), containing 'ACube', the name of the object. You can now change the name with the keyboard. If you want to edit the existing name, make sure that the first key you press is not a letter, but a navigation key like an arrow key, DEL, HOME or END. So, change the name to 'MyCube' by pressing DEL twice and typing 'My'. Then press ENTER or click on the left mouse button to confirm the change. As an alternative, you can just type the new name for the object and it will replace the prior name. Objects can be renamed at any time. Names can be quite descriptive. They can include upper and lower case letters and can include spaces (these are replaced by underscores when exporting). Names can be up to 15 characters long, including spaces. For example, "Big Blue Box" could be a valid object name and would be much more recognizable than "BBB". 4.1.8 Transforming Objects Now let's take a look at how to move objects about, scale them and rotate them. You'll notice at the top of the Main Menu, below the buttons that display the name and the type of the currently selected object, that there are menus for the three modes of transformations. These are the three modes of transformation that can be applied to an object. They are applied to the object in the same order that they appear in the menu: first scaling, then rotation, then translation. You will also notice that at the top of each of these three transformation mode menus are two buttons (or three in the case of the scale group). The Scale mode control buttons are SCL, USCL, and CLR. If you depress the SCL button (or press "S" on the keyboard) the scaling of the object will apply only to the axes you scale along. Try this. The SCL transformation mode is used to stretch an object or compress it along one or two axes. To apply a uniform scale press the USCL button (or press "U" on the keyboard). The uniform scale mode is used to grow or shrink an entire object while retaining its basic form. Try this now. The CLR button rescales the selected object to one unit in each direction. The Rotate mode buttons are ROTATE and CLR. The ROTATE button enables the rotate mode. The CLR button resets the rotation to zero on all axes. The Translate mode buttons are TRANS and CLR. The TRANS button enables translation mode. The CLR button resets the translation to zero on all axes, placing the object back at the origin. Manual MORAY V2.0 Page 17 ---------------------------------------------------------------------- The active transformation mode will be displayed as a depressed button. Currently this should be the TRANS button, meaning that the selected object is ready to be translated by moving it with the mouse. Note that you can use the keyboard to change any of the nine transformation parameters, regardless of the current transformation mode. If the TRANS button is not depressed, click on it. Select the cylinder and then move the cursor over the cylinder in the TOP view, click and hold the left mouse button and drag the mouse. The cylinder will follow the mouse movements. When you've moved the cylinder to where you'd like it, release the button. Let's try rotating the cylinder. Since the currently active transformation mode is TRANS we need to set this to ROTAT. You can do this by clicking on ROTAT or pressing the 'R' key on the keyboard ('T' activates translation, 'S' is for scaling). In the FRONT view move the cursor over the cylinder, off to one side (doesn't matter which side). Click and hold the left mouse button and move the mouse cursor in a circular path around the center of the cylinder. The cylinder will rotate to follow the mouse. Note that the cylinder always rotates around its own origin. All objects in MORAY behave like this. Release the mouse button at anytime to keep the cylinder in that position. You will see that the three buttons under the active transformation mode are updated once you release the mouse. These buttons are not only for display. Click on the first button in the ROTAT group. You will see a cursor appear in this field and you can enter a number. Enter '0' and press TAB. This sets the X rotation to zero and activates the next field, which is the Y-rotation. Enter '0' again and press TAB. The Z field becomes active. Again enter '0' and now press ENTER. This finishes your numerical input. Objects can be transformed with precision accuracy using direct numerical input. You can now try scaling the cylinder using the same techniques used above to translate and rotate it. 4.1.9 Saving A Scene To save a scene, go into the Files Submenu and click on SAVE. If you previously loaded a file, MORAY will overwrite the file on your harddisk, but will create a backup of the old version. To save it under another name use the SAVE AS button. File names should consist of no more than eight characters. MORAY will add the ".MDL" extension if you leave it off. If you are working on a scene, you can press F2 from the Main Menu at any time without going into the Files Submenu to save your work. Manual MORAY V2.0 Page 18 ---------------------------------------------------------------------- 4.1.10 The View Popup The views have a number of features that can be turned on and off, like the grid for example. To allow you to use these features each view has a Popup (menu) that you can invoke by clicking the right mouse button while the mouse cursor is over it. Let's turn the grid off in the TOP view. Move the cursor into the TOP view and click the right mouse button. You will see a DISABLE GRID button at the bottom of the View Popup. Click on this button. The grid disappears. Now do another right click and notice that the button at the bottom now reads ENABLE GRID. Click this to re-enable the grid. Another useful function is the LOCK GRID function. Zoom the top view so that the distance between the grid lines is 1 unit. Now right click and click on LOCK GRID. Now zoom out. You'll notice that the grid lines remain at their current spacing and are not automatically adjusted to suit the zoom level. You can also invoke one-shot mouse functions (pan, zoom and select) from here. Once you've clicked on one of these three, the View Popup will disappear and the next time you attempt to drag something in the view, the view will execute the function associated with the button you clicked on. So, click right, then click on PAN. The View Popup disappears. Now click and hold the left mouse button and move the mouse. The view will be panned, as if you'd pressed CTRL. When you let go of the mouse button, the behavior of the mouse is back to normal. If an object is selected you can zoom the view to this object by clicking on ZOOM TO OBJ. Another feature that the View Popup offers is the ability to change the view type. Do a right click over the TOP view. Now click on the VIEW:TOP button. The View Popup disappears and another one appears that contains at least three buttons (SIDE, FRONT, TOP) as well as any camera names. Clicking on one of these will change the view type. Click on the ACAMERA button. This will turn the view into a 3D view of the scene as seen by the camera 'ACamera'. Change it back to TOP view in the same way. You can also maximize one of the four views, making it use all available view space. Use the MAXIMIZE/MINIMIZE pair in the View Popup. Once you start making very large scenes the redraw time in each view will increase because of the overall complexity of the scene. You can speed up your editing by disabling views that are not needed at that time. This can be done by pressing DISABLE in the View Popup or by placing the mouse cursor over the view you want to disable and pressing the "-" key. To re- enable the view you must place the mouse cursor over the blank view and press the "+" key, since even the Popup is then disabled. Manual MORAY V2.0 Page 19 ---------------------------------------------------------------------- 4.2 Creating Objects Creating an object is quite simple, you click on CREATE in the Main Menu. The Main Menu is then replaced by a submenu with all the objects that MORAY can create. You click on the type of object you want. This pops up a line editor, prompting you for the name of the object. A default name is presented, which you can accept by simply left- clicking the mouse or pressing Enter. The name can also be edited as previously described. The Bezier Patch object is the only object that then displays another menu, requesting the shape type you want to create. For more details on the Bezier Editor, refer to tutorial on page 35. After creating an object (or objects) return to the Main Menu by pressing DONE at the bottom of the CREATE Submenu or by right-clicking while the mouse cursor is over the CREATE Submenu. 4.3 Creating Textures 4.3.1 Introduction MORAY offers a very powerful texture editor to aid you in creating all sorts of textures for POV-Ray. It is very intuitive to use and we will use as many of the basic functions as possible in this example. We will create a hexagon texture, a marble texture and an imagemap texture. Start up MORAY and load the scene TUTOR02A.MDL. Tutorial 1 explains how to load a scene file. 4.3.2 The Editor Click on the TEXTURES button in the Main Menu. This will invoke the Texture Editor, which will fill the whole screen. It is currently empty, since no texture is loaded for editing. Click on the CREATE button and type 'MyHexagon' when prompted for the name of the texture. Names can include upper and lower case letters as well as spaces. Texture names can be up to 25 characters in length. The screen now initializes and becomes full of controls to allow you to edit this texture. Manual MORAY V2.0 Page 20 ---------------------------------------------------------------------- There are three main regions on the screen, the first is the pigment, the second the normal and the third the finish section. This is the POV-Ray nomenclature for textures. PIGMENT defines the color, transparency and type of pigment of a texture. NORMAL defines whether the surface is bumpy and FINISH defines whether the object is shiny, matte, reflective etc. Please refer to the POV-Ray docs for more details. When you export to Polyray, MORAY matches the settings to Polyray equivalents. You'll notice that the texture name 'MyHexagon' can now be seen in the listbox at the right top part of the screen. This listbox contains a list of all the textures that are currently defined in your scene. The name also appears in the top left listbox. This listbox shows you the structure of the currently selected texture. For simple textures this listbox will never contain anything else. When you start creating layered textures, material maps or tiles, you will see more information in that listbox. 4.3.3 Pigment The frame labeled PIGMENT is where you specify the color, transparency and type of pigment that the texture should have. The first item in the frame is the TYPE combobox, which currently reads 'Solid Color'. Below this are two rectangles, one of which is not as tall as the other one. Both are currently black. The top one is the color of the pigment. The one below that displays the filter value in grayscale which represents the transparency of the pigment. Below this block are seven sliders and another two rectangles next to them. These two rectangles show you the color that the sliders currently affect. For the Solid pigment, the upper and lower pair of blocks are always the same. Click on the TYPE combobox (currently reading 'Solid Color') and you will see that all POV-Ray pigment types are available to choose from. Select Hexagon. The combobox closes and the display is changed a bit. There are now three new buttons (TURB, FREQ and PHASE). There are now three pairs of rectangles next to each other. The first of these is depressed, the other two are released (check the frames). Click on the middle color that is currently gray. This makes this second color the active color, i.e. now this button is depressed and its colors are the ones loaded into the sliders and the color box below. We can now use the sliders to change this color. Manual MORAY V2.0 Page 21 ---------------------------------------------------------------------- There is also a GET button. This allows you to "get" or place a predefined color into the current selection. Click on it now and choose 'MediumBlue' from the list. The Color Box and the middle top rectangle turn blue and the sliders move to the settings that define MediumBlue. Note that there is no link or connection to the MediumBlue color, only the RGB values have been imported. This means that if you now modify the color, it will have no impact on the MediumBlue color in the predefined color list. Click on the left color block, that is currently black. Then grab the RED slider and move it left and right. You will see the color in the left top block and the Color Box change between black and red. The HUE, SAT and LUM sliders also move. The equivalent color in the HSL color model is calculated in parallel and displayed in the sliders. Moving the HUE slider also updates the RGB sliders. Think of the HUE, SAT and LUM sliders as using a different color model as the RGB sliders. The colors of each model are converted to the other model, depending on which slider you are moving. Experiment to get a feel for the sliders. HUE changes the color, SAT the saturation (lower to get pale colors, higher for bright colors), LUM the luminance (lower for dark colors, higher for light colors). The last slider sets the FILTER component of the color. The two narrow rectangles in the color blocks show a grayscale representation of the filter value, where black is opaque and white is transparent. Below the sliders are nine input fields that allow you to transform the textures pigment, relative to the whole texture. Now let's make a marble texture. Click on the CREATE button and enter 'MyMarble' as the name of the texture. Use the TYPE combobox to make it a MARBLE pigment. There are three new buttons (TURB, FREQ and PHASE), a colormap and several new buttons near the GET button in the Pigment box. The colormap is showing the default colormap going from black at 0.0 to white at 1.0. Below the colormap is a narrow rectangle, which shows the filter component of the colormap (currently black, i.e. opaque). Starting below this are two arrows that go to a black and a white button. The black button is depressed, the white one released. This means that the black color is loaded into the sliders and moving the sliders changes the black entry. Try this by grabbing the blue slider and moving it left and right. You'll see the colormap change to reflect the movement. Set the sliders to 1.0, 0.8 and 0.5 for the red, green and blue components respectively. Manual MORAY V2.0 Page 22 ---------------------------------------------------------------------- More complex color gradations can be created by adding additional incremental steps to the colormap. New colors are added to the right of the currently selected color. Click on the leftmost color box and then click on the ADD button (two buttons above the GET button). You'll see a third color inserted halfway between the yellow and white entry, with an arrow pointing up into the colormap, positioned halfway between them. The color is automatically set to the color that would be present there. This means that adding a color does not change the colormap, until you move the sliders or retrieve a predefined color with the GET command. You will also see that the button of the added color is depressed and loaded into the sliders. Use the sliders to set the color to 0.8, 0.4 and 0.4 for RGB. Now we want this color to be positioned at 0.8 and not at 0.5 as it currently is. There are two ways to do this. If you know exactly where you want it, you can click on the button next to the COPY button and enter the exact position. Otherwise, you can move the mouse cursor over that arrow tip that extends from the colors button pair to the bottom of the colormap. Then click and hold the left mouse button and move the mouse left and right. The colormap changes to reflect how moving the position of the color affects the colormap. Release it when the arrow is at about 0.8. There are major markings every 0.1 units and minor every 0.05 units on the colormap, just above the arrow tips. Now click on the white button and change the colors to 0.5, 0.3 and 0.6 for RGB. Note that the arrows for the leftmost and rightmost buttons cannot be moved, they are fixed at 0 and 1 respectively. Note also that the ADD and DEL button are currently inactive (grayed). This is because the ADD button adds a color after the currently selected color and the DEL button deletes the currently selected color, but neither of these operations are currently allowed because we have selected the last color in the colormap. The colormap is used for all POV-Ray pigment types that require a colormap, like agate, onion, gradient, wood, marble, etc. MORAY also supports imagemaps, which we will create in a minute. First we will use the PREVIEW function to take a look at our marble texture. 4.3.4 Preview At the top of the screen in the middle is a large framed area, below which is a button labeled PREVIEW. Manual MORAY V2.0 Page 23 ---------------------------------------------------------------------- There are two comboboxes to the left of the preview area, labeled OBJECT and BACKGND. These two comboboxes can be used to specify what object is to be rendered with the texture and what background should be present. The background is useful when making reflective or refractive textures or textures with a filter value. You can specify that a floor, a backdrop or both be present. The floor will be checkered black and white and the wall will have black and white horizontal stripes. You can add your own objects to this combobox later (see Configuration, page 101). Set the Object to Sphere and the Background to None. Click on the PREVIEW button or press F9. MORAY will now call the active raytracer to render a simple scene using the texture we've just designed. MORAY will load the resulting file into the preview box when the raytracer returns. You'll notice that our marble doesn't look much like marble, but more like a gradient. This is because we haven't set turbulence. Click the button next to the TURB label and enter 1.0. Notice that other buttons now appear that allow you to adjust parameters related to turbulence (Omega, Octaves and Lambda). You can leave these values set to their defaults. Now press F9 (or click on PREVIEW). Much better. This is the state in TUTOR02B.MDL. 4.3.5 Normal The normal region works very similarly to what we've just learned about the pigment region. Simply experiment with the settings. It probably makes more sense to experiment with a solid color pigment, so that you can see the effect of the bumps without the color changes non-solid pigments create. The Bumpmap setting works very similarly to the Imagemap buttons. 4.3.6 Finish The finish region also works very similarly to what we've just learned about the pigment region. The sliders in the finish region correspond to the texture settings of POV-Ray. Refer to the POV-Ray manual for more information on the effects of different finish settings. 4.3.7 Imagemaps When using imagemaps, the color sliders are not needed since the colors come from a bitmap file. Enter the Texture Editor and create a new texture. Change the pigment type to Imagemap. You'll see the sliders disappear and several other buttons appear. Manual MORAY V2.0 Page 24 ---------------------------------------------------------------------- The first button allows you to specify the file that the imagemap should use. It is set to POVMAP.GIF by default. If you click on the FILE button, the File Selector will pop up allowing you to choose a file to use as a bitmap. Below this are three buttons that allow you to specify how the imagemap is projected, whether the imagemap should be tiled and whether it should be interpolated (smoothed). These are comboboxes that allow you to choose the options that POV-Ray offers, please refer to the POV-Ray documentation for more details. Imagemaps allow you to make certain colors transparent by specifying the imagemap color index and its filter value, or you can set the whole imagemap to use a certain filter value. The combobox below the FILTER label allows you to choose either NONE for no filter settings, ALL for setting all the filter settings at once and SINGLE LIST for setting single indexes to use filter values. Setting it to SINGLE LIST makes a couple of controls appear. There is a listbox which will display the list, there is an ADD button to allow you to add filter entry, there is a DEL button to delete a filter entry, there is the DEL ALL button that deletes all the filter entries in the list and there is a filter edit field where you modify the filter setting of the entry selected in the listbox. To add a filtered index, click on the ADD button. You will be prompted to enter the index value. The default value is always one higher than the last index you entered and starts off with one. After this you are prompted for the actual filter value. Once you have entered this, the entry is added to the listbox. If you want to change the filter value, click on the entry in the listbox to select it and then click on the edit field next to the FILTER label under the listbox. This allows you to enter the new filter value. 4.4 Create A Simple Scene Let's go through all the steps required to create a scene and render it. The scene consists simply of a marble sphere on a hexagon floor, lit by a spotlight. Press F3 and load the TUTOR02A.MDL file. (You can discard the changes you made in the last tutorial.) This is a completely empty scene, similar to what you'd get if you were to click on NEW in the Files Submenu. Manual MORAY V2.0 Page 25 ---------------------------------------------------------------------- 4.4.1 The Sphere Click on CREATE. The Main Menu is replaced by a submenu of all available primitives. Click on the SPHERE button. You are presented with a default name, which you can change or accept. Note that MORAY requires that every object has a unique name. The default that MORAY offers you is always unique. For the moment press Enter to accept the default name. The sphere is placed at the origin and is selected. Click the right button while the cursor is over the menu. This returns you to the Main Menu. Click on the bottom button of the translation block to change the Z-translation to 1. This will move the sphere up one unit so its lowermost point is tangential to the X-Y plane. 4.4.2 The Camera We need a camera to define how you want the scene to be rendered, so create one by clicking on CREATE and then CAMERA. You will see that the fourth view now shows a 3D view of the scene, with the sphere in the center of the view. You can load TUTOR02C.MDL at this point if you're not following along. The panning and zooming methods of the 2D views also work in the 3D view. However they are different in that they effect the actual scene you're creating. When you pan in the 3D view (Ctrl and left mouse button drag), you are rotating the lookat point of the camera around the camera position. When you zoom the 3D view (Alt and left mouse button drag), you are increasing and decreasing the field of view of the camera, i.e. going from telephoto to wide angle. Try this now by moving the mouse cursor over the middle of the 3D view, press and hold CTRL and click and hold the left mouse button and drag the mouse. The view will pan by rotating the cameras lookat around the cameras position. You can watch the camera in the 2D views. Release the buttons when the sphere is in the middle of the view. Try zooming in the 3D view in the same way. 4.4.3 The Light OK, now we still need a light source, so that our scene is lit. Click on CREATE and on SPOTLIGHT. Accept the default name. At the bottom of the screen you will see that the spotlight has added quite a number of new controls to the Editing Menu. Among them are sliders for the color of the light. Use the very bottom slider to set the lights intensity to about 0.80. You can use the three sliders above this to make colored lights. We won't do this now. Notice that the spotlight is positioned on the origin, which is not a good place for it. Get back to the Main Menu (right click while over the CREATE Submenu) and set translation mode (press 'T'). Manual MORAY V2.0 Page 26 ---------------------------------------------------------------------- Use the mouse or the transformation buttons to set the spotlights position to -10,0,10. Now we'll rotate the spotlight, which is currently facing straight down, to point at the sphere. We will also use the current SIDE view to look at what the spotlight is seeing. Right click while in the SIDE view. Select the VIEW:SIDE button and then click on the SPOTCAM001 button. This view will now show the scene from the perspective of the spotlight's point of view (or illumination). The view will be filled with two circles, but otherwise empty. This is because the spotlight is still pointing down. Select ROTATION mode (press 'R' or click on ROTAT) and use the FRONT view to rotate the spotlight so that it points towards the sphere. Watch the spotlight view, where the sphere will appear and when the sphere is in the middle of the inner circle stop rotating. If you cannot place it in the middle and it jumps between two positions, you may have SNAP on. In this case let go of all buttons, right click over the view and click on DISABLE SNAP. Then rotate a bit more until it's centered. Inside the outer circle that you can see in the spotlight view is where the light starts to shine. Inside the inner circle the light is at full brightness and falls off from there as it gets towards the outer circle. If you've been following along you should have the setup similar to that shown in TUTOR02D.MDL. You'll notice that the sphere is inside the inner ring. This means it will be fully illuminated. But the outer ring is too large. We want a spotlight with a much smaller edge area. We will decrease the outer ring radius. To do this click on the left arrow button next to the FALLOFF slider in the spotlight's Editing Menu at the bottom of the screen until the number in the slider reads 8.5. You'll notice the rings are closer together now. The view is always zoomed in such a way that the outer ring fills the view vertically, that's why the outer ring didn't get smaller, but the inner seemed to get bigger and the view was zoomed. 4.4.4 The Texture Use the knowledge you acquired in the Creating Textures Tutorial to create a marble texture for the sphere. Scale it by 0.5 in all axes in the Texture Editor. 4.4.5 Assign the Texture The sphere currently has no texture assigned to it. We will do this now. Manual MORAY V2.0 Page 27 ---------------------------------------------------------------------- First select the sphere. You'll notice that the Editing Menu at the bottom of the screen contains a couple of buttons on the left and a listbox at the left edge. This list contains the currently defined textures of this scene. Currently this is only 'MyMarble'. Above the listbox is an empty button. This button contains the name of the texture assigned to the selected object. Click on 'MyMarble' in the listbox. 'MyMarble' also appears in this button, indicating that the texture is now assigned to the object. 4.4.6 Making a Pedestal and the Floor Let's make a imagemapped pedestal and hexagon-patterned floor. Create a Cube. Scale it by 1.3, 1.3, 0.3 and translate it by -0.3 in Z. Now create a Plane and translate it by -0.6 in Z. Click on Textures to enter the Texture Editor, click on Create, enter 'MyHexagon' and press Enter. The texture has now been created, but it is not a hexagon texture yet, so click on the TYPE combobox in the Pigment block and select Hexagon. You'll see three color blocks appear above the color sliders. These represent the three colors of the hexagon texture. The leftmost color (currently black) is the one that is loaded into the sliders. Use the sliders to make it yellow (red and green sliders all the way to the right, blue to the left). Now click on the second color (currently gray). Move the red slider all the way to the right and the blue slider all the way to the left, making an orange. Finally click on the third color (currently white). Move the green and blue sliders all the way to the left, making a red. Make another texture called MyImagemap and change its type to Imagemap. Click on the FILE button and select the file PLASMA.GIF. Leave all other pigments settings except the transformations at their defaults. Change the X- and Y-Scaling to 2.0 and the X- and Y-translation to -1.0. Leave the Texture Editor and assign the MyImagemap texture to the cube (select the cube, click on MyImagemap in the texture list). You will see a wireframe representation of the texture appear. This can be selected and transformed as you need. Normally MORAY exports the texture in each objects coordinate space, i.e. relative to the objects origin. But you can also make MORAY export the texture in the objects parents coordinate space (or in world coordinates if it has no parent). To do this there is a button above the name of the texture in the object's Editing Menu, currently labeled LOCAL. Click on this button. It changes to GLOBAL and the imagemap becomes smaller. This is because the texture is applied to the cube after the 1.3 scaling of the cube. Try moving the Cube about. The texture stays where it is and is not influenced by how you move the cube. Undo the transformation to place the cube back at the center of the XY-plane. Change it back to LOCAL. Now the texture will remain attached to the cube if you move the cube. Manual MORAY V2.0 Page 28 ---------------------------------------------------------------------- Now assign the MyHexagon texture to the plane. You will again see a wireframe representation of the texture appear. Select the MyHexagon texture by shift-dragging a rectangle around part of the hexagon texture. It should turn bright- green. Set Uniform Scaling Mode (by pressing 'U' or clicking on USCL) and scale the texture down so that it fits inside the unit square on the plane (about 0.5). You'll notice the numbers in the hexagon texture. These represent the colors, the hexagon where the 1 is will be yellow, the 2 will be orange and the 3 will be red. Notice in the 3D-view that the object is a bit low. Move the mouse over the 3D-view, and Ctrl-Drag the mouse upwards until the pedestal is nicely visible in the view. We've just panned the lookat point of the camera. The current state can be found in TUTOR02E.MDL. 4.4.7 Rendering Our simple little scene is now complete. You should save it now by pressing F2. You can render it by pressing F9, or clicking on the RENDER button in the Files Submenu. You can also use Ctrl-F9 to just export the scene and render it from DOS (or Windows) by going into the current scene directory and typing GO. 4.5 Editing Sweeps MORAY allows you to create quite a number of different sweeps. You can create three basic types of sweeps: translational, tapering and rotational. The tapering sweeps are a special case of translational that taper to a single point at the origin. Each of these types can use 4 different types of curves to define their outline: Linear, Quadratic, Cubic and Glyph. The editor that allows you to define the outline of the sweep is the same for all sweep types and curve types. In this tutorial we'll create a translational and a rotational sweep. Start MORAY and create a translational sweep (click on CREATE, click on TRANS SWEEP, accept the default name). You'll see what looks like a cube appear on the screen. This is because a square is the default shape a translational sweep starts out as. You'll also notice that the Editing Menu of this object at the bottom of the screen has a EXTENDED EDIT button. This gets us to the actual sweep editor, so click on it now. The four views are now replaced by one 2D view showing a green square, which is the sweep. You can also see a new menu appear at the bottom of the screen. Manual MORAY V2.0 Page 29 ---------------------------------------------------------------------- At the four corners of the sweeps are little squares. These are the control points of the sweeps curves. You can use standard view procedures (see the Basic Interaction Tutorial) to pan, zoom, move points, select points and right click. So move the mouse over the lower right control point and move it to the right and down (click and hold the left mouse button, drag the mouse and release). Now select the two leftmost points of the sweep. They will turn yellow and the button beneath the MARKED label in the menu will read 2. This button always displays the number of selected points. Now you can move these points about. After trying this out, leave them roughly in the same position they were in. Click on the INSERT NODE button. You'll notice the cursor indicates that you are insert mode. Move the cursor over the middle of the top edge of the sweep and click. MORAY will insert a control point at the place where you clicked. You can move this point about to change the contour. Click on the DELETE NODE button. The cursor indicates that you are now in delete mode. Move the cursor over the newly inserted control point and click. The control point is removed and we're back to the four-sided figure. You can also delete more than 1 point at a time. To do this, select the points (Shift-drag) and then click on the DELETE NODES button. You will be asked to verify whether you really want to delete the marked points. Now click on the combobox that currently reads LINEAR. This box is used to change the type of spline curve used to interpolate between the control points. LINEAR means that each control point is connected to the next control point by a straight line. QUADRATIC means that each control point is connected to the next control point by a quadratic function. This means that there are edges at just about every control point on the curve. CUBIC means that each control point is connected to the previous and the next by a cubic function. This makes a very smooth curve with no edges anywhere along the curve. GLYPH is a curve type that uses three adjacent control points to make a bezier spline between them. It is also possible to define straight line segments. Click on the QUADRATIC option in the combobox. You'll see the shape has changed. Click on the CUBIC option. Again, the shape changes. It is now a very smooth shape. Manual MORAY V2.0 Page 30 ---------------------------------------------------------------------- Click on the GLYPH option. The shape now looks a bit like a drop. Notice that with the GLYPH type, the curve no longer goes through all the control points. However, it will always go through the first control point (this has technical reasons). You can use the subdivision slider to increase the detail with which the outline should be drawn. Set it to 10. This setting is also used when exporting to the raytracer. Note that this setting will increase the amount of memory that MORAY will need for the object as well as the amount of memory that the raytracer will need for the triangles. Let's take a closer look at the glyph sweep type, since this allows very flexible sweep design. One of the nice properties of the glyph sweep is that it can combine curved and linear pieces in one outline. To do this, each control point can be specified as lying on the curve or off the curve. If it lies on the curve, there will be an edge at that control point and the sweep outline will pass through the point. If the control point is specified as being off the curve, the outline is a curve between the previous and the next control point and the outline does not pass through the control point. If two adjacent control points are on the curve, they will be connected by a linear segment. Move the cursor over the control point at the right top part of the sweep and click the right mouse button. The View Popup has a item named ON CURVE. Click on it and the sweep now forms an edge at this control point and passes through it. Click the right mouse button again and the menu item in the Popup is now OFF CURVE. Click on this and the point is again off the curve and the sweep forms a curve at this point. You can also change the on/off state of more than one control point by first marking them and then clicking on the ON/OFF CURVE button in the menu or the View Popup. As you may have noticed there is one control point that cannot be taken off the curve. The curve will always pass through it. You can still make a circle-like shape. Click the right mouse button for the View Popup. Click on INSERT NODE, and click in the middle of the bottom horizontal edge. This inserts a control point at that position. Select this control point and the one to the left of that (in the lower left corner). Now select local rotation mode ('R' and then 'L' or click in the menu). Rotate the two points by 90 degrees clockwise, so that they form a vertical line. Now select translation mode and move them up and to the left, so that they form a straight line with the top left control point. This state is reflected in TUTOR03A.MDL. Manual MORAY V2.0 Page 31 ---------------------------------------------------------------------- 4.6 CSGs and Groups (Grouping Objects) This tutorial will familiarize you with how to create groups and CSG objects. Load TUTOR04A.MDL. This is the base assembly of a robot arm. We will build and assemble a bit more of the robot. First of all, the base of the unit is too high. We want a lower base. So select the 'Base' object. Scale it so that it is 0.4 in Z. Then translate it so that Z is also at 0.4. This will place the base at the origin. We would now like to move the arm holder assembly down onto the base. You could select each part and translate it down, but this is very tedious, so what we'll do is create a group, add all the parts and then translate the whole group. Create a group object and name it ArmHolder. This groups origin is now at the world origin. We could add the objects now, but we want the groups object to be at the center of the armholder assembly, so that scaling and translating it is easier. Translate the group object to 0, 0, 2.5. Note that you do not have a wireframe to go on, since the group contains no objects. Use the numerical block instead. Now click on ADD IN PLACE and in the Object Browser that appears, click left on the ArmHoldBaseL1 object and click right. This adds the object to the group. You will see this in the browser. Click left on ArmHoldBaseL2, click right, and repeat with ArmHoldBaseR1, ArmHoldBaseR2 and ArmPivot. Finally right click to stop adding objects to the group. We can't render this yet since not all objects have textures assigned to them. Specifically none of the objects we've just added to the arm holder are textured. All we need to do now is assign a texture to the group, though, since the objects in the group will simply inherit this texture. With the group selected, click on the BodyTxtr entry in the texture listbox on the lower left. Also select the Base object and assign the BodyTxtr to it. Press F2 to save the scene and F9 to take a look at the render. OK, not bad, but the center part of that holder is supposed to be chrome metal. To do this we simply select it (ArmPivot) and click on the Chrome_Look texture in the texture list box on the lower left. This overrides the texture that the ArmPivot object was inheriting from its parent object. Manual MORAY V2.0 Page 32 ---------------------------------------------------------------------- Translate the armholder down so that Z translation is set to 1.4, placing the assembly on the base. Let's make another group called 'Robot' and add in the armholder and the base. Click on Create, then Group, then Add In Place, then add in ArmHolder and Base. OK, we will now make an arm for the robot. We need to design the arm parts, so that their rotation axis goes through the origin, so that when you select a part and rotate it, it will not leave the robot. We don't need to see the robot body right now, so set its visibility to +6 and press Alt-4. Create a CSG object called UpperArm and a cylinder called UpperArmBase. Scale the cylinder to 0.4, 0.4, 2.0 and add it to the UpperArm CSG. Create a cube called ShoulderJoint and scale it to 0.5, 0.5, 0.5. Add it to the UpperArm group. Create a cylinder called ElbowJoint and scale it to 0.5, 0.5, 1.0, rotate it by -90 about the Y axis and translate it to - 0.5, 0, 2.0. Add it to the UpperArm group. Press Alt-6 to make the robot visible. Select the ArmHolder object and click on Add From Origin. This means that the object we're going to add will not be transformed to stay where it is, but instead will simply be inserted in the group. Select the UpperArm object and right click twice. The UpperArm object is now part of the ArmHolder object and thus also inherits its texture. This is OK, except for the UpperArm cylinder which we want chromed. Select the UpperArm object and set it to use the chrome texture. This state can be found in TUTOR04B.MDL. OK, press Alt-4 again to hide the robot. Create a cylinder called LowerArmBase and scale it 0.3, 0.3, 2.0. Create a cylinder called HandJoint, scale it 0.4, 0.4, 0.8, rotate it by -90 about Y and translate it to -0.4, 0.0, 2.0. Now create a CSG object called LowerArm and add in place the two cylinders that you just created. Now add the LowerArm CSG to the UpperArm CSG object, using the ADD FROM ORIGIN button. Translate the LowerArm object by 2.0 in Z. Select the LowerArmBase object and set its texture to use the chrome texture. Note that we can now rotate the arms about the X axis without the lower parts staying put or flying away. Select the UpperArm object and use the mouse in the SIDE view to rotate it by -60 degrees (this will be about the X-axis). Select the LowerArm object and rotate it by -45 about X in the SIDE view. Press F2 and render the scene. TUTOR04C.MDL reflects this state. Manual MORAY V2.0 Page 33 ---------------------------------------------------------------------- 4.7 Importing RAW files MORAY can handle reasonably sized RAW files directly by importing them. It is recommended that you use the 3DTO3D utility (see page 109) to convert RAW files to UDO (User- defined object) files instead, since these are much friendlier on memory usage. RAW files use a large amount of memory. Start MORAY and click on CREATE, then RAW TRIANGLES, name it ChessPieces and return to the Main Menu with a right click. On the Editing Menu of the RAW object, click on FILE. This brings up the File Selector. Select the CHESS.RAW file in the MDL directory. Now click on READ. MORAY now reads the file and creates a wireframe. Note that the feature angle is set to 15 degrees. This means that only triangles that form an angle of more than 15 degrees to each other are actually used in the wireframe. This has no effect on the export, it simply attempts to keep the line count low, so that redraws don't get too slow. The RAW file actually would create about 1100 lines, which you can see by setting the angle to 0. This does not eliminate any edges. At 15 degrees, the line count has been reduced to 560. At 60 degrees it has been further reduced to 280. Click on the 15 and enter 60. MORAY now recalculates the wireframe and you can see that many lines have been removed and the wireframe is very rough. For huge RAW files that you just want to get placed, this setting is fine, though. Since MORAY needs to keep all the triangles in memory in order to export them to the scene later when you want to render it, this is quite an ineffective way of working with RAW files. However, MORAY supports user-defined objects that merely consist of a wireframe definition and these do not use as much memory. Let's create a UDO file containing the definition of the RAW file currently loaded. Click on the WRITE UDO button and enter a name. MORAY now writes a UDO file and an INC file for the current raytracer. Note that if you switch raytracers later, you will need to repeat this procedure. We will now delete this object, and create a User-Defined object, using the UDO file we just created. Press Alt-D to delete the object. Click on CREATE and the USER DEFINED. Select the file you just stored. The wireframe will be exactly the same as the RAW file was, but it will not be using as much memory. Manual MORAY V2.0 Page 34 ---------------------------------------------------------------------- 4.8 Logos with Heightfields MORAY can handle heightfields while showing the actual image structure in a mesh. In addition, the ADJ SCL button resets the heightfield to the X,Y aspect ratio of the original bitmap. The original bitmap's x,y pixel size appears below these buttons for ready reference. This allows accurate placement of heightfields. Let's make a heightfield of a MORAY-Logo. Start MORAY and click on CREATE and then HEIGHTFIELD and enter 'MLogo' as the name. You will see a cube appear at the origin and the area below the views will contain the heightfield Editing Menu. Click and drag the waterlevel slider. The waterlevel can be seen on the sides of the cube. Set it to 0. Now click on the FILENAME button and in the file browser that pops up select the MORAY.TGA file from the MAPS directory. Now click on the READ button. MORAY now reads the wireframe of the heightfield. You will also see that the resolution of the file (240x41) is displayed in a button of the Editing Menu and the STEPS button is set to 2. The STEP value is responsible for the fineness of the heightfield mesh display. You can set the mesh finer or coarser by clicking on the number after STEP. MORAY will automatically set the number in STEP upon READing to a number that makes about 20 divisions across the heightfield. A smaller number will make a finer mesh, use more memory and slow down the redraw. The current setting of 2 means that every second pixel is shown in the wireframe. Click on the button next to STEP and enter 4. The mesh becomes coarser and only every fourth pixel is connected. This is a good setting to scale and place the heightfield. Set the X-scale to 10 and the Z-scale of the heightfield to 0.2. Since we want the heightfield to look like a logo, we can set the Y-scale of the heightfield in such a way that the heightfield has the same aspect ratio as the TGA file. Click on the ADJ SCL button. Now the aspect ratio of the heightfield is set to the aspect ratio of the image file. Place the camera, so that the logo can be seen inside the 3D view, close to horizontal. Create a GradientX texture, going from yellow to red, scale it so that only one transition goes across the heightfield (X-Scale is 2.0, X-Trans is -1) and assign it to the heightfield. Manual MORAY V2.0 Page 35 ---------------------------------------------------------------------- If we rendered this image, we would be rendering a lot of black space, since the logo does not fill up the entire scene. MORAY allows you to define a rendering region for POV-Ray (Polyray only supports changing the starting line). To activate this, move the cursor over the 3D view to the left of and above the logo. Press and hold Shift and Ctrl and then drag open a rectangle to the lower right portion of the logo. You will see a rectangle drawn around that part of the screen that POV-Ray will render. Polyray will render everything below the top of this rectangle. To clear this rendering window, press and hold the Shift and Ctrl keys and simply left click the mouse, without moving it. See TUTOR5A.MDL for the current state. Press F9 to render this scene. You should see the logo on a flat plain. We can now use the waterlevel to get rid of the lowest part of the heightfield, so that the letters seem to float alone in space. Set the STEP parameter to 2. Now drag the waterlevel slider slowly to the right. If the redraws take too long, click into the slider area, to the right of the actual slider gadget. You can see the lower part of the wireframe disappear. Leave the waterlevel slider at 0.4. Press F9 again to render this. The letters are now no longer connected by the flat piece. 4.9 Editing Bezier Patches A bezier patch is a 3D bicubic mesh of polygons defined by 16 control points that determine the shape of the patch by "pulling" at the mesh in the direction of the points. MORAY's bezier editor gives you the capability to intuitively model bezier patches by selecting and transforming these control points. Three types of basic patches are supported by MORAY: a sheet, a cylinder composed of two patches, and a cylinder composed of four patches. Control points are selected by either shift-clicking on them individually or by shift-dragging a box around one or more points. Selected points are then transformed by scaling, rotating, or translating. Scaling and rotating can be done in relation to the origin or in relation to the center of the patch. There is a LOCAL button next to each under the TRANSFORMATION MODE set of buttons that toggles this option. The following tutorial demonstrates the principles involved in modeling with the bezier editor. Manual MORAY V2.0 Page 36 ---------------------------------------------------------------------- 4.9.1 A Flat Patch From the main edit screen, click on CREATE and then BEZIER PATCH. MORAY will ask you to name the patch and will offer you a default name: BzPtch001. Accept this and the CREATE BEZIER PATCH dialogue box appears. Click on SHEET if it is not already selected. Notice the size and height boxes to the right. These control the size of the sheet and the number of patches that will compose it. Click on the first box and change the 1 to 3. Click on OK, CREATE. A green rectangular mesh appears. At the bottom of the screen is an EXTENDED EDIT button. Click on it. 4.9.2 The Editor This is the bezier editor. The working menu is beneath the view windows. In the front view, right click to pop up the View Popup and click on ZOOM TO FIT. Now, hold down the shift key and drag a box around the right half of the patch. Half of the control points will be selected and will appear as small yellow squares. Note that there will be a seemingly unselected row of points (best seen in the TOP view). This row is managed by MORAY to guarantee an edgeless seam between adjacent patches. In the menu, beneath the word MARKED, are four buttons. The number 16 will appear in the first box under MARKED to tell you how many control points are marked. Next to the MARKED buttons is a group of buttons beneath the words TRANSFORMATION MODE. Click on the LOCAL button next to ROTATE. In the side view, right click and ZOOM TO FIT. Then, drag the mouse downward to rotate the selected points 90 degrees. (Note that transformation values cannot be entered numerically from the keyboard and that there is no undo function available from within the bezier editor.) Right click and ZOOM TO FIT in the top view and shift drag a box to deselect the row of control points nearest the center. Note that in the top view, the row will appear as a single yellow square. Selecting it marks all the points in that row as you can see in the front view. Rotate again in the side view 90 degrees in the same direction as before. Deselect the next row and rotate again by 90 degrees in the same direction. One more time now, deselect the second-to-last row and rotate it 90 degrees in the same direction. There should now be only the last row of points selected and half of the patch should be twisted like a ribbon. Click on LOCAL SCL and, in the SIDE view, drag the mouse down to scale the control points very close together. Alt-drag to zoom in closer and scale the control points closer still. Click on UNMARK ALL. Manual MORAY V2.0 Page 37 ---------------------------------------------------------------------- Click on X-MIRROR. The entire patch flips over. In the front view, zoom to fit and MAXIMIZE. Then shift-drag a box around the untwisted half of the patch. Again, 16 points should be marked. Right click, MINIMIZE, and then, in the side view, ZOOM TO FIT. Click on LOCAL ROTATE and rotate the marked half of the patch by 90 degrees in the same direction. Repeat this procedure as you did for the other half continuing the twist to the other end. On the far right of the bezier editor menu are three buttons: SHOW MESH, SHOW CTRL MESH, and CONT. UPDATE. The first two should be depressed. Click on SHOW CTRL MESH to turn off the control mesh and get a good look at your patch. Increase divisions by sliding the slider up to 15. The mesh will become much finer. Click on DONE. Back in the main edit screen, above the EXTENDED EDIT button, are three boxes labeled U STEPS, V STEPS, and FLATNESS. The values are set at 3 for u steps and v steps and 0.01 for flatness. These are the defaults for POV, but the patch will tend to render with facets unless you change them. We want our patch to be smooth so hang the memory! Change u steps and v steps from 3 to 5 and flatness from 0.01 to 0. Give your patch a texture, light, and camera and render it! This state is reflected in TUTOR06A.MDL. 4.9.3 A cylindrical patch Now let's try modeling a cylinder. Beginning in the main edit screen, click on CREATE, BEZIER PATCH. Name it TORNADO and hit ENTER. The CREATE BEZIER PATCH dialogue box appears. Click on CYLINDER (4-PATCH), HEIGHT 5 PATCHES, OK,CREATE. A tall cylinder appears. Click on EXTENDED EDIT. You may notice that you have a patch object composed of many (20) sheet patches. This means that redraws may be slow. Slide the DIVISIONS slider bar down to 3 to speed up redraws. This will only affect the display. It will not affect the patch that is exported to POV-Ray. 4.9.4 A Funnel Shape If the front window, right click and ZOOM TO FIT. Shift-drag a box around the lowest level of points to mark them. Only the eight lowest points on the cylinder should be marked! In the top view, right click, ZOOM TO FIT. Click on LOCAL SCALE and drag downward with the mouse in the top view to scale the points to a ring about 1/5 of its original diameter. UNMARK ALL. Shift-Drag around the next row of points above to mark them and scale them down to about 10% larger diameter than the first row. UNMARK ALL. Continue this process for each successive layer of points, leaving each level slightly larger than the last. You want a fairly consistent tapered funnel shape, but it does not have to be perfect. It may be of advantage to turn the mesh display off (click on SHOW MESH so that it comes out) and work with the control mesh only. Manual MORAY V2.0 Page 38 ---------------------------------------------------------------------- Note that there will be some rows that you cannot select, since MORAY manages these to guarantee the edgeless seam. Note also that at some point you may have to scale the points larger instead of smaller. The current state is reflected in TUTOR06B.MDL. 4.9.5 Adding the Twist Starting at the top, with the uppermost row still selected, click on translate. In the front view, drag these points up and to the left about 2 units. UNMARK ALL. Mark the next row down and drag it in the same general direction, just not as far. Try to make the shape have a smooth, gradual curve. Then, in the top view, drag the points upwards about 1/2 a unit. UNMARK ALL. Mark the next row and repeat this procedure only drag these points in the top view upward and slightly to the right. The idea is to create a funnel shape descending in a twisting or spiraling manner. Continue downward until your 'Tornado' is complete. Make adjustments in the curve of the funnel by referring to the other views and translating the points until the curve is correct in all views. When done, you should have a graceful, spiraling funnel. Give your tornado a texture and render it. Remember to change the u-steps and v-steps from 3 to 5 and the flatness from 0.1 to 0. This final state is reflected in TUTOR06C.MDL. 4.10 Creating User-Defined Objects Creating User-Defined Objects is very easy with a tool called 3DTO3D.EXE. It reads in various 3d-formats such as RAW, 3DS (3D Studio) or OBJ (Imagine) and exports the data to other 3D formats, including the MORAY UDO-format. Please refer to the 3DTO3D manual for supported formats (in the utils subdirectory). Let's create a scene containing a UDO-Object. The file CHESS.RAW in included in the RAW subdirectory, along with a batch file to create INC files for POV-Ray and Polyray. At the DOS-prompt, change to the RAW subdirectory and type the following: makeudo chess This batch file calls 3DTO3D in the UTILS subdirectory and will thus only work with the standard distribution. If you changed directories, you'll nbeed to change the batch file. Manual MORAY V2.0 Page 39 ---------------------------------------------------------------------- For 3DTO3D command-line options please refer to the manual. In this case, MAKEUDO.BAT uses -t3 to swap Y and Z coordinates, since MORAY uses a different coordinate system than the CHESS.RAW file does, and -o2 and -o3 to convert to a POV-Ray and a Polyray INC file. It also uses -e40, which means only edges of adjoining polygons are shown that form an angle of more than 40 degrees. After conversion, the POVSCN and POLYSCN directories contain the CHESS.INC file that contains the triangle data in the correct format for the corresponding raytracer. The file CHESS.UDO contains a wireframe representation of the RAW file for MORAY and is contained in the UDO subdirectory. Now start MORAY. Click on CREATE and on USER-DEFINED. This pops up the File Selector. Navigate to the UDO directory and double-click on CHESS.UDO. Select the camera and move the camera to <30,-16,15>. You should now see the two pawns. Call the Texture Editor (click on TEXTURES in the Main Menu), and use the GET button to import the PinkAlabaster and White_Marble textures. Leave the Texture Editor (right-click, or DONE) and assign the PinkAlabaster1 to Black_Rook and White_Marble1 to White_Knight. Save the scene by pressing F2. Do not use CHESS.MDL because MORAY would export CHESS.POV and CHESS.INC, thus overwriting the CHESS.INC containing the triangle data that 3DTO3D created. After saving press F9 to render the scene. 4.11 Importing Blobs Although MORAY does not offer a blob editor, it supports them nonetheless. You need to import them from Blob Sculptor (DOS or Windows). Start MORAY, click on CREATE then on LOAD BLOB and accept the default name. There is currently no wireframe visible, since no blobs have been imported. The blob object is selected, however, and its Editing Menu has an IMPORT button. Click on it. In the File Selector, change to the MDL directory and click on the CUSHION.BLB file. You will then see a wireframe of the blob, showing the individual blob components as circles in each plane. Manual MORAY V2.0 Page 40 ---------------------------------------------------------------------- To make a wireframe representation of the actual blob shape, click on EVALUATE. You will be prompted for a number. This number is the size of the grid in which the blob will be sampled. The higher the number the finer the blob wireframe will be, but also the more memory it'll need and the slower the redraws become. The default value of 20 is a good number to get a rough representation of what the blob actually looks like and to use for placement in the scene. Create a texture for the blob and render it. You can load TUTOR07.MDL if you want to see this state. 4.12 Working With Spotlights MORAY supports spotlights and allows you to view the scene through them, so that you can get an accurate idea of what will be illuminated by the spotlight. You can assign a camera that is associated with the spotlight to any view. Start MORAY and create a cube at the origin. Delete the light source. Create a spotlight. The spotlight is created at the origin, looking down. Unfortunately this is not a valid position for a camera and thus if you were to look through the camera right now, it would not work correctly (the screen stays blank). MORAY has also created a camera for you and has attached the camera to the spotlight. This is a normal camera, and you can detach it from the spotlight in the camera's Editing Menu. You can also add a camera to a spotlight in an old scene using the camera's Editing Menu. To do this simply set both the Position and Lookat Reference to the spotlight. Move the spotlight to about -10, 8.5, 8 and rotate it about the Y-axis (in the FRONT view) until it points towards the cube. Move the mouse over the 3D view (or the side view) and click the right mouse button. In the View Popup click on the button reading VIEW: 3D and in the new popup click on SpotCam001. The view now shows what the spotlight is seeing. You should see two circles in the view. The outer circle defines the area that is illuminated by the spotlight. The area outside this outer circle is not illuminated by this spotlight. The area inside the inner circle is fully illuminated by the spotlight and the area between the two circles serves as a transition area from no to full illumination. In the TOP view, rotate the spotlight, so that it points towards the cube and watch the 3D view that is showing the view out of the spotlight. (Your rotation values should now be 0, 50, 40.) You'll notice that the spotlight is not centered on the cube, so set translation mode and in the FRONT view move the spotlight up until it's Z-Trans is at 11. Manual MORAY V2.0 Page 41 ---------------------------------------------------------------------- Create a plane at Z=-1 and texture it with a solid light green texture. Also create and assign a blue texture for the cube. Render this scene. (TUTOR08A.MDL reflects this state.) You'll notice that the spotlight covers quite a big area. Let's make it a bit tighter. Select the spotlight (Shift-Drag a square around one of the circles in the spotlight view). In the spotlight's Editing Menu use the left arrow to lower the aperture angle (FALL.) to 8.5. The outer ring and inner ring now come closer together. Notice that the spotlight camera always zooms into the scene so that the outer circle fills the view. Render this again. (TUTOR08B.MDL reflects this state). The spotlight now has a more abrupt transition from dark to light, although it is still soft and not nearly as abrupt as the cube's shadow. 4.13 The Object Browser The Object Browser allows you to take a look at the hierarchy of your scene and get a good overview of the scene. You can also change various Object Attributes quite quickly here. Each object is shown in a button-like square. For Group and CSG objects the children objects are shown to the right of the object, with lines connecting them. Let's take a look at a the Robot scene we did in Tutorial 1.6. Load the TUTOR09.MDL file and return to the Main Menu. Press Alt-S or click on the SELECT button. The Object Browser appears over the views. You will see the names of all the objects in the scene in rectangular buttons on the screen. On the right you can see a menu and at the bottom is, as always the Editing Menu of the currently selected object (at the moment the camera). The buttons are color coded according to the type of the object. Cameras are red, CSGs are blue, Groups are green, Lights are white and the rest are gray. The selected object overrides these and is yellow. The buttons can be drawn in three different ways. Very small, with no labels, to give you a graphical overview of the scene. Middle sized with the name of the object in the button. And large, with additional information in the button, such as the type of the object, the name of the applied texture and the name of the bounding box. Objects can be selected by simply clicking on them. The Editing Menu at the bottom of the screen is active for the selected object. Manual MORAY V2.0 Page 42 ---------------------------------------------------------------------- Click on the ZOOM OUT button (or press '-') until it is greyed. This is the overview setting, now click on ZOOM IN (or press '+') to get to the middle setting. You can see the names of the objects on the buttons. Click on ZOOM IN (or press '+') again and you will notice that the buttons are a lot larger and some of them have more sub- buttons. On the left is the top-level object, called 'Robot'. It is a group object (green) and has two subobjects, ArmHolder (another group) and Base (a cube). Click on that region of the Robot button that reads GROUP. It becomes the selected object, the Editing Menu is updated accordingly and the names of all subobjects are now written in white. In this way it is easy to see which objects are subobjects of the selected object. There are two mistakes in this scene that we will now correct. The name of the second last object in the ArmHolder group (the cylinder) is not set correctly. Click on the Obj001 part of the button. A line editor pops up, allowing you to edit the name. The same can be done by selecting the object and pressing 'N'. Enter the name 'ArmPivot' and press Enter. Notice that ArmHoldBaseR2, the fourth object in the ArmHolder Group has the BodyTxtr assigned to it. This is not neccessary, since the ArmHolder parent object has the same texture. We will clear it. Click on the BodyTxtr part of the button. Now you will see a popup with a list of textures and a NO TEXTURE button. Click on the NO TEXTURE button. The texture is cleared and the ArmHoldBaseR2 button is a single line button. To assign a new texture to an object that does not have one currently assigned to it, make sure it's selected and press 'T'. This pops up the same Texture List Popup, where you can then choose a new texture for the object. Naturally the Editing Menu at the bottom of the screen can also be used. When you have big scenes with many hierarchy levels, you can collapse some of the tree and leave only that part expanded (visible) that you're working on. You can collapse individual objects or the whole tree. To collapse the whole tree click on COLLAPSE ALL. Try this. You will see that only top-level objects are visible. Select the Robot object by clicking on the GROUP part of the button. You can now expand this object in one of two ways. You can show one more level by clicking on the right arrow at the right side of the button. Try this. The next level of subobjects are shown. You can selectively expand the object tree in this manner to get to the object you are interested in. Click on this arrow (now a left arrow) again to collapse the object. Manual MORAY V2.0 Page 43 ---------------------------------------------------------------------- You can show all the subobjects (and their subobjects) by clicking on the EXPAND SUB. Try this. The whole subobject tree of the Robot becomes visible. EXPAND ALL can be used to expand all collapsed objects, in effect showing the entire scene hierarchy. In addition to this selective collapsing and expanding of hierarchies, you can also specify the maximum depth of displayed objects. The hotkeys Alt-1 to Alt-9 can be used to limit the depth of the display to a level between 1 and 9. Alt-0 shows the entire hierarchy. A button with a double left arrow is attached to any object that has subobjects that are at a deeper level than you requested be displayed. Try this now by pressing Alt-1. All objects that are not top- level objects are not displayed. Instead, there is a button attached to any top-level object to indicate that there are sub-objects attached to this object. Press Alt-1 and you will see that the next level of sub-objects are displayed, in this case it's the ArmHolder and Base objects of the Robot. You can use the LARGER FONT and SMALLER FONT buttons to switch between three different font sizes. Depending on you monitor (and eyes) you may want to use a larger or smaller font. In a larger scene, only a portion of the hierarchy is visible. The rest can be brought into view by using the scrollbars on the right and bottom of the screen. You can either drag the scrollbars directly by clicking on them, or you can click in the scrollbar area below or above the slider to position the slider at a specific point. If you want to see the selected object in the Browser, press the TAB key. This centers the display around the selected object. 4.14 Copying Objects The Copy Submenu allows you to create one or more copies of an object. Each copy can be transformed as it is copied. The Copy Submenu is also the only way to create Reference Objects (see next Tutorial). Load TUTOR10.MDL. You will see a flat cube named Cube1 at the origin. Click on COPY or press Alt-C. You will see the Copy Submenu replace the Main Menu. There are four sets of transformation buttons. The first one influences the scaling of the copies. If you depress SCL FCT, each new copy's scale will be multiplied with the numbers that are entered here. If you leave SCL OFF depressed, then each new copy's scale will have these values added to their scaling values. The same goes for the second and third set of buttons. They influence the rotation and translation of the copies. Manual MORAY V2.0 Page 44 ---------------------------------------------------------------------- Click on the Y component of the translation set (leave XLAT OFF depressed) and set it to 3. Click on the button next to COPIES and enter 3. This will create 3 copies, thus we will end up with four cubes (the original and the 3 copies). Click on OK. You can now see that each new cube is placed 3 units further along the Y-axis than the previous cube. You are also returned to the main menu. Click on UNDO to undo the copy operation. Set the X- Translation of the cube to 10 and press Alt-C. The Copy Submenu remembers the last copy operation that you performed and leaves the buttons set at what the last copy operation used. Clear the 3 in the Y-Translation setting of the Copy Submenu. The fourth set of buttons on the Copy Submenu is a special set that also influences the translation of the copies, but not directly. It's best to demonstrate the concept. Click on the third button in the last set, under the ORBIT heading. This is the Z-component. The numbers that are entered here are degrees and determine by how many degrees around the origin the original is rotated to get the copies position. This will become clearer in a minute. Enter 30. This means that each copy should be placed in such a way that it seems to have orbited the origin by 30 degrees. Entering 30 has also automatically set the Z-component of the rotation set to 30 degrees. This must also be done if the object really should look like it's orbiting the origin, i.e. it needs to change its orientation as well. If you set this value to 0, the copies will still be placed in a circle around the origin, but will all be aligned along the X-axis. (You can try this and use UNDO later). If the number of copies is not set at 11 already, set it to 11. Since we will be rotating 30 degrees around the Z-axis, we need 12 objects to make a full circle. Since we already have one original, we make 11 copies. Click on OK. You will see a circle of 12 cubes. The first copy is selected. Click on UNDO, set the cubes X-Translation to 2.0. Now click on COPY again and you will see that the previous settings (30 degress Z-Rotation and Z-orbit) are still set. Now click on the Z-component of the Translation set of buttons (third button under the XLAT OFF button) and enter 0.5. Click on OK. Again you see a circle of 12 cubes, except these also circle upwards, since each copy is 0.5 units higher (in Z) that the previous copy. Experiment with different settings. A tip: The results are reasonably predictable as long as you use only one component (X, Y or Z) in the translation and orbit sets. Manual MORAY V2.0 Page 45 ---------------------------------------------------------------------- 4.15 Reference Objects This Tutorial assumes that you are familiar with the Copy Submenu. If not, please do the previous Tutorial first. Start MORAY and load TUTOR11.MDL. This scene contains a single stair of a spiral staircase. You will probably be a bit confused by all the lines at first. The ring comes from a torus that is used to smoothen the side of the step. It is part of the selected CSG object StairBase. Double click on StairRim in the list of objects in the objects editing menu or select the StairRim object in the Object Browser. Now click on the EVALUATE button to make MORAY reduce the wireframe display. You should now get a much clearer idea of what the staircase looks like. Press Alt-P to reselect the StairBase object (or use the Object Browser). You can render the current scene to get an idea of what the stair looks like. We will now make a 16-stair spiraling staircase by making 15 copies of this single stair, rotating each copy around the Z- axis and translating it along the Z-axis at the same time. Make sure that StairBase is selected and click on COPY. Enter 24 in the Z-component of the ORBIT buttons. This makes each copy rotate 24 degrees more around the Z-axis. The REPEAT factor will set itself to 14, since MORAY assumes you want to make a complete circle. We do want to make more than a complete circle, though since the top stair should be exactly over the bottom stair. Click on the REPEAT and set it to 15. Set the Z-component of the XLAT OFF buttons to 1.0. Each copy will now be translated 1.0 units higher in Z. OK, we're basically set to make the copy, but there is one more button in the Copy Submenu which is important and that is REFERENCE. When making copies we can make a shallow copy or a deep copy. If REFERENCE is set to YES it is a shallow copy, if REFERENCE is NO, it is a deep copy. A deep copy will recursively make copies of all subobjects in the object. In a reasonably complex object such as the StairBase, this would mean very many objects. A shallow copy will make a reference object that points to (or references) the original object, but adds its own transformations. The advantages of a deep copy are the disadvantages of a shallow copy and vice-versa. It will mostly depend on your situation which is better for your needs. Manual MORAY V2.0 Page 46 ---------------------------------------------------------------------- With a deep copy you can change parts of the copy or the original without changing the other object. With a shallow copy, you can only edit the original, but those changes are propagated to all copies, e.g. if you have copied a group and then add an object to the group, this new object will also appear in the copies. A deep copy requires a lot of memory and creates much larger output files. A shallow copy does not require as much memory and makes much smaller output files. For a reasonably complex object such as the StairBase you will usually use a shallow copy, especially since we will not be making changes to individual stairs. But we may want to change the look of all the stairs, which we can easily do by changing the original. Click on the REFERENCE button so that it is depressed and reads YES. Now click on OK and watch the staircase appear. Position the camera to your liking and press F9 to render the staircase. If you take a look at the Object Browser, you will see there is only a single button for every reference object. If we had made a deep copy, we'd see the same hierarchy for each stair as we do now for the StairBase object. You'll notice that the texture of the stair is a plain orange. I leave it as an exercise for the reader to create better textures for the stairs. All you need to do is make the original stair use other textures, all copies will automatically have that change. Load TUTOR11A.MDL and render it to see an example of a textured staircase. This file also looks very confusing at first, but if you select the StairBase CSG object and evaluate it, it will become a lot clearer. 4.16 Visibility Levels Start MORAY and load the TUTOR12.MDL. This is a scene containing a small cabinet with three drawers. You'll notice (in the lower right corner) that it only has about 350 edges and you can see it quite clearly. Now press Alt-0. This will make MORAY draw all edges of all objects. We now have over 3600 edges to draw and the redraw rate becomes a lot slower. When you loaded the file, the visibility level was set to 1, since that's how it was stored in the MDL. Press Alt-1 to see only the rough dimensions of the object. Manual MORAY V2.0 Page 47 ---------------------------------------------------------------------- This is accomplished by using visibility levels. It is of advantage to use this feature, especially on big scenes, to speed up redraws (by reducing the number of edges to draw). Say you were designing a room with furniture. Once the cabinet was done, it is not necessary to display the little knobs of the cabinet, you only need the rough shape. You could even make the drawers use one visibility level higher, leaving only a cube to represent the object. If you use relative visibility in this way, you can also completely hide an object while working on another, by increasing the root object's visibility level. Once you're done, bring it back down and the object reappears. Objects that are not needed to get a rough idea of what the overall object or scene looks like are assigned a visibility that is higher than its parent. This is repeated at each nesting level until the root object. Let's see how it works. Press Alt-1 and open the Object Browser to select the 'Drawer' object. Leave the Object Browser and note that the Drawer object is highlighted. The Editing Menu shows that three subobjects belong to the 'Drawer' object: DrawerInside, DrawerFront and Knob. Click on each of these and you will see different parts of the wireframe become highlighted except when you click on the Knob object. Now press Alt-3 and you will see the knob show up. Double click on the 'Knob' line in the CSG list of the 'Drawer' object (or otherwise select the 'Knob' object). As you can see on the editing menu, the knob has a relative visibility setting of +1, giving an overall visibility of 2. This has no direct effect on the display since 'Knob' is not a primitive. But it does propagate down to sub-objects. Right click over the SIDE view and select FIT TO OBJECT. You can see that the 'Knob' consists of two objects, a cylinder and a sphere. But now check out the Object Browser. The object 'Knob' consists of another CSG object named 'Knobby', which is a difference between a sphere and a torus. Click on the 'KnobbyBase' sphere object and you can see that it has a relative visibility of +0. This means its visibility stays at that of the parent object, at +3. Since we pressed Alt-3, it is now visible. Click on the 'KnobbyCut' torus object. You can see in its Editing Menu that it has a relative visibility of +1. Since it is a sub-object of 'Knobby', which also has a relative visibility of +1, this makes a visibility of 4 for the torus. Since Alt-3 is currently active, it is not displayed. Leave the Object Browser and press Alt-4 and you will see the torus now displayed as well. Study this scene file, to become acquainted with how the various visibility levels play together in a hierarchical sense, using relative visibility. Manual MORAY V2.0 Page 48 ---------------------------------------------------------------------- 5 Reference Section 5.1 Main Menu This is the menu on the right side of the screen. It gives access to all the major functions. 5.1.1 Object Name (Name) This button shows the name of the currently selected object. 5.1.2 Object Type (Type) This button shows the type of the currently selected object. 5.1.3 Scaling Mode (SCL) If this button is depressed, then MORAY is in non-uniform scaling mode. When you manipulate an object in one of the views, the currently active object will be scaled according to the mouse movements. Pressing 'S' also activates this mode. 5.1.4 Uniform Scaling mode (USCL) If this button is depressed, then MORAY is in uniform scaling mode. When you manipulate an object in one of the views, the currently active object will be scaled equally in all directions according to the mouse movements, using the smallest movement as the amount to scale the object by. Pressing 'U' also activates this mode. 5.1.5 Clear Scale (CLR) Use this button to reset the scaling of the currently selected object. All scaling values are set to 1.0. 5.1.6 X, Y and Z Scale These buttons show the current scaling values of the selected object. The top button shows the X-Scale, the one below shows the Y-Scale and the next one shows the Z-Scale. You can click on one of these buttons to enter the value directly. You can click on one of these buttons to enter the value directly and then the TAB key to advance the cursor to the next field. Manual MORAY V2.0 Page 49 ---------------------------------------------------------------------- 5.1.7 Rotation Mode (ROTAT) If this button is depressed, then MORAY is in rotation mode. When you manipulate an object in one of the views, the currently active object will be rotated around its origin according to the mouse movement. The axis of rotation is the axis that comes out of the screen in the view that you use. Pressing 'R' also activates this mode. 5.1.8 Clear Rotation (CLR) Use this button to reset the rotation of the currently selected object. All rotation values are set to 0.0. 5.1.9 X, Y and Z Rotation These buttons show the current scaling values of the selected object. The top button shows the rotation in degrees about the X-Axis, the one below shows the rotation about the Y-Axis and the next one shows the rotation about the Z-Axis. You can click on one of these buttons to enter the value directly and then the TAB key to advance the cursor to the next field. 5.1.10 Translation Mode (TRANS) If this button is depressed, then MORAY is in translation mode. When you manipulate an object in one of the views, the currently active object will be moved according to the mouse movement. Pressing 'T' also activates this mode. 5.1.11 Clear Translation (CLR) Use this button to reset the translation of the currently selected object. All translation values are set to 0.0, i.e. the object is moved back to the origin. 5.1.12 X, Y and Z Translation These buttons show the current translation values of the selected object. The top button shows the translation along the X-Axis, the one below shows the translation along the Y- Axis and the next one shows the translation along the Z-Axis. You can click on one of these buttons to enter the value directly and then the TAB key to advance the cursor to the next field. 5.1.13 Undo This button allows you to undo the major operations that MORAY handles. The number in parentheses shows the number of undo actions available. The following actions can be undone: o Object transformations (Scaling, rotation, translation) o Creating an Object Manual MORAY V2.0 Page 50 ---------------------------------------------------------------------- o Deleting an Object o Copying an Object o Adding an Object to a Group (or CSG) o Removing an Object from a Group (or CSG) The Backspace key can be used to activate this function. 5.1.14 Create This button brings up the Create Submenu in place of the Main Menu. The views stay active, so you can still pan, zoom and select while the Create Menu is visible. Note that some Main Menu hotkeys do not work while the Create Menu is visible. For example, you cannot change the transformation mode, since the hotkeys for this ('S', 'U', 'R' and 'T') are used to create a sphere, a user-defined object, a rotational sweep or a torus, respectively. See the Create Menu (page 53) for details. 5.1.15 Copy This button brings up the Copy Submenu. You can make copies of the selected object with the menu that is presented. See Copy Menu (page 62)for more details. 5.1.16 Delete This will delete the currently selected object without user verification. 5.1.17 Select This activates the Object Browser. The four views are replaced with a tree-like display of the scene in memory. See Object Browser (page 91) for details. 5.1.18 Textures This brings up the Texture Editor, where you can create and delete textures. See Texture Editor (page 76) for details. 5.1.19 Files This brings up the Files Submenu, where you can load, save and manage scene files. See Files Submenu (page 55) for more details. 5.1.20 Options This button brings up the Options Dialog, where you can set various options related to MORAY and the raytracers. See Options Submenu (page 59) for details. 5.1.21 Quit This button quits MORAY. If you have a scene in memory that has not been saved you will be prompted whether you wish to save the scene before exiting. Manual MORAY V2.0 Page 51 ---------------------------------------------------------------------- 5.2 View Popup The View Popup is a little menu that pops up when you right- click when your cursor is over one of the views. Note that view popups are disabled on disabled viewports. 5.2.1 Disable This button disables the viewport. It remains black until you re-activate it by typing the '+' key on the keyboard. Use this button if the redraws of your scene are becoming too slow and you are primarily working in other viewports. 5.2.2 Disable/Enable Snap Use this button to turn cursor snapping on and off. When it is on, any scaling, rotation or translation that you do will be rounded to the nearest multiple of the snap settings (see Options Menu, page 59). 5.2.3 Zoom To Obj This button is available if you have selected an object. It zooms and pans the viewport in such a way that the selected object fills it. 5.2.4 Zoom To Fit This button zooms and pans the viewport in such a way that the whole scene fits into the viewport. The equivalent Hotkey is Alt-Z. 5.2.5 Pan This button activates a one-time pan mode. Usually when you want to pan a viewport with the mouse, you will press Ctrl and drag it. If you click on this button, you do not need to press Ctrl the next time you drag the mouse. This only works immediately after you exit the view popup and only once. 5.2.6 Zoom This button activates a one-time zoom mode. Usually when you want to zoom a viewport with the mouse, you will press Alt and drag the viewport. If you click on this button, you do not need to press Alt the next time you drag the mouse. This only works immediately after you exit the view popup and only once. 5.2.7 Maximize/Minimize If this button reads Maximize it enlarges the current viewport to fill the area previously covered by all four viewports. If it reads Minimize it reverts back to displaying all four viewports. Manual MORAY V2.0 Page 52 ---------------------------------------------------------------------- 5.2.8 Select This button activates a one-time select mode. Usually when you want to select an object in a viewport with the mouse, you will press Shift and drag a rectangle over the object to select. If you click on this button, you do not need to press Shift the next time you drag the mouse. This only works immediately after you exit the view popup and only once. 5.2.9 Redraw This button redraws the current viewport. Pressing Ctrl-R has the same effect. 5.2.10 View:type This button displays the viewport type. Clicking on this button allows you to change the viewport type. You can make the viewport show either the FRONT, SIDE, or TOP view of the scene, or you can determine a camera, whose view into the scene you wish to see. This is useful for spotlight cameras. 5.2.11 Lock/Unlock Grid If this button reads LOCK GRID, clicking on it freezes the grid units at their current setting. Subsequent zooming in or out of the scene will not change the world distance between the grid lines. If the button reads UNLOCK GRID, the grid line spacing is automatically calculated, according to the zoom level. 5.2.12 Disable/Enable Grid This button can be used to toggle the display of the grid on and off. 5.2.13 Insert Node This button only appears in the Sweep Editor. It can be used to insert a new node in the sweep being edited. The cursor will change shape and a node will be inserted at the point you click on. You can right click again to cancel the insert operation. 5.2.14 Delete Node This button only appears in the Sweep Editor. It can be used to delete a node in the sweep being edited. The cursor will change shape and the node that you click nearest to will be deleted from the sweep. You can right click again to cancel the delete operation. 5.2.15 On/Off Curve This button only appears in the Sweep Editor in Glyph mode. It can be used to determine whether the spline should pass through a control point (On Curve) or go past it (Off Curve). Manual MORAY V2.0 Page 53 ---------------------------------------------------------------------- 5.2.16 Unmark/Mark All These buttons only appear in the Sweep Editor and the Bezier Editor. They can be used to either mark or unmark all control points. 5.3 Create Submenu This submenu replaces the Main Menu on the right side of the screen. The submenu will stay active until you click on DONE or until you press ESC or right click while the cursor is over the submenu. 5.3.1 Cube This creates a standard cube. It is centered at the origin and goes from -1 to +1 in all directions. It thus has a size of 2 units in each direction. 5.3.2 Sphere This creates a standard sphere. It is centered at the origin and has a radius of 1.0. 5.3.3 Cylinder This creates a closed cylinder that has a radius of 1.0 and extends from the Z=0 plane to the Z=1 plane. 5.3.4 Cone This creates a closed cone. By default the cone has its apex at the origin and has a radius of 1.0 at Z=1. You can use the buttons in the object's Editing Menu (see Cone Menu on page 68) to change the cone size and orientation. 5.3.5 Torus This creates a torus with a major radius of 1.5 and a minor radius of 0.5, centered at the origin and lying in the Z=0 plane. See Torus Menu (page 68) for details on how to change the size of the torus. 5.3.6 Plane This creates an infinite plane in the Z=0 plane. The wireframe representation is a square centered at the origin extending from -1 to +1 in both X and Y directions. It also has a line extending into the +Z direction to help you orient the plane. 5.3.7 Disc This creates a disc with a radius of 1.0 in the Z=0 plane, centered at the origin. The disc can have a hole in the middle, which can be set in the Disc Menu (see page 69). Manual MORAY V2.0 Page 54 ---------------------------------------------------------------------- 5.3.8 Translational Sweep (TRANS SWEEP) This creates a translational sweep that extends from the Z=0 plane to the Z=1 plane. The shape of the sweep can be edited in the extended editor (see 88). 5.3.9 Rotational Sweep (ROTAT SWEEP) This creates a rotational sweep that consists of an outline that is swept around the Z-axis. The shape of the sweep can be edited in the extended editor (see 88). 5.3.10 Tapering Sweep (TAPER SWEEP) This creates a translational sweep that extends from the Z=0 plane to the Z=1 plane. In contrast to the translational sweep, this sweep tapers towards the origin, where all sides meet. The shape of the sweep can be edited in the extended editor (see 88). 5.3.11 Bezier Patch This creates a bezier patch object. MORAY allows you to create more than just the single patch that POV-Ray understands. MORAY can handle objects consisting of multiple patches and handles the way they are glued together. See Bezier Editor (page 86) for details. 5.3.12 Heightfield This creates a heightfield object, centered at the origin and extending 1 unit in each direction. See the Heightfield Menu (page 69) for details. 5.3.13 Raw Triangles Object This creates a RAW triangle object. This can be used to directly read in small (<500KB) meshes of triangles. Since meshes can quickly fill up memory, it is recommended that you use the 3D converter (see page 109) to convert the mesh to a user-defined object (UDO) and create one of these with the mesh file instead. 5.3.14 User-defined Object This pops up the File Selector (see page 57), allowing you to select a UDO file to load. This creates a user-defined object. An UDO file contains information on how MORAY should export and display an object (see What's New, page 96 for details). 5.3.15 Blob (LOAD BLOB) This allows you to import a blob definition file. This file can be created by a separate program by Alfonso Hermida, Steve Anger and Truman Brown called Blob Sculptor (or its Windows counterpart WinBlob). See Blob Menu (page 71) for more details. Manual MORAY V2.0 Page 55 ---------------------------------------------------------------------- 5.3.16 Pointlight This button creates a point light at the origin. See Pointlight Menu (page 72) for details of changing the brightness. 5.3.17 Spotlight This button creates a spotlight at the origin. See Spotlight Menu (page 72) for details of changing the brightness and aperture of the spotlight. 5.3.18 Arealight This button creates an arealight at the origin. See Arealight Menu (page 73) for details of changing the brightness and size. 5.3.19 Group This button creates a group object. A group is exported as a union, but MORAY can handle cameras and lights in groups, whereas these are not allowed in a true union (CSG) object. See the Group Menu (page 74) for details. 5.3.20 CSG Object This creates a CSG object. See CSG Menu (page 75) for details. 5.3.21 Camera This creates a camera. See Camera Menu (page 75) for details. 5.3.22 Texture This brings up the Texture Editor, where you can create and delete textures. See Texture Editor (page 76) for details. 5.3.23 Done This exits the Create Submenu and returns to the Main Menu. 5.4 Files Submenu 5.4.1 Current File This field shows the current filename, without path, of the current scene in memory. 5.4.2 New This deletes the scene in memory and resets the views. Manual MORAY V2.0 Page 56 ---------------------------------------------------------------------- 5.4.3 Load This brings up the File Selector where you can choose a file to load into memory. See File Selector (page 57) for details on how it works. You can use F3 as a hotkey for this function. The hotkey is available from the Main Menu, too. 5.4.4 Save This button is used to save the current scene to disk. If you have previously loaded or saved this file, the scene will be saved to the same filename. The currently existing file is renamed with a BAK extension. If you have not loaded this scene and have previously not saved it, MORAY brings up a File Selector where you can choose a file to replace or enter a new name for the scene. See File Selector (page 57) for details on how the File Selector works. You can use F2 as a hotkey for this function. The hotkey is available from the Main Menu, too. 5.4.5 Save As This button is used to save the current scene to disk. MORAY will bring up a File Selector where you can choose a file to replace or enter a filename to store the scene in. See File Selector (page 57) for details on how the File Selector works. 5.4.6 Save Sel This button allows you to save the selected object and any textures that it is using to disk. MORAY will bring up a File Selector where you can choose a file to replace or enter a filename for the object. See File Selector (page 57) for details on how the File Selector works. 5.4.7 Merge This button will load the scene that you select in the File Selector without deleting the scene already in memory. See File Selector (page 57) for details on how the File Selector works. 5.4.8 Export This button makes MORAY export the scene to the selected raytracer (see Options Menu, page 59). MORAY will check whether all objects have textures first, notifying you of any objects that do not have a texture. MORAY also creates a batch file in the export directory called GO.BAT, which will call the raytracer to render the scene. You can use Ctrl-F9 to call this function directly from the Main Menu. Manual MORAY V2.0 Page 57 ---------------------------------------------------------------------- 5.4.9 Render This does the same as the Export button above, but then also calls the raytracer to render the image. You can use F9 to call this function directly from the Main Menu. 5.4.10 DOS Screen This button will switch to the DOS text screen, so that you can look at any error messages that the raytracer might have left on the screen. Press any key to return to the Main Menu. Use the Alt-F5 key from the Main Menu to invoke this function. 5.4.11 DOS Shell Use this button to call a DOS Shell. MORAY will switch to text mode and you will be placed in DOS. When you are done, type in EXIT to return to MORAY. 5.4.12 User1, User2 and User3 These are user-definable functions. You can hookup any DOS programs to these buttons. For example, you could call an image viewer, passing in the image filename as an argument. Or you can all an editor to look at the generated POV file. Or a utility to convert RAW triangles to UDO files. See Configuration (page 101) for details on how to set up you own calls. 5.4.13 Options This brings up the Options Dialog where you can set many parameters associated with MORAY and the raytracers, such as snap settings, render resolution, antialiasing, etc. 5.4.14 Done This button can be used to leave the Files Submenu. You can also right click or press ESC while the cursor is over the menu to leave the Files Submenu. 5.5 File Selector The File Selector is a dialog that pops up whenever MORAY needs to know the name of a file. The Selector remembers where you usually get your files from, according to where in the program they are requested. For example, MORAY will remember where you last loaded a scene file from and will automatically pop up in this directory the next time it needs a scene. You can press Enter to accept the name or ESC to cancel. Manual MORAY V2.0 Page 58 ---------------------------------------------------------------------- 5.5.1 OK and Cancel Use OK to confirm the name that you chose. OK only becomes active once a valid name has been entered in the filename control immediately below the OK and Cancel buttons. Use Cancel if you change your mind about whatever file operation it was that you invoked. 5.5.2 Current directory This label shows you the name of the current directory (or as much of it as possible). 5.5.3 Frequent directories This listbox contains the last 6 directories that you used for quicker access. Just click on one of these to jump to the directory. This comes in handy if you have multiple directories for the same type of file. 5.5.4 Filename This is an edit control where you can enter the name of the file. Simply start typing to specify the name of the file. MORAY will append the extension if you leave it off. 5.5.5 Files This listbox contains the names of all the files found in the current directory that match the extension specified in the Extension combobox. If you double click on the name it's the same as clicking once on it and then pressing Enter or clicking on OK, i.e. it accepts that name. 5.5.6 Extensions This combobox contains all the extensions that MORAY knows about and can be used to filter the files displayed in the Files listbox. 5.5.7 Drives This listbox contains a list of all available drives in your system except those that you have disabled in the configuration file (see Configuration, page 101). Simply click once on the letter of a drive to change drives. 5.5.8 Directories This listbox contains a list of all subdirectories available in the current directory. Simply click once on a directory name to change directories. Manual MORAY V2.0 Page 59 ---------------------------------------------------------------------- 5.6 Options Submenu 5.6.1 Undo Buffer Size This determines the number of undo actions that MORAY will remember. No memory is specifically set aside when you set this number, but memory is set aside every time that an undo action is created. For example: When you delete an object, the memory it was using is not really returned to the system, since it is placed in the undo buffer. The memory is only returned to the system when as many further undo actions have been created as specified in this number (Undo Buffer Size). You can use the CLEAR button to immediately clear the Undo Buffer. 5.6.2 Clear Undo Buffer This throws away all undo actions currently available and releases the memory associated with them to the system. This is useful when you have just deleted a large RAW object for example, and want to return the memory that it was using to the system, so that you can have more memory available for new objects. 5.6.3 Visibility Level This setting is the global visibility setting for the scene. All objects that have a visibility less than this setting will be drawn. Use the minus and plus key to decrease and increase the level. 5.6.4 Grid Snap This set of buttons allows you to set the snap distance in the views. All the buttons are edit controls, so you can simply click on them and enter a new number. You can set snap values separately for scaling, rotation and translation, since these numbers are often in different ranges. While a snap of 0.1 for translation is common, a snap of 0.1 for rotation is probably too small. The DISABLED/ENABLED button toggles the state of the snap function. If the button reads ENABLED and is depressed, then grid snap is enabled in the main views. 5.6.5 Renderer Here you can choose the raytracer that will render your images. Currently supported are POV-Ray 2.2 and higher, as well as Polyray 1.8 and higher. Simply click on the one you wish to use. Manual MORAY V2.0 Page 60 ---------------------------------------------------------------------- 5.6.6 Render Options This group of buttons allow you to specify with what options the raytracer is to be called. 5.6.7 Display This is used to determine whether the raytracer should show a graphical display while rendering. 5.6.8 Verbose This is used to determine whether the raytracer should display statistics or progress indicators while rendering. This switch is mostly enabled in combination with a disabled DISPLAY button, so that the raytracer outputs the line number it is currently rendering. 5.6.9 Pause This button is used to determine whether the renderer should pause after it is done. This switch is mostly useful in combination with an enabled DISPLAY button to pause the raytracer after the trace is done so that you can look at it, since the preview will be gone once you return to MORAY. If DISPLAY is off you can always use Alt-F5 (or Files|DOS-Screen) to see what the final statistics were. 5.6.10 Continue This button determines whether the raytracer should attempt to continue an interrupted trace. For this to work you should not change any external parameters such as resolution of the image. Also if you attempt to continue a trace that has rendering subwindow, it will not work correctly, even if you leave the rendering window untouched. 5.6.11 Interruptible This switch can be used to disable the keyboard checking that the raytracers do. If you set this to NO, you cannot interrupt a trace from the keyboard. Use this with care, since only a reset will allow you to abort a trace. However, if you know your kids may be around to press a key to interrupt that trace you've had going for a week, this option can be used to prevent that. 5.6.12 Resolution This combobox allows you to choose the resolution of the image that the raytracer should create from a set of standard resolutions. If your desired resolution is not there, simply click on the two edit controls next to this combobox and enter the values for X (width) and Y (height) resolution manually. 5.6.13 Antialias Use this edit control to set the antialiasing threshold. Setting it to 0 disables antialiasing. Manual MORAY V2.0 Page 61 ---------------------------------------------------------------------- 5.6.14 Jitter This edit control can be used to set the amount of jitter to introduce into the antialiasing if your active renderer is POV-Ray. Polyray does not use jitter in the same way and therefore does not have this button. 5.6.15 Rays This combobox lets you choose how many rays are to be shot into the scene when antialiasing is triggered. This option is only supported by POV-Ray. 5.6.16 Method This combobox allows you choose the method that is to be used for antialiasing if your renderer is Polyray. Please read the Polyray documentation for details of what each setting means. 5.6.17 Max Level This edit control can be used to specify the maximum number of levels (recursions) that secondary rays will be spawned for. If you are raytracing glass and are getting black areas in unexplainable places it may be time to increase this number. 5.6.18 Register Use this button to turn the shareware version into a registered version once you have received the registration confirmation and information from me. You will receive a name and a number to enter at the prompts that appear after you press this button. NOTE: Attempting to register with an incorrect name and/or number will render the EXE unusable and you will have to re-install MORAY. 5.6.19 About This brings up the About box for MORAY. Apart from showing you the copyright notices and registration info, it also gives you interesting information about the graphics mode and hardware in use. The first line of the graphics info tells you which VESA specification is in use. Possible values are V1.2 and V2.0. If you are not seeing V2.0, it may be time to give your graphics card vendor a call or to obtain UniVBE V5.1 or higher. V2.0 is considerably faster than V1.2 and you will should see a dramatic boost in graphics performance if you install a V2.0 VESA driver. The second line tells you the name of the driver providing VESA services. This could be the BIOS of your graphics card or a resident driver like UniVBE. The third line tells you the graphics mode that you are currently in. MORAY V2.0 only supports 256 color modes. Manual MORAY V2.0 Page 62 ---------------------------------------------------------------------- The fourth line tells you whether your VESA driver provides a linear framebuffer. If this feature is available and in use the graphics performance is increased even more. Only VESA 2.0 drivers (like UniVBE V5.1 and higher) can support this feature. 5.6.20 Done Use this button to leave the Options Submenu. You can also press ESC or right-click to leave the submenu. 5.7 Copy Submenu The Copy Submenu can be used to make copies of objects. You can make single or multiple copies and the copies can be transformed according to certain rules you define in this menu. Note that the Copy command is one of the commands that can be undone in the Main Menu. The parameters entered in the Copy Menu are retained during a MORAY session. You can also create so-called reference objects with the Copy Menu. These are objects that are simply references to the object to be copied. They simply have their own transformations in addition to the original objects transformations, i.e. they are always transformed relative to their 'reference object'. 5.7.1 Scaling Factor Mode (SCL FCT) This button can be used to enable the Scaling Factor mode. When making multiple copies of an object, certain transformations are applied to successive copies. This button determines that the scaling of copies will be determined by taking the scaling components of the previous copy and multiplying each component by the corresponding number in one of the three individual edit controls beneath this button. 5.7.2 Scaling Offset Mode (SCL OFF) This button can be used to enable the Scaling Offset mode. When making multiple copies of an object, certain transformations are applied to successive copies. This button determines that the scaling of copies will be determined by taking the scaling component of the previous copy and adding the corresponding number in one of the three individual edit controls beneath this button. 5.7.3 X, Y and Z Scaling Values These buttons contain the actual numbers which will be applied to the scaling of successive copies of the object. Manual MORAY V2.0 Page 63 ---------------------------------------------------------------------- When in Scaling Factor mode, the X-Scale of the new copy is formed by taking the previous copy's X-Scale and multiplying it by the number in the first edit control (X value). The same procedure is repeated for the Y and Z components. When in Scaling Offset mode, the X-Scale of the new copy is formed by taking the previous copy's X-Scale and adding the number in the first edit control (X value). The same procedure is repeated for the Y and Z components. 5.7.4 Rotation Factor Mode (ROT FCT) This button can be used to enable the Rotation Factor mode. When making multiple copies of an object, certain transformations are applied to successive copies. This button determines that the rotation of copies will be determined by taking the rotation components of the previous copy and multiplying each component by the corresponding number in one of the three individual edit controls beneath this button. 5.7.5 Rotation Offset Mode (ROT OFF) This button can be used to enable the Rotation Offset mode. When making multiple copies of an object, certain transformations are applied to successive copies. This button determines that the rotation of copies will be determined by taking the rotation component of the previous copy and adding the corresponding number in one of the three individual edit controls beneath this button. 5.7.6 X, Y and Z Rotation Values These buttons contain the actual numbers which will be applied to the rotation of successive copies of the object. When in Rotation Factor mode, the X-Rotation of the new copy is formed by taking the previous copy's X-Rotation and multiplying it by the number in the first edit control (X value). The same procedure is repeated for the Y and Z components. When in Rotation Offset mode, the X-Rotation of the new copy is formed by taking the previous copy's X-Rotation and adding the number in the first edit control (X value). The same procedure is repeated for the Y and Z components. 5.7.7 Translation Factor Mode (XLAT FCT) This button can be used to enable the Translation Factor mode. When making multiple copies of an object, certain transformations are applied to successive copies. This button determines that the translation of copies will be determined by taking the translation components of the previous copy and multiplying each component by the corresponding number in one of the three individual edit controls beneath this button. Manual MORAY V2.0 Page 64 ---------------------------------------------------------------------- 5.7.8 Translation Offset Mode (XLAT OFF) This button can be used to enable the Translation Offset mode. When making multiple copies of an object, certain transformations are applied to successive copies. This button determines that the translation of copies will be determined by taking the translation component of the previous copy and adding the corresponding number in one of the three individual edit controls beneath this button. 5.7.9 X, Y and Z Translation Values These buttons contain the actual numbers which will be applied to the translation of successive copies of the object. When in Translation Factor mode, the X-Translation of the new copy is formed by taking the previous copy's X-Translation and multiplying it by the number in the first edit control (X value). The same procedure is repeated for the Y and Z components. When in Translation Offset mode, the X-Translation of the new copy is formed by taking the previous copy's X-Translation and adding the number in the first edit control (X value). The same procedure is repeated for the Y and Z components. 5.7.10 Orbiting There is one more button in the Copy Menu with three associated controls that do not exist as Main Menu transformation controls. This is the Orbit button. When this button is depressed, the object copies are transformed in a way that is usually quite tedious to accomplish. The translation parameters of successive copies are updated in such a way that the object copies are placed in orbit (in a circle) around the original objects origin. The numbers in the edit controls specify how many degrees each copy should be rotated around the individual edit control's axis in degrees. Since orbiting merely changes the copy's translation values, it would not truly seem to orbit, since its orientation (rotation) would remain the same. For this reason, when you enter an orbiting value, the corresponding rotation value is automatically set to the same value, but only if the rotation value at that time is zero. If you don't want the copies rotated, you need to reset the rotation value to 0. Also, the number of copies to create is automatically set to the number of copies you would need to make a complete circle of copies. See the tutorial for copying objects for an example. Manual MORAY V2.0 Page 65 ---------------------------------------------------------------------- 5.7.11 X, Y and Z Orbit Values These edit controls contain the number of degrees that each successive copy should be rotated around the original objects origin. Note that it does not produce sensible results when more than one of these controls contain a value. 5.7.12 Attach If the original object that you are copying has a parent (is part of a group), you have the option of attaching the copies to the same parent. If you want the copies to also be part of the original objects parent, then set this button to YES. 5.7.13 Copies Use this edit control to set the number of copies that you wish to create. When you enter an orbiting value, this number is automatically initialized to the number of copies that would be needed to create a complete circle of copies. 5.7.14 Reference This button can be used to create Reference Objects. Reference Objects are objects that have no definition themselves, but are pointers or links to existing objects. All they have for themselves are transformation parameters. Their geometric representation is defined by the object that they reference, in this case the original object. This is an extremely powerful tool and should be used whenever you have multiple copies of an object at symmetric places in the scene. A big advantage of this object type is that if you change the original object, all reference copies will also change. For example, if the original object is a group and you make 17 orbital copies with the reference button depressed, you get 17 reference objects. If you then go back to the Main Menu and add another object to the original group, the 17 copies automagically also get this object. 5.7.15 OK Once all the parameters have been setup, use this button to execute the copy function. 5.7.16 Cancel If you change your mind about copying the object, click on Cancel. 5.8 Object Menus Whenever you select an object, the object's Editing Menu appears at the bottom of the screen. The Editing Menu consists of a number of common controls and a number of controls that depend on the type of the object. Manual MORAY V2.0 Page 66 ---------------------------------------------------------------------- 5.8.1 Common Editing Menu The menus for all objects contain controls for changing things like the name and the visibility levels of the object. 5.8.1.1 Clear Texture (CLR) Use this button to clear the texture assigned to the currently selected object. 5.8.1.2 Texture Space (LOCAL/GLOBAL) Use this button to determine in what coordinate space the texture is to be applied to the object. Local means that the texture is applied in the objects coordinate space. This means that when scaling, rotating and translating the object, the texture will follow the object. Technically this means that in the raytracer file the texture is exported before the objects transformations are exported. Global means that the texture is applied in objects parents' coordinate space, or in world space if the object has no parents. Any transformations applied to the object will not be applied to its texture. Technically this means that in the raytracer file, the texture is exported after the objects transformations are exported. 5.8.1.3 New Texture Use this button as a short cut to call the Texture Editor. You can then create a new texture. Note that the texture that is active when you leave the Texture Editor will automatically be attached to the object. 5.8.1.4 Texture Name This label shows the name of the texture currently assigned to the object. It is simply a label button, you cannot click on this button. Use the Texture Listbox (see below) to assign or change the texture to the currently selected object. If the object does not have a texture assigned to it, but one of its parents does, the texture name is preceded by an asterisk ('*'). This means that the texture is inherited from the parent. 5.8.1.5 Scene Textures Listbox This listbox contains the list of textures that are available in this scene. Click on any texture in this list to assign it to the object. Manual MORAY V2.0 Page 67 ---------------------------------------------------------------------- 5.8.1.6 Clear Bound (CLR BOUND) Use this button to get rid of the bounding box currently assigned to the object. The bounding box is deleted. Note that both POV-Ray and Polyray have automatic bounding schemes. If you create a bound for an object, this bound will disable the automatic bounding of the raytracer for that object. 5.8.1.7 New Bound Use this button to add a manual bound to the object. MORAY will create a bounding box that encloses all of the object, including any children. Note that it always treats groups and CSG objects as unions. You can select the bound and transform it, if the default bound is not to your liking. Both POV-Ray and Polyray have automatic bounding schemes, which you are overriding by specifying a bounding box. Generally the raytracers do a good job of bounding. But specifically with CSG differences and intersections it can be of advantage to manually bound these. 5.8.1.8 Bound Name This label button shows you the name of the bounding box currently assigned to this object. 5.8.1.9 Set Name (NAME) Use this button to change the name of the object. Pressing this button pops up a line editor, allowing you to edit the current name. You must enter a unique name. 5.8.1.10 Current Name This label shows the current name of the object. 5.8.1.11 Parent Name This label shows the name of the objects parent, if it has one. 5.8.1.12 No Shadow flag (NOSHADOW) Use this flag to set the no_shadow attribute of the object. This parameter indicates that the object will not cast a shadow. 5.8.1.13 Relative Visibility This switchbutton indicates whether the object's visibility is relative or absolute. If the button is depressed, the visibility is relative to the parent's visibility. 5.8.1.14 Decrease Visibility Level Use this button to decrease the visibility level by one. Manual MORAY V2.0 Page 68 ---------------------------------------------------------------------- 5.8.1.15 Objects Visibility Level This displays the objects visibility level. If the number is prefixed by a plus sign, the objects visibility is relative to the parents visibility. This is another indicator like the relative button. 5.8.1.16 Increase Visibility Level Use this button to increase the visibility level by one . 5.8.1.17 Resulting Visibility Level This button displays the resulting visibility of the object. If the objects visibility is relative to its parent object, this button displays the actual (accumulated) visibility of this object. 5.8.2 Cylinder Menu The cylinder adds one button to the Common Editing Menu (see above, page 66). 5.8.2.1 Open Use this button to make the cylinder open. This removes the cap planes of the cylinder. Note that using an open cylinder in a CSG difference or intersection will result in incorrect renderings. 5.8.3 Cone Menu The cone adds three buttons to the Common Editing Menu (see above, page 66). 5.8.3.1 Open Use this button to make the cone open. This removes the cap plane of the cone. Note that using an open cone in a CSG difference or intersection will result in incorrect renderings. 5.8.3.2 Lower Radius (LOWER RAD.) This button can be used to set the radius of the cone at the base (Z=0). 5.8.3.3 Upper Radius (UPPER RAD.) This button can be used to set the radius of the cone at the top (Z=1). 5.8.4 Torus Menu The torus adds four buttons to the Common Editing Menu (see above, page 66). Manual MORAY V2.0 Page 69 ---------------------------------------------------------------------- 5.8.4.1 Minor, Major Radius Use these buttons to define the torus via the minor and major radius. The values you enter are converted to the correct Inner and Outer radius. 5.8.4.2 Inner, Outer Radius Use these buttons to define the torus via the radius of the outer edge of the torus and the radius of the inner edge. 5.8.5 Disc Menu The disc adds one button to the Common Editing Menu (see above, page 66). 5.8.5.1 Inner Radius Use this button to make a hole in the disc. If you set this value to a value larger than 0.0, the disc will have a hole. 5.8.6 Sweep Menus The sweep adds one button to the Common Editing Menu (see above, page 66). 5.8.6.1 Extended Edit Use this button to call the sweep editor (see Sweep Editor, page 88). 5.8.7 Bezier Patch Menu The bezier patch adds three buttons to the Common Editing Menu (see above, page 66). 5.8.7.1 U Steps, V Steps and Flatness The values in the U- and V-Steps buttons determine the number of recursive subdivisions that the raytracer should at least do when converting the patch to smooth triangles internally, before rendering. The value in the Flatness button determines whether part of a patch should be divided into smaller parts, or not. See POVRAY.DOC, section Bicubic_Patch for a more detailed explanation. 5.8.8 Heightfield Menu The heightfield adds one button to the Common Editing Menu (see above, page 66). 5.8.8.1 Set Filename (FILE) Use this button to set the filename of the heightfield. Clicking on this button will pop up the File Selector (see File Selector, page 57) for you to choose an image file for the heightfield. Manual MORAY V2.0 Page 70 ---------------------------------------------------------------------- 5.8.8.2 Read file (READ) This button will become active when the type of the heightfield file is a TGA file. It will make MORAY read in the TGA file and display it in a wireframe representation. If your heightfield is a GIF (or other) file, this button will be grayed. 5.8.8.3 Set Waterlevel Slider (WATER) This slider allows you to set the waterlevel of the heightfield. Any part of the heightfield that is under the waterlevel is cut away. If you have previously read in the heightfield, you can see what parts will be cut away. 5.8.8.4 Smooth This tells the raytracer to smoothen the heightfield. Normally heightfields are rendered as triangle-meshes. Using this flag smoothes the normals between the triangles, so that it looks like the are no hard edges between individual triangles. 5.8.8.5 Adjusting Proportions (ADJ SCL) If you have used a TGA file as a heightfield and have read it in, this button allows you to adjust the scaling of the height field to reflect the aspect ratio of the image file. It does this by adjusting the Y-scale, according to the X-scale. For example, if the image file is 200x100 and the heightfield scaling is 1,1,1, the new scaling will be 1,0.5,1. 5.8.8.6 Display Steps (STEP) This allows you to adjust the resolution of the heightfield's wireframe display in MORAY. MORAY will take only every x number of pixels of the image (where x is the value in this button) and connect it to neighboring pixels. When you first read in a heightfield image, MORAY will set this value in such a way that you will get about 20 subdivisions in X and Y directions. Note that setting this button to low values, can dramatically increase the number of edges and vertices that are displayed, slowing down the program by a whole lot and using a lot of memory. It can also cause the edge and vertex list to overflow, causing incorrect wireframes to be displayed. 5.8.8.7 Image Resolution This label button shows you the resolution of the heightfield image file, if you have previously read it in. 5.8.9 RAW Triangles The RAW triangle adds four buttons to the Common Editing Menu (see above, page 66). Manual MORAY V2.0 Page 71 ---------------------------------------------------------------------- 5.8.9.1 Set Filename (FILE) Use this button to bring up a File Selector (see File Selector, page 57) that allows you to choose a RAW file. Once the name has been set you can actually read in the file with the READ button. 5.8.9.2 Read file (READ) This button will only be active if you have previously set the filename to an existing RAW file. MORAY will read in the RAW file, and perform a triangle reduction algorithm to determine what it should display. Displaying complete RAW files tends to clutter up the display, so MORAY calculates a set of lines to display, based on the Feature Angle. This is for the wireframe display inside MORAY only and has nothing to do with the accuracy of the rendered scene. The raytracer is fed all the triangles. MORAY only supports reading a mesh file of less than 500K directly. This is because a triangle mesh uses a lot of memory that is not really needed for modeling, only for exporting. For meshes bigger than 500K, you should use Thomas Baier's handy utility to convert the RAW mesh to a UDO/INC file pair. This utility supports smoothing and will generate an INC file containing all the triangles as well as an UDO file for creating a User-Defined object (see page 109). 5.8.9.3 Feature Angle This angle determines when MORAY considers two adjacent triangles to form a flat surface. This setting only affects the way the mesh is displayed in MORAY and does not affect the accuracy of the rendered scene. A setting of 0.1 degrees will make only really coplanar triangles disappear, whereas a setting of 15 degrees (a useful default) will remove reasonably planar triangles. You can go as high as 60 degrees and still be able to see the shape of the mesh in MORAY, while keeping the wireframe edges to a minimum. Since you are mostly only concerned with placing a RAW object, you will usually not need a full wireframe representation. 5.8.9.4 Write UDO file This function allows you to write a UDO file of this object. This function is only useful if you have an INC file of this mesh. See the reference under Read File for a discussion of a good UDO generator. 5.8.10 Blob Menu The blob adds three buttons to the Common Editing Menu (see above, page 66). Manual MORAY V2.0 Page 72 ---------------------------------------------------------------------- 5.8.10.1 Threshhold This is the threshold of the blob. Please see the raytracer documentation for a detailed explanation of blobs. 5.8.10.2 Import Use this button to import the Blob. MORAY currently supports importing BLB files from BlobSculptor and WinBlob. 5.8.10.3 Evaluate Use this button to evaluate the blobs into an approximation of the surface. You will be asked for a resolution between 10 and 40. The default of 20 is a good value to use. If the blob is complex, it may not be possible to evaluate at the resolution you requested. In this case try with a lower resolution. 5.8.11 Pointlight Menu The pointlight adds three buttons and four sliders to the Common Editing Menu (see above, page 66). 5.8.11.1 Light Color Display This button area simply displays the current color and intensity of the light. 5.8.11.2 Decrease Light Brightness This button decreases light intensity by 5% of its current setting. 5.8.11.3 Light Color Sliders Use these sliders to change the color of the light. The top three sliders change the red, green and blue channels respectively, while the bottom sets all three sliders to the same value (white lights). 5.8.11.4 Increase Light Brightness This button increases light intensity by 5% of its current setting. 5.8.12 Spotlight Menu The spotlight adds three sliders to the Pointlight Editing Menu (see above, page 72). 5.8.12.1 Falloff Angle(FALL.) This angle defines the outer cone of the spotlight. There will be no light cast from this spotlight outside the cone defined by this angle. Manual MORAY V2.0 Page 73 ---------------------------------------------------------------------- There is a gradual increase in light intensity from the falloff angle to the radius angle. Setting these two values close together results in a rapid transition from shadow to light (hard-edged spot). Leaving a gap between them causes a slower transition from dark to light (soft-edged spot). 5.8.12.2 Radius Angle (RAD.) This angle defines the inner cone of the spotlight. Objects inside this cone will be fully illuminated by the light. The radius angle is always smaller than or equal to the falloff angle. There is a gradual increase in light intensity from the falloff angle to the radius angle. Setting these two values close together results in a rapid transition from shadow to light (hard-edged spot). Leaving a gap between them causes a slower transition from dark to light (soft-edged spot). 5.8.12.3 Graphical Length (LEN) This slider can be used to lengthen the graphical display of the spotlight cone in MORAY. It has absolutely no effect on the rendering of the scene and is only an aid for you in placing the spotlight. See Tutorial Basic Interaction with MORAY, page 13 for more information about placing a spotlight in the scene. 5.8.13 Arealight Menu The arealight adds three buttons and a slider to the pointlight's Editing Menu (see above, page 72). Please see the POV-Ray documentation for a detailed explanation of arealights. 5.8.13.1 Light size (PSEUDO LIGHTS) This determines the number of pseudo light sources in the area light. POV-Ray calculates the shading of scenes with area lights by treating the area light as an array of point lights. These two values define the dimensions of the array. If you want to make a single row of lights (like a neon tube) enter a setting of 1 for the X value. The wireframe will show where individual point lights on the arealight grid are. Note that the arealight extends one unit in the X and Y direction and is positioned at Z=0. Use the normal scaling and translation techniques to change the geometric size and position of the area light. 5.8.13.2 Adaptive setting This parameter is used by POV-Ray to determine whether to always look at all pseudo lights or whether to do adaptive sampling. Please see the POV-Ray documentation for a detailed explanation of the area light. Manual MORAY V2.0 Page 74 ---------------------------------------------------------------------- 5.8.13.3 Jittering This button can be used to turn jittering on when rendering area lights. This results in less banding of the shadows cast by this area light. 5.8.14 Group Menu The group adds four buttons and a listbox to the Common Editing Menu (see above, page 66). 5.8.14.1 Objects in Group This listbox contains the list of objects that belong to this group. Clicking on one of the objects highlights this subobject in the views. You can double-click on a subobject to actually select the object. 5.8.14.2 Add Object (ADD IN PLACE, ADD FROM ORIGIN) Use these buttons to add an object to the group. Since adding an object to a group causes the transformations of the group to be applied to the object before the transformations of the object itself, simply placing the object in the group can result in the object moving or changing shape (provided the group has been transformed in some way). Objects can be added to groups in two ways. If your object is already positioned and sized at the correct place, use the ADD IN PLACE function to tell MORAY to calculate the object's new transformation values at its present position. With the ADD IN PLACE function, the object will remain where it is when added to the group. It would, however, still be affected by subsequent transformations of the group or object. Use the ADD FROM ORIGIN to not change the object's existing transformations and to apply any transformations that belong to the group. If the group has been transformed in some way, the added object will be influenced by the transformations of the group. 5.8.14.3 Ungroup Object (UNGROUP IN PLACE, UNGROUP TO ORIGIN) Use these buttons to remove an object from the group. First you need to select the object to remove by clicking on it in the listbox of objects. Since the transformations of the Group are applied to the transformations of the object you're ungrouping, simply removing the object from the group may make the object move to a different position (or change shape). This is what happens when you click on the UNGROUP TO ORIGIN button. Using the UNGROUP IN PLACE button adjusts the object's transformations, so that it will stay exactly where it was when it was still part of the group. Manual MORAY V2.0 Page 75 ---------------------------------------------------------------------- 5.8.15 CSG Menu The CSG object adds three buttons to the Group Editing Menu (see above, page 74). 5.8.15.1 Cycle Object Order (CYCLE OBJECTS) This button can be used to change the order of the objects in the CSG's object list. Since for CSG the object order is important, you may have added the object that should come first in the last position. In this case you can use this button until it's at the first position. 5.8.15.2 CSG Type (OPER) Use this combobox to determine the type of CSG. MORAY supports four CSG operations: - Union: The surfaces of all objects are visible. - Intersection: The surfaces that are inside all objects are visible. - Difference: The surfaces of the first object not inside the following objects and the surfaces of the following objects that are inside the first object are visible. - Merge: The surfaces of all objects that are not inside any of the other objects are visible. Externally this means the same as union, except that if the object is made transparent, there are no surfaces inside the object. 5.8.15.3 Evaluate/ Unevaluate This button evaluates the currently selected CSG and all objects below it (in its hierarchy). The evaluation will give you a rough indication of what the object looks like after the CSG operation. 5.8.16 Camera Menu The camera adds eight buttons to the Common Editing Menu (see above, page 66). 5.8.16.1 Translation Point (POSITION + LOOKAT) These buttons determine which part of the camera are moved in translation mode. If POSITION is depressed, moving will translate the position of the camera. If LOOKAT is depressed, moving will translate the look at point of the camera. 5.8.16.2 Viewing angle This button determines the horizontal viewing angle of the camera, i.e. how many degrees of the scene are spanned horizontally by the camera aperture. Click on the button to directly set the value. This value is also stored in the Z- component of the camera scale. Manual MORAY V2.0 Page 76 ---------------------------------------------------------------------- 5.8.16.3 Position Reference This button can be used to place the camera relative to another object. Clicking on this button brings up the Object Browser (see Object Browser, page 91) in which you need to select an object. The camera will then be placed relative to the origin of this object in the scene. Note that only the position of the objects origin is used to translate the position of the camera. Scaling or rotating the object that the camera references does not change the camera position. This also means that if you set both Position and Lookat Reference to the same object, rotating that object will not change camera orientation. 5.8.16.4 Lookat Reference This button can be used to place the lookat point of the camera relative to another object. Clicking on this button brings up the Object Browser (see Object Browser, page 91) in which you need to select an object. The camera lookat point will then be placed relative to the origin of this object in the scene. 5.9 Texture Editor 5.9.1 Create Texture (CREATE) Use this button to create a new texture. A line editor pops up, asking you to enter a name for the new texture. A unique default name is provided, which can be changed later. This texture is then added to the list of textures in the scene. 5.9.2 Import A Texture Definition (GET) This button also creates a new texture, but allows you to start the textures with a copy of one of the stock POV-Ray texture contained in the TEXTURES.INC file. A listbox will pop up with all available textures. Click on the one you want to import and it will be created and added to the list of textures in the scene. 5.9.3 Delete Texture (DELETE) Use this button to delete the currently selected texture in the list of textures in the scene. If the texture is being used by an object, you will not be able to delete the texture. 5.9.4 Delete Unused Textures (DEL UNUSED) This button deletes any textures in the list of texture in the scene that are not currently in use by any objects. Manual MORAY V2.0 Page 77 ---------------------------------------------------------------------- 5.9.5 Copy A Texture (COPY) This button creates a copy of the currently selected texture and adds it to the list of textures in the scene. It uses a new name, which is formed by either incrementing or adding a number at the end of the texture name. 5.9.6 Exit Texture Editor (DONE) Use this button to exit the texture editor. Nothing is lost by doing this, i.e. there is no need to save anything. 5.9.7 List Of Textures In Scene This listbox contains a list of all available textures in the scene. The one that is currently selected is the one that is loaded into the editor and can be changed by all the sliders and controls. 5.9.8 Preview Display This area is where MORAY displays a preview of the texture if you render it with the selected raytracer (see below). The preview is not saved, nor is it retained for when you re-enter the Texture Editor later. 5.9.9 Make Preview (PREVIEW) This button calls the currently selected raytracer to render a sample scene with the currently selected texture applied to a primitive. After the preview has been rendered, it is displayed in the Preview Display (see above). 5.9.10 Object For Preview (OBJECT) This combobox allows you to choose the object to which the current texture should be applied for the preview render. You can choose from a number of primitives, as well as adding your own (see Configuration, page 101). 5.9.11 Background For Preview (BACKGND) This combobox allows you to choose whether the preview should include a background or not. You can choose to render a floor and a wall, both or neither. By default the floor is checkered black and white, and the wall is horizontally striped black and white. To change the appearance of either wall or floor see Configuration, page 101. 5.9.12 Texture Type (TYPE) This combobox is used to determine what type of texture you are designing. The default 'NORMAL' is a normal single-layered texture. To make a layered texture, choose the 'LAYERED' option. This turns the current texture into the first layer. Manual MORAY V2.0 Page 78 ---------------------------------------------------------------------- To make a Tiled texture, choose the 'TILED' option. This turns the current texture into the first tile. To make a material map, choose the 'MATERIAL MAP' option. This turns the current texture into the first layer. You can turn a layered, tiled or material map texture back into a normal texture if you delete all layers except for one. You cannot convert directly from layered and material map to tiled. 5.9.13 Rename A Texture Layer (RENAME) Use this button to rename the highlighted texture or texture layer. A line editor pops up, allowing you to edit the name. You must enter a unique name for each texture and texture layer. 5.9.14 Add A Layer (ADD LAYER) Use this button to add a layer to the texture. This button is only available for tiled textures (provided only one tile has been defined), layered textures and material map textures. The new layer is a copy of the last layer currently in the list of layers. 5.9.15 Delete A Layer (DEL LAYER) Use this button to delete the currently selected layer of the texture. 5.9.16 Reorder Layers (MOVE UP) Use this button to re-order layers in a texture. The currently selected layer is moved up in the list by one. 5.9.17 List Of Layers (AVAILABLE LAYERS) This listbox contains the list of layers that a non-normal texture currently consists of. The currently selected layer is highlighted and its parameters are loaded into the sliders and buttons in the pigment, normal and finish sections. 5.9.18 Pigment Buttons 5.9.18.1 Type (TYPE) This combobox allows you to choose the type of pigment that the currently selected layer of the texture should use. You can choose from all available POV-Ray texture types. The display in the pigment block will change and adapt according to the pigment type. Manual MORAY V2.0 Page 79 ---------------------------------------------------------------------- 5.9.18.2 Turbulence (TURB), Octaves, Omega and Lambda These buttons are used to set the turbulence parameters of the pigment. They are not available for a solid-color pigments. Use these buttons to set the number of octaves, the omega and the lambda values that the turbulence function should use for this texture (see POV-Ray Manual, section 5.4.1.5.2 through 5.4.1.5.4). 5.9.18.3 Frequency and Phase Use these buttons to set the frequency and phase values for the texture (see POV-Ray Manual, section 5.4.1.5.6). 5.9.18.4 Color and Colormap Buttons The blocks immediately below the frequency and phase buttons are where MORAY displays the colors and colormaps that you define for a texture. This display consists of two areas; the upper and thicker area is where the color or colormap is displayed; the lower, thinner area is where a grayscale representation of the filter values is displayed. A black filter value means no light can get through, i.e. the texture is opaque. Where the filter is white, the texture becomes transparent. 5.9.18.5 Colormap Arrows Below the actual colormap display you will see lines with arrows that run up to the colormap. This is only for colormaps, not for solid, checker, hexagon or imagemapped textures. These arrows indicate where individual entries are located in the colormap. There are major tickmarks every 0.1 units and minor tickmarks every 0.05 units. To change the position of a colormap entry, move the cursor over the arrow tip of the entry you want to move, click, hold and drag the arrow from side to side. Note that you can only move the entry up to where the next entry is situated, i.e. you cannot overlap entries. You also cannot move the first and the last entry positions, since these are always at 0.0 and 1.0. 5.9.18.6 Red, Green and Blue Sliders These sliders change the actual color of the currently selected color entry. The color is shown in the big rectangle next to the sliders. If the current color entry is part of a colormap, then the colormap is also updated to reflect the change in color to this entry. Manual MORAY V2.0 Page 80 ---------------------------------------------------------------------- Any changes to the Red, Green and Blue sliders are automatically converted to HSL values and the HSL sliders automatically updated. You can thus use HSL and RGB input interchangeably. 5.9.18.7 Hue, Saturation and Luminance Sliders These sliders change the actual color of the currently selected color entry. The color is shown in the big rectangle next to the sliders. If the current color entry is part of a colormap, then the colormap is also updated to reflect the change in color to this entry. Any changes to the Hue, Saturation and Luminance sliders are automatically converted to RGB values and the RGB sliders automatically updated. You can thus use HSL and RGB input interchangeably. Hue is the color tone of the color. Saturation is how far the individual RGB colors are apart from each other. Luminance is how bright or dark the color is. 5.9.18.8 Filter Slider This sets the filter value of the currently selected color entry. A grayscale representation is shown in the smaller rectangle below the color display rectangle (white is transparent, black is opaque). If the color entry is part of a colormap, then the bar below the colormap will also be updated to show the filter values. 5.9.18.9 Add Colormap Entry (ADD) Use this button to add a colormap entry to the colormap. This button will add a new entry after (to the right of) the one currently selected. The new entry will be placed halfway between the currently selected entry and the next entry and will have the color that was previously at that point, which means that adding an entry does not change the colormap until you move the entry or the color. You cannot add an entry after the rightmost entry at 1.0. 5.9.18.10 Delete Colormap Entry (DEL) This button will delete the currently selected entry. Entries around this entry will not be changed or moved. You cannot delete the first and last entries. 5.9.18.11 Copy Color Entry (COPY) You can use this button to copy the color of one colormap entry to another entry. Manual MORAY V2.0 Page 81 ---------------------------------------------------------------------- After clicking on this button, the cursor will turn into an arrow with the letters FRM attached. Click the mouse over the color entry you want to copy from. The cursor will now have the letters TO attached to it. Click on the color entry you wish to copy the color to. The two entries now have identical color and filter settings. 5.9.18.12 Set Colormap Entry Position The button with the number in it shows you the position of the colormap entry in the colormap. If you want to place a colormap entry at some specific value, but are finding it hard to do so graphically, you can enter it here by clicking into the button and typing the value. 5.9.18.13 Import Color (GET) This button can be used to import a color into the currently selected color entry from the list of colors defined in COLORS.INC (actually in MRYTXTR.LST, but this contains the list from COLORS.INC. See Configuration, page 101). You will be presented with a listbox of colors to choose from. Click on the color you want and it will be loaded in the currently selected color entry. 5.9.18.14 Reverse The Colormap (FLIP) You can use this button to reverse the colormap. The position of the entries are flipped around the center of the colormap. 5.9.18.15 Scaling, Rotation and Translation These buttons allow you to apply a set of transformations to the pigment block of your texture. The transformations apply to all instances of this texture in your scene. Every time you apply this texture to an object a new 'instance' of this texture is created. This means that even though you can attach this one texture to many objects, each one can be individually transformed. Using these settings is useful for an imagemap, to transform it so that it is 2 units wide and centered at the origin. This makes it easier to use once assigned to an object. To do this you would set X and Y scale to 2.0 and X and Y translation to -1.0. 5.9.18.16 Mandelbrot Pigment Maximum Iteration This button appears when you have selected the Mandel pigment. It specifies the maximum number of iterations to calculate for the fractal pattern. Manual MORAY V2.0 Page 82 ---------------------------------------------------------------------- 5.9.18.17 Imagemap Filename (FILE) This button is used to specify the name of the file to use for imagemap textures. It pops up a File Selector. You can also click into the field with the filename and enter a filename directly. 5.9.18.18 Mapping Use this button to choose what type of mapping you wish to use. Currently supported are: - planar: the image is projected along the Z-axis. - spherical: the image is projected onto a sphere. The top edge of the image is merged at the top pole of the sphere, the bottom edge at the bottom pole. The middle of the image spans the equator of the sphere. The left edge of the image starts at -x and goes counterclockwise around the sphere. - cylindrical: the image is projected onto a cylinder. The left edge of the image starts at -X and goes counterclockwise around the cylinder. - toroidal: the image is projected onto a torus. 5.9.18.19 Tiling Use this button to determine whether the imagemap should appear only once on the object, or should be tiled across the object. 5.9.18.20 Interpolation (INTERPOL) This button determines the method use to interpolate between pixels of the imagemap. See section 5.4.1.4.5 of the POV-Ray manual for details. 5.9.18.21 Filter Type This button determines if any and what type of filtering is to take place with the imagemap. - None: No filtering takes place, the imagemap is opaque. - Single List: Certain indexes in the imagemap are to have filter values defined. - All: The whole imagemap is to have a filter value. 5.9.18.22 Filter All Value This value is available when the Filter Type is set to All. It determines the filter value to be applied to all of the imagemap. Manual MORAY V2.0 Page 83 ---------------------------------------------------------------------- 5.9.18.23 Filter Entries List This listbox is available when the Filter Type is set to Single List and contains a list of indexes and filter values that are to be applied to the imagemap. 5.9.18.24 Add A Filter Index This button is available when the Filter Type is set to Single List. It allows you to add an entry to the list of filter values. You will first be prompted for the colormap index that you wish to apply a filter value to and then the actual filter value. 5.9.18.25 Delete A Filter Index This button is available when the Filter Type is set to Single List. It deletes the currently selected filter entry that is highlighted in the Filter Entries List. 5.9.18.26 Delete All Filter Indexes This button is available when the Filter Type is set to Single List. It deletes all the filter entries in the Filter Entries List. You will be asked to verify this choice. 5.9.18.27 Change A Filter Index This button is available when the Filter Type is set to Single List. It is used to change the filter value of the currently selected Filter Entry. 5.9.19 Normal Buttons 5.9.19.1 Normal Type (TYPE) This combobox allows you to choose the type of normal that the currently selected layer of the texture should use. You can choose from all available POV-Ray normal types. The display in the normal block will change and adapt according to the normal type. 5.9.19.2 Bump Amount (AMNT) This determines the amount of bumpiness to use. You can think of this as specifying the amplitude of any normal perturbation you add. Good values are around 0.1 to 0.2. 5.9.19.3 Turbulence, Octaves, Omega and Lambda These buttons are used to set the turbulence parameters of the normal. They are not available for a smooth normals. Use these buttons to set the number of octaves, the omega and the lambda values that the turbulence function should use for this texture (see POV-Ray Manual, section 5.4.2.7). Manual MORAY V2.0 Page 84 ---------------------------------------------------------------------- 5.9.19.4 Frequency and Phase Use these buttons to set the frequency and phase values for the texture (see POV-Ray Manual, section 5.4.2.7.2). 5.9.19.5 Bumpmap Filename (FILE) This button is available when you select Bumpmap as the normal type. It allows you to determine the filename to be used as a bumpmap. 5.9.19.6 Color Usage (USE) This button determines how to interpret the data in the bumpmap. If it is set to Color Index, the bumps are rendered in such a way that the highest index (255) is the peak of the bumps and the lowest index (0) the valley of the bumps. Color Index only makes sense with 8-bit indexed image files (like GIF). If it is set to Actual Color, POV-Ray converts the color to a grayscale value and uses that as an indication of the height of the bump. White would be the highest peak and black the lowest valley. 5.9.19.7 Mapping Use this button to determine how the normal perturbations are applied onto the object that this texture is attached to. Currently supported are: - planar: the bumps are applied along the Z-axis. - spherical: the bumpmap is projected onto a sphere. The top edge of the image is merged at the top pole of the sphere, the bottom edge at the bottom pole. The middle of the image spans the equator of the sphere. The left edge of the image starts at -x and goes counterclockwise around the sphere. This leads to a distortion of the bumps (they will be crowded at the poles). - cylindrical: the bumpmap is projected onto a cylinder. The left edge of the image starts at -X and goes counterclockwise around the cylinder. - toroidal: the bumpmap is projected onto a torus. 5.9.19.8 Tiling Use this button to determine whether the bumpmap should appear only once on the object, or should be tiled across the object. 5.9.19.9 Interpolation (INTERPOL) This button determines the method use to interpolate between pixels of the bumpmap. See section 5.4.2.6.6 of the POV-Ray manual for details. Manual MORAY V2.0 Page 85 ---------------------------------------------------------------------- 5.9.19.10 Scaling, Rotation and Translation These buttons allow you to apply a set of transformations to the normal block of your texture. The transformations apply to all instances of this texture in your scene. Everytime you apply this texture to an object a new 'instance' of this texture is created. This means that even though you can attach this one texture to many objects, each one can be individually transformed. Using these settings is useful to transform a bumpmap so that it is 2 units wide and centered at the origin. This makes it easier to use once assigned to an object. To do this you would set X and Y scale to 2.0 and X and Y translation to -1.0. 5.9.20 Finish Buttons 5.9.20.1 Diffuse, Ambient These sliders can be used to set their corresponding values for the raytracer. 5.9.20.2 Phong, Phong Size (PHNG SZ) Use these sliders to set the raytracer's corresponding values. Phong and Phongsize are normally used together to determine the highlights on objects. An alternative lighting model for highlights can be used by leaving Phong set to 0 and specifying specular and roughness (see below) instead. 5.9.20.3 Specular (SPECLR), Roughness (ROUGHN) These values determine where and how highlights appear on the objects. These can be used instead of the Phong and Phongsize pair (see above). 5.9.20.4 Reflection (REFLECT) This slider determines how much the surface should reflect its surroundings. A value of 1.0 would be a perfect mirror, a value of 0.1 is shiny plastic. Note that setting this slider to something other than zero can double the time it takes to trace rays that hit this object. 5.9.20.5 Brilliance (BRILLNC) This slider determines the brilliance of the surface. It is similar to the Phongsize parameter, but works with the Diffuse component (see the POV-Ray manual, section 5.4.3.1.2). 5.9.20.6 Refraction (REFRACT) This button determines whether the object refracts light. Manual MORAY V2.0 Page 86 ---------------------------------------------------------------------- 5.9.20.7 Index Of Refraction (IOR) This slider determines the index of refraction of this texture. It is only used when refraction (see above) is on. You can use the GET button to load a value from an list of common IOR values (see Configuration, page 101). 5.9.20.8 Crand This button can be used to make the texture look a little (or a lot) grainy. It does this by making the texture a random amount darker. Since the amount applied is totally random and not dependent on position, do not use this variable in animations. 5.9.20.9 Metallic (TYPE) Use this button to specify whether the object is metallic or not. The highlight on a normal (non-metallic) object is always the color of the light source that is being 'reflected'. On a metallic object the color of the specular highlight (phong) is determined by the color of the object itself and not by the light source. 5.10 Bezier Patch Editor 5.10.1 X-, Y- and Z-Mirror These buttons mirror the entire patch in the specified direction. 5.10.2 Snapping Points (SNAP POINTS) This button will snap the coordinates of the selected points to the nearest multiple of the number that you enter in the line editor that pops up. The settings of the arrestor buttons (activated by pressing 'X', 'Y' or 'Z') determine which coordinates will be snapped. When you click on this button the title of the line editor shows which coordinates will be snapped. 5.10.3 Marked Point Number (MARKED) This label button displays the number of currently selected (marked) points on the control mesh. 5.10.4 Mark All This button selects (marks) all points of the control mesh. Manual MORAY V2.0 Page 87 ---------------------------------------------------------------------- 5.10.5 Unmark All This button deselects (unmarks) all points on the control mesh. 5.10.6 Toggle Marked This button toggles the selection state of the points of the control mesh. Selected points are deselected, deselected points are selected. 5.10.7 Scaling Mode (SCL) This button sets the transformation mode to Scaling mode, similar to the Main Menu. When dragging in the views, the selected points will be scaled, relative to the origin according to mouse movement. 5.10.8 Uniform Scaling Mode (USCL) This does the same as Scaling mode, except that it treats all three dimensions the same. In effect this actually moves all selected points away from or towards the origin. 5.10.9 Local Scaling Modes (LOCAL) This is a modifier of the scaling modes. You first select the scaling mode you need (uniform or non-uniform) and then select the Local next to the scaling buttons. When this button is depressed, the scaling that takes place is not relative to the origin, but rather to the 'center of gravity' of the selected points. 5.10.10 Rotation Mode (ROTATE) This button selects rotation mode as the transformation mode. Dragging in the views will cause all selected points to rotate about the origin. 5.10.11 Local Rotation Mode (LCOAL) This modifier allows you to rotate the selected points about the 'center of gravity' of the selected points. 5.10.12 Translation Mode (TRANSLATE) This button sets the transformation mode to translation. Dragging in the views translates all selected points. 5.10.13 Divisions Slider This slider can be used to set the amount of detail that you can see of the patch. This is purely a MORAY-internal control and has absolutely no effect on what is exported to the raytracer. Manual MORAY V2.0 Page 88 ---------------------------------------------------------------------- If the display is not updated fast enough and you can do with less detail, lower the slider setting. If you cannot see enough detail on that curve you're designing, increase the slider setting. It is recommended that you set the slider to a low a setting as possible once you leave the Bezier Editor, since that will save memory and redraw time. 5.10.14 Show Mesh This button can be used to hide and show the actual mesh (bezier patch). If you want to just see the control mesh you can deactivate this button and activate the SHOW CTRL MESH button. You can still work with the mesh in the normal way, i.e. selecting and moving points, regardless of whether this button is activated or not. 5.10.15 Show Control Mesh (SHOW CTRL MESH) This button can be used to hide and show the control mesh of the bezier patch. If you want to just see the actual bezier patch you can deactivate this button and activate the SHOW MESH button. You can still work with the mesh in the normal way, i.e. selecting and moving points, regardless of whether this button is activated or not. This means that activating the SHOW MESH and deactivation the SHOW CTRL MESH button allows you to see the mesh only as you move the control points about. 5.10.16 Continuous updates (CONT. UPDATE) Normally only the viewport that you work in is updated while you move points about. Only when you release the mouse button are the other views updated. If this button is activated all the views are updated during these transformations. This is only recommended for really fast machines. 5.10.17 Done Use this button to leave the Bezier Editor. 5.11 Sweep Editor 5.11.1 X- and Y-Mirror These buttons mirror the entire sweep in the specified direction. Manual MORAY V2.0 Page 89 ---------------------------------------------------------------------- 5.11.2 Insert Node This button allows you to insert nodes in the sweep. After clicking on this button, the letters 'INS' are attached to the cursor. Move the cursor to the point on an existing line where you want the new node to be added and then click. 5.11.3 Delete Node This button allows you to delete nodes from the sweep. After clicking on this button, the letters 'DEL' are attached to the cursor. Move the cursor to the node that you want to delete and then click. 5.11.4 Snap Nodes This button will snap the coordinates of the selected nodes to the nearest multiple of the number that you enter in the line editor that pops up. The settings of the arrestor buttons (activated by pressing 'X', 'Y' or 'Z') determine which coordinates will be snapped. When you click on this button the title of the line editor shows which coordinates will be snapped. 5.11.5 Marked Node Number This label button displays the number of nodes that are currently selected. If the sweep type is glyph it also shows whether you have selected points that are only on the curve or only off the curve or whether you've selected both on- and off-curve points. 5.11.6 Mark All This button selects all the nodes of the sweep. 5.11.7 Unmark All This button deselects all the nodes of the sweep. 5.11.8 Toggle Marked This button toggles the selection state of the points of the control mesh. Selected points are deselected, deselected points are selected. 5.11.9 On/Off Curve This button allows you to determine whether the selected nodes should be on or off a glyph. This is only active if the selected sweep type is GLYPH (see Sweep Type below). 5.11.10 Scaling Mode (SCL) This button sets the transformation mode to Scaling mode, similar to the Main Menu. When dragging in the view, the selected nodes will be scaled, relative to the origin according to mouse movement. Manual MORAY V2.0 Page 90 ---------------------------------------------------------------------- 5.11.11 Uniform Scaling Mode (USCL) This does the same as Scaling mode, except that it treats both dimensions the same. In effect this actually moves all selected nodes away from or towards the origin. 5.11.12 Local Scaling Modes (LOCAL) This is a modifier of the scaling modes. You first select the scaling mode you need (uniform or non-uniform) and then select the Local next to the scaling buttons. When this button is depressed, the scaling that takes place is not relative to the origin, but rather to the 'center of gravity' of the selected nodes. 5.11.13 Rotation Mode (ROTATE) This button selects rotation mode as the transformation mode. Dragging in the view will cause all selected nodes to rotate about the origin. 5.11.14 Local Rotation Mode (LOCAL) This modifier allows you to rotate the selected nodes about the 'center of gravity' of the selected nodes. 5.11.15 Translation Mode (TRANSLATE) This button sets the transformation mode to translation. Dragging in the view translates all selected nodes. 5.11.16 Divisions Slider This slider can be used to set the amount of detail that you can see of the patch and that is exported to the raytracer. 5.11.17 Top Z Coordinate (TOP Z) This button allows you to set the Z-value of the top cap plane of a translational (and tapering) sweep. This value may not be less than the Lower Z Coordinate. 5.11.18 Bottom Z Coordinate (BOTTOM Z) This button allows you to set the Z-value of the bottom cap plane of a translational (and tapering) sweep. This value may not be higher than the Lower Z Coordinate. 5.11.19 Sweep Type This combobox determines what kind of spline is used to connect two nodes of the spline. - Linear: This connects two nodes by means of a straight line. - Quadratic: This connects two nodes by calculating a quadratic spline between the previous node and the two nodes. Manual MORAY V2.0 Page 91 ---------------------------------------------------------------------- - Cubic: This connects two nodes by calculating a cubic spline that goes through the previous node, the two nodes to connect and the next node. - Glyph: This connects two nodes either by a straight line or a bezier curve, depending on which points are on and which are off the line. Note that the sweeps are exported as triangles to the raytracers that do not support the corresponding format. The linear, quadratic and cubic are exported as triangles to POV-Ray 2.2 and Polyray. Once POV-Ray 3.0 is released, an update of MORAY will export these three as POV-Ray primitives. The Glyph sweep type is exported as triangles to POV-Ray and as a primitive to Polyray. 5.11.20 Importing a Glyph (IMPORT) This button lets you import a glyph definition from a file. The format of the file is very simple. It is a text file with one 2D coordinate on each line (similar to RAW files) and a flag. MORAY first searches for a line starting with the string '[GLYPH]'. It then proceeds to read two floating point numbers for the X and Y coordinates and an integer that indicates whether the point is to be on (the integer is zero) or off (the integer is non-zero) the curve. MORAY stops reading when it encounters a line starting with '[END]'. Characters after a semicolon are ignored on every line (this is a comment character). 5.11.21 Done This button leaves the Sweep Editor and returns you to the Main Menu. 5.12 Object Browser The Object Browser gives you a graphical view into the hierarchy of your scene. See the Tutorial on the Object Browser on page 41 for instructions on how to use it. 5.12.1 Main View This view replaces the four scene views. It shows the objects in your scene with top-level (or root) objects at the left edge of the screen. These are displayed as buttons containing the names of the objects or more information. Subobjects are attached to their parent objects by lines. 5.12.2 Collapse All If your scene has many hierarchy levels (extends horizontally), this button will collapse all subobjects in the hierarchy, leaving only the root (or top-level) objects displayed. Manual MORAY V2.0 Page 92 ---------------------------------------------------------------------- 5.12.3 Expand All If you have previously collapsed all objects, pressing this button will expand them all, displaying all objects (up to the visibility level you set using Alt-1 to Alt-9). 5.12.4 Collapse Sub This button only collapses the current object. In the highest zoomed state, this corresponds to click on the '<' symbol in a group object's button. 5.12.5 Expand Sub This button only expands the current object. In the highest zoomed state, this corresponds to click on the '>' symbol in a group object's button. 5.12.6 Larger Font This increases the size of the font. Three fonts are available for displaying the names of the objects. 5.12.7 Smaller Font This decreases the size of the font. Three fonts are available for displaying the names of the objects. 5.12.8 Zoom In This zooms into the Browser. It increases the size of the buttons in three steps. In the lowest zoom setting only a little button is displayed for the object. In the middle state the name of the object is displayed in the button. In the highest zoom state the button also shows the texture that is assigned to the object, the name of the bounding box and the type of the object. 5.12.9 Zoom Out This zooms out of the Browser. It decreases the size of the buttons in three steps. In the lowest zoom setting only a little button is displayed for the object. In the middle state the name of the object is displayed in the button. In the highest zoom state the button also shows the texture that is assigned to the object, the name of the bounding box and the type of the object. 5.13 Command-line options MORAY support the following command-line options: file Specify the name of a file to load. Manual MORAY V2.0 Page 93 ---------------------------------------------------------------------- -Gn Specify the graphics mode to use, where n is an even number between 4 and 10. The following table shows the values for n and the corresponding graphics modes: 4 640x480 6 800x600 8 1024x768 10 1280x1024 12 1600x1200 Think of the number representing the first digit (or two) of the vertical resolution. This parameter overrides the setting in the INI file. Set the INI file parameter GraphicsMode to te graphics mode that you want to use as default. -GMxnnn Specify the VESA mode number to use. This is not recommended for VESA 2.0 drivers, as the numbers may have changed. For example, it is no longer compulsory for mode 0x0103 to mean 800x600x256. -L If your graphics card is having problems using this switch will make it write the VESA query protocol to the ERR file. Only useful for debugging. -B This tells MORAY that it is running from a batch file. This parameter is needed when you want to use a batch file to do the render-edit cycle (on lower memory machines or bigger scenes this may become necessary). -F If you specify this switch, MORAY will not use the linear framebuffer, even if it is available. 5.14 User-defined objects These objects allow MORAY to work with any objects that it can currently not support directly. This includes the mathematical objects, such as Polynomials, or huge triangle meshes. The idea behind the user-defined object is that you provide MORAY with enough information that it knows how to display it and how to export it. To allow this MORAY uses a UDO file that contains this information. The UDO file allows more than one object to be present, MORAY will import such an UDO as a group. This allows you to use different textures on different parts of the object, provided the utility that created the UDO handled this correctly. 5.14.1 UDO File Format The file is a text file and can be freely formatted. Comments start with a semicolon (;) and extend to the end of the line. MORAY first expects two keywords followed by a value. These are 'IncludeFile' and 'Name'. Manual MORAY V2.0 Page 94 ---------------------------------------------------------------------- Following the 'IncludeFile' keyword, MORAY expects the filename of include file that the raytracer needs to read in order to be able to render the object. Following the 'Name' keyword, MORAY expects the name of the object as it will be available in MORAY. After these two keywords MORAY needs to find sections that define the wireframe. A section is started by square brackets. Inside the square brackets, MORAY must find a name, followed by a colon and a keyword. MORAY first needs to find the 'Vertices' keyword. Following this on the next line is the number of vertices in the wireframe. After this follow that many lines, each containing the X, Y, Z position of the vertex. MORAY then needs to find the 'Edges' keyword, followed, on the next line, by the number of edges. After that follow that many lines, each line containing two indexes into the list of vertices. The index is zero-based. When MORAY encounters a '[END]' section or the end of file it will stop reading the file. The names in the 'Vertices' and 'Edges' sections determine the name of the user-defined object that is imported. If a UDO file has more than one 'Vertices' section, MORAY attempts to import more than one object, creating a group that holds the objects. 5.14.2 Example UDO file This is an example of a UDO file. It defines a pyramid, named 'Pyramid'. The raytracer will attempt to include the file 'PYRAMID.INC' for the actual definition of the pyramid. The object has 4 vertices and 6 edges. ; ; Example of a user-defined object ; Name 'Pyramid' ; Specify the file that should be included to ; access this object IncludeFile 'PYRAMID.INC' [Pyramid:Vertices] 4 0.00000, 0.000000, 1.73205 0.00000, 1.632990, -0.57735 -1.41421, -0.816496, -0.57735 1.41421, -0.816496, -0.57735 [Pyramid:Edges] 6 Manual MORAY V2.0 Page 95 ---------------------------------------------------------------------- 0 1 1 2 2 0 0 3 1 3 2 3 [End] 5.14.3 Converting RAW to UDO with the 3Dto3D Utility Thomas Baier has allowed me to include two of his shareware utilities with this release of MORAY. One of these is a converter that can read RAW triangle mesh files, 3D-Studio 3DS binary mesh files and Imagine V2.x and V3.x OBJ files and write (amongst other formats) UDO/INC file pairs for POV-Ray or Polyray. See the Tutorial on page 38 for examples of how to use this utility. Manual MORAY V2.0 Page 96 ---------------------------------------------------------------------- 6 New Features in V2.0 6.1 Interface þ When scaling a rotated object, the cursor would not behave correctly, the axes would be swapped. For example if a object was rotated about Z by 90 degrees and you then tried to scale it in X, the cursor would need to be moved in the Y direction. This is fixed, the directions now correspond to mouse movements. þ Added an option to scramble the drawing order of the wireframe display. Normally, Moray will draw object by object which is not nice when the object you're interested in comes last. If the option is enabled in the INI, the lines will be scrambled and it will seem as if the scene 'fades' in (for lack of a better term). þ Added support for tracking the view out of a spotlight through a 3D viewport. All you do is assign the spotcam to the viewport. þ Incorporated my own VESA Library that supports the new VESA 2.0 specification (V1.2 VESA is still supported) including the linear framebuffer. This library has assembler implementations for most important routines. Runs up to 10x faster with UniVBE/V5.1 or other VESA 2.0 driver installed than the old V1.53 code. V1.54 used this same graphics library. þ Rewrote the wireframe interface code. The redraws are now interruptible, or rather it looks like the redraws are taking place in the background. þ Removed a lot of the unnecessary redraws that the old version had. þ Added a proper (nicer) status bar for loading, saving, exporting and some other things that take a bit of time. þ Improved the look of the interface. Sliders have nicer scroll bars and support paging and have arrows. Comboboxes have been created. The Line Editor has been enlarged. þ Object editing menu is always visible and active. It changes immediately when a new object type is selected. þ The right mouse button pops up a small menu if over one of the views. Most view-relevant things (such as grid, snap and view type) can be set from this menu. þ The auto-grid of each view can be locked and subsequent zooms will not change the spacing of the lines. Manual MORAY V2.0 Page 97 ---------------------------------------------------------------------- þ All of the views can be changed at runtime to show one of the 2D views or the view out of a camera. This can be used to create a stereo display for viewing cross-eyed assigning one camera to a viewport on the left and another one to the viewport on the right. þ You can now work in the 3D window. The currently supported operations are: - pan (rotates the camera lookat about the camera origin) - zoom (increases or decreases the aperture of the camera) - selection (just like in a 2D view) - translation (moves an object in the XY plane only, perspectively following the cursor). þ Changed the OPTIONS menu to a dialog. þ Changed SNAP function to round coordinates to nearest multiple of the snap distance. Previously, the snap had rounded only the increment that it was changing the transformation by. þ Added the ability to snap scaling and rotation as well. Scaling, rotation and translation have separate SNAP settings that can be set from the OPTIONS dialog. þ Added a Shell to DOS function, a Show DOS Screen function and three User-defined functions to the Files Menu. þ Added the Alt-R and Alt-Shift-R hotkeys to redraw and reinitialize the graphics mode. This is useful when running under Windows for those graphics cards that cannot properly restore the MORAY screen when returning from Windows. 6.2 Objects þ Added Reference Objects. These are shallow copies of objects and thus change their wireframe along with the referenced object. Very neat for modifying objects that have many copies (that also need to change if the original changes) þ Added User-Defined Objects. These are defined in a textfile. You define the name of an INC file that contains the object description and the wireframe representation that Moray should use to display the object. þ Added support for Blobs. Blobs can be imported from Blob Sculptor. þ Added support for RAW files (triangle meshes). These can be read in directly or converted to a UDO object by a utility that comes with it. þ Added Open keyword to cone and cylinder. þ Added support for the cone to have both radii defined. It now has an edit menu similar to that of the torus. Manual MORAY V2.0 Page 98 ---------------------------------------------------------------------- þ Rewrote the sweep editors. The old-style sweeps are no longer supported. Old sweeps are converted to Polyray-style sweeps (glyph and lathe). These are much easier to work with and quite intuitive. They also allow straight and curved line segments to be mixed in the same sweep. You get to choose from 4 types of sweeps: the Polyray-style sweeps (as described above), linear sweeps (where the control points are connected by straight lines), quadratic sweeps (where a quadratic function is used to interpolate the curve) and cubic (where a cubic function is used to interpolate the curve). þ Added CSG Preview code. This is the first version, which is not very accurate, in that it does not add new lines, which is neccessary where two solids intersect. I'll be working on this for the next version. þ Added support for an unlimited number of top-level objects, instead of the current limit of 100. þ Objects can now be added to and removed from groups and CSG objects in place (i.e. where they are). þ Added a button to display the color of pointlights, spotlights and arealights. þ Heightfields can now read in TGA files and display the wireframe mesh. This also takes water level into account and only displays that part of the heightfield that is above waterlevel. GIF files will not be read, due to the Unisys patent on LZW de/encoding. Once PNG is supported by POV, Moray will support it too (maybe sooner). þ Each object can now have it's own link to a texture. This link allows you to transform a texture for each object that it's assigned to, separately. So, for example, the same imagemap texture can be applied to various objects with various different transformations. 6.3 Textures þ Added Texture Editor. Clicking on TEXTURE now brings up a complete texture editor for POV-Ray 2.2. þ Many textures now have a wireframe representation. Textures that use colormaps also have an arrow that show you where the colormap starts and ends. This makes it a snap to position textures. þ Added the ability to export textures before or after the object transformations. The Object Editing menus have a button above the listbox of textures that allow you to toggle the mode. 'Local' means that the texture is applied in the objects local coordinate space, which is the way that it's been up to now. 'Global' means the texture is applied after the transformations. Manual MORAY V2.0 Page 99 ---------------------------------------------------------------------- 6.4 Browser þ Here, too when you click on an object, its editing menu is immediately displayed and active. þ The browser now has three zoom 'levels' (use '+' and '-' to switch between them or use the ZOOM IN and ZOOM OUT menu buttons). - At the outermost level, there are no labels on the buttons, to give you a rough overview of the layout of the scene. - At the middle level, you are presented with the same display that the old Moray had. - At the innermost level, each object is shown with it's type, name, bounding box and texture. You can change the texture by clicking on the texture in the objects box, just like you can do with the name. Each object is separately collapsible. þ The browser also has a menu that allows you to select different fonts and to collapse and expand all or individual objects. 6.5 Miscellaneous þ Added UNDO function for major scene manipulations. - Transformation of objects. - Deleting objects. - Creating objects. - Copying objects. - Adding an object to a Group. - Removing an object from a Group. þ Improved the COPY function - Separated the TRANS OFFSET and TRANS ORBIT functions. You can now orbit an object and translate it at the same time. This allows you to make things like a winding staircase. - Made two buttons out of the OFFSET/FACTOR mode buttons for scaling and rotation. - The values you enter are persistent, so that next time you copy an object the settings that you used last time are still there. - When you use ORBIT, the value is automatically copied to the corresponding rotation entry. - Added a status bar to show how the copying is progressing. Manual MORAY V2.0 Page 100 ---------------------------------------------------------------------- 6.6 Rendering þ Added support for setting the resolution of the render from the OPTIONS dialog. Also various other parameters for the raytracer, such as antialiasing, display, continue, verbose and interruptible. þ The RENDER function in the FILES menu can be made to call POV-Ray and Polyray directly, instead of quitting back to a batch file (for machines with enough memory). þ Completely changed the file handling. The old Files Menu no longer has any drives or files visible, only buttons. Pressing LOAD or SAVE then pops up a File Selector, which has a couple of neat features. þ Added F2 Hotkey for saving a file and F3 for loading a file. 6.7 Exporting þ Completely changed the exporting of objects. Primitives are exported directly to groups (and CSGs), the others are declared/defined. þ Added Polyray support. All primitives and textures are exported to Polyray. þ Sweeps and triangle meshes are written to their own include files. Manual MORAY V2.0 Page 101 ---------------------------------------------------------------------- 7 Configuration 7.1 MORAY.INI Settings 7.1.1 The [CONFIG] section 7.1.1.1 MemoryUse The two numbers behind this variable determine how much memory in KB MORAY should set aside for the Vertex and Edge list. These two lists are needed to display the wireframe in the views. To determine how much you need to set this to, keep a watch on the the two buttons in the lower right corner of the screen. One contains an 'V:' and the other a 'E:'. Neither of these numbers should exceed 95%. If they do, the wireframe will start dropping lines and it will no longer be an accurate representation of your scene. You need to increase these numbers if your lists are approaching 90%. If you have little memory in your machine and your the two buttons never show more than 30% or 40% you can safely decrease these two numbers in the INI and thus free more memory for actual objects. 7.1.1.2 ModelPath This specifies the path where MORAY should save its MDL files. The name must be enclosed in single quotes. By default this is the MDL subdirectory. 7.1.1.3 PrintPathPOV This specifies the path where MORAY should export POV-Ray files to. The name must be enclosed in single quotes. By default this is the POVSCN subdirectory. It is from this directory that POV-Ray will be called. 7.1.1.4 PrintPathPolyray This specifies the path where MORAY should export Polyray files to. The name must be enclosed in single quotes. By default this is the POLYSCN subdirectory. It is from this directory that Polyray will be called. 7.1.1.5 IncludeFilePOV This specifies the name of the include file that MORAY exports to every scene that is written for POV-Ray. The name must be enclosed in single quotes. You can include objects in this file you want every scene to have. Manual MORAY V2.0 Page 102 ---------------------------------------------------------------------- 7.1.1.6 IncludeFilePolyray This specifies the name of the include file that MORAY exports to every scene that is written for POV-Ray. The name must be enclosed in single quotes. You can include objects in this file you want every scene to have. 7.1.1.7 TextureList This specifies the name of the file that contains color definitions that the Texture Editor knows about, defaults for new textures and IOR values. The name must be enclosed in single quotes. When you use the GET button in the pigment area of the Texture Editor, MORAY will search the file specified here for a [COLORS] section and will then read the definitions of colors and will display these in a list for you to choose from. When you create a new texture, MORAY will read the default settings from the [DEFAULTS] section from this file. All new textures use these settings. When you click on the GET button next to the IOR slider, MORAY will search for a [IOR Values] section and will read the IOR values it finds and display these in a list for you to choose from. The sections [POVDEFAULTS] and [POLYRAYDEFAULTS] contain the defaults that the raytracers use for certain variables. You should NOT change the values here, since this may lead to MORAY not exporting certain variables since it thinks that they are the default setting. 7.1.1.8 PreDefTextures This specifies the name of the file that contains the definitions of predefined textures that the Texture Editor knows about. The name must be enclosed in single quotes. When you use the GET TEXTURE button in the Texture Editor, you are presented with a list of textures that come from this file. Choosing one, copies its definition into the current scene and you can then further enhance or change the texture. 7.1.1.9 StartupScene This specifies the name of the MDL file that MORAY should load on startup if no file is given on the command-line. The name must be enclosed in single quotes. 7.1.1.10 ColorDefinition This file specifies the name of the file containing the definition of the colors that MORAY uses for its interface. The name must be enclosed in single quotes. Manual MORAY V2.0 Page 103 ---------------------------------------------------------------------- 7.1.1.11 CheckTextures This setting specifies whether MORAY should check the scene for objects have no textures assigned to them before exporting the scene. If this is set to NO, MORAY will simply export the scene when asked to do so. If set to YES, MORAY will not export the scene until all objects have textures. 7.1.1.12 AskOnExport This setting determines whether MORAY should ask your permission when exporting to a file that already exists in the scene directory. If you are editing the exported POV or PI files, you may want to set this variable to YES. If set to NO, MORAY will simply overwrite any existing POV or PI file with the current scene name. If set to YES, MORAY will ask you whether it is OK to overwrite an existing POV or PI scene file with this scene. 7.1.1.13 RenderWithShell This setting determines how MORAY calls the raytracer. If set to YES, MORAY will call the raytracer directly and will not exit. This means that MORAY and the scene stays in memory while the raytracer is running, and can be immediately restored when the raytracer is done. This setting is recommended for systems with 16MB or more. With less memory, the raytracer may not be able to run. If set to NO, MORAY will exit with an exit code of 17 if POV-Ray is the current raytracer and 16 if Polyray is the current raytracer. This setting should be used in conjunction with the CALLMRAY.BAT file and if you have 8MB or less in your machine. 7.1.1.14 GraphicsMode This specifies the resolution that MORAY should run in. Valid modes are 640x480x256, 800x600x256, 1024x768x256, 1280x1024x256, 1600x1200x256 or a VESA mode number in hexadecimal format, for example 0x0103. The command-line parameter -G (see page 92) overrides this setting. Note that MORAY V2.0 cannot use 16-color modes. 7.1.1.15 UseLinearFrameBuffer This setting specifies whether MORAY should ignore a linear framebuffer even if available. If set to NO, MORAY will not use a linear framebuffer. Manual MORAY V2.0 Page 104 ---------------------------------------------------------------------- If set to YES, MORAY will use a linear framebuffer if available. 7.1.1.16 WireFrameDivs These settings specify how many subdivisions the primitives sphere, cylinder, cone, torus, spotlight and disc should have, respectively. This number must be even and larger or equal to 8. The higher the number, the finer (and more exact) the wireframe will be, but also the more memory it will use and the longer it will take to redraw. A setting of 12 is recommended for most primitives. 7.1.1.17 KeyboardDelay If a keypress occurs within the number of seconds specified by this variable, MORAY increases the distance that the cursor moves. 7.1.1.18 ViewLines This variable defines the number of lines to draw for each time slice that a view gets for drawing lines. If your redraw response is sluggish, lower this number, if it's snappy and could take a bit more, increase it. 1000 should be fine for 486 systems, Pentiums can probably increase to 1500 or 2000. This also very much depends on the performance of the graphics card. 7.1.1.19 SkipDrives This variable defines the drive letters of drives to skip processing. Place the drive letters behind each other (no spaces) and do not surround them with quotes. MORAY will not attempt to read the drives specified. You should place the letter of your CD-ROM drive here. 7.1.1.20 Use3DText This switch determines whether MORAY should use an embossed look for text displayed on its interface. Using an embossed look slows down text drawing, so if your screen response is slow, set this to NO. 7.1.1.21 UserCommandX Up to three user commands can be added here. MORAY will call these when you press Alt-F1 to Alt-F3 and replace the following strings: %f is replaced by the current filename without extension, no path %r is replaced by the exported filename with extension, with path %q is replaced by the exported filename without extension, with path Manual MORAY V2.0 Page 105 ---------------------------------------------------------------------- %pn is replaced by a filename that the user can select at runtime. The n is the extension to use (see the ExtX settings below). A fully qualified filename is returned. Note that you will need to edit the MORAY.MNU file to change the text on the buttons in the Files Submenu. In the section [FILES MENU], look for the lines starting with 'Text 71'. At the end of the line you will see single quotes that contain the text that is displayed in MORAY. You can change this text to suit your needs. For example, to setup Thomas Baier shareware RAW to UDO conversion as the third utility, you could use the following command: UserCommand3 'utils\3Dto3D.EXE -e20 -v -s60 %p8' Then change the line in the [FILES MENU] section in MORAY.MNU to read: Text 73 +(0,6) '3DTO3D Alt-F3' Whenever you press Alt-F3, MORAY will request the name of a RAW file while expanding the '%p8' and will then call the utility with the specified parameters. The third user button in the Files Submenu will also show the correct text. 7.1.1.22 IgnoreErrorLevel No If your POV-Ray compile does not return the correct errorlevel to DOS, you can set this flag to Yes to make MORAY ignore the return value of POV-Ray. The official ICB compile of POV-Ray 2.2 works correctly and if you're using this compile you should set this flag to No. If Polyray is your main raytracer this flag should be set to No, since Polyray functions as expected. 7.1.2 The [FILEOPEN] section This section stores information about the File Selector, such as extensions, directories you last visited and associations between extensions and directories. You do NOT need to edit this section, it is maintained automatically by MORAY. 7.1.2.1 The ExtN List The ExtN settings determine what MORAY will display in the file type dropdown combobox. The variable is followed by the extension (maximum 3 letters) and the plain text that MORAY displays in the listbox. Manual MORAY V2.0 Page 106 ---------------------------------------------------------------------- 7.1.2.2 The HistN List The HistN settings contain the names of the last 6 directories that you loaded something from. These are displayed in the Frequent directories listbox of the File Selector. 7.1.2.3 The ClassN List The ClassN settings associate a class of file (imagemap, bumpmap, RAW file, etc) with an extension (from the ExtN list) and a directory. When MORAY needs the name of a file, for example an imagemap, it remembers the extension of the file you retrieved and the directory you retrieved it from. The next time MORAY needs to ask you for this same type of file (an imagemap in the example), it knows what extension to use and what directory you got the last one from and automatically places you there to begin with. 7.1.3 The [TEXTURE EDITOR] section 7.1.3.1 POVTraceCall and PolyrayTraceCall This variable defines the command-line to use when calling POV-Ray or Polyray to create a preview image of the texture being created in the Texture Editor. The command-line must be placed in single quotes and contain three special character sequences, one '%s' and two '%d' sequences. The '%s' sequence must come before the '%d' sequences. The '%s' sequence is replaced with the filename to render (no extension). The first '%d' is replaced with the width of the image to create and the second with the height. 7.1.3.2 ColMapGrey, ColMapColors and ColDisplayColors These settings determine how many and which palette indexes the Texture Editor can use for various things. 7.1.3.3 PreviewObject This setting determines which object to use as a preview object. It is the position in the list of objects in the Texture Editor. 7.1.3.4 PreviewBackGnd This setting determines what background objects to use in the preview render. 7.1.4 The [OPTIONS] section This section is maintained by MORAY. Most of these settings come from the Options Submenu. 7.1.4.1 RayTracer This setting determines the active raytracer. Manual MORAY V2.0 Page 107 ---------------------------------------------------------------------- 7.1.4.2 Resolution This setting determines at what resolution to raytrace at. 7.1.4.3 Antialias This setting determines the antialiasing threshold. A value of 0.0 turns off antialiasing. 7.1.4.4 AntialiasMethod This setting is used by Polyray only and determines the method that should be used when antialiasing. See the Polyray documentation for details. 7.1.4.5 JitterRays This setting determines the amount of jitter and how many rays to fire into the scene when antialiasing. 7.1.4.6 PauseAfter This setting determines whether the raytracer should pause when it is done before exiting. 7.1.4.7 Display This setting determines whether the raytracer should display the image on the screen as it is being raytraced. 7.1.4.8 Verbose This settings determines whether (and how much) the raytracer should output status messages while raytracing. 7.1.4.9 Continue This setting determines whether the raytracer should continue an already started trace. 7.1.4.10 Interruptable This setting determines whether the raytracer can be interrupted or not. 7.1.4.11 MaxTraceLevel This setting determines the maximum level of recursion that a ray can reach. If you are experiencing black areas while tracing glass or other refractive materials, increase this value. 7.1.4.12 Snap This setting determines whether snap is on or off. Manual MORAY V2.0 Page 108 ---------------------------------------------------------------------- 7.1.4.13 SnapScale The three numbers determine the resolution that the snap works at for scaling. 7.1.4.14 SnapRot The three numbers determine the resolution that the snap works at for rotation. 7.1.4.15 SnapTrans The three numbers determine the resolution that the snap works at for translation. 7.1.4.16 UndoBufferSize This setting determines the number of Undo operations to to buffer. 7.1.4.17 ScrambleViews This setting determines whether the order in which the wireframes are to be drawn in the views should be scrambled (random) or ordered. If you have a VESA 1.2 driver, and the redraws seems slow, it is recommended that you set this to NO. If you have a VESA 2.0 driver, you can set this to YES. Although the version of the VESA driver will determine the redraw rate of a scrambled view, you can enable it in either mode. 7.1.4.18 PolyBias This is a value that Polyray textures use to modify the noise() function. 7.1.5 The [POV DEFFILE] section This section contains those settings that should always be passed to POV-Ray when tracing a scene. You should specify things like the graphics mode for POV-Ray and the path to include files here, if needed. MORAY does not require any of the include files by default, since it exports complete scenes. 7.1.6 The [POLYRAY INIFILE] section This section contains those settings that should always be passed to Polyray when tracing a scene. You should specify things like the graphics mode for Polyray. Manual MORAY V2.0 Page 109 ---------------------------------------------------------------------- 7.2 Objects in the Texture Editor Preview The Texture Editor shells out to POV-Ray or Polyray to raytrace a sample scene of an object with the texture that you're currently editing applied to it. This object can be any number of different objects and you can adapt this list and add your own objects to use as preview objects. To do this follow the following steps: 1. Use a text editor to edit the file MORAY.INI in your MORAY directory. Find the section [PreviewObjects]. Here you will find the list of objects that MORAY can use in the Texture Editor. Add the name of the object you want to use to this list, after the last entry (or at any other position). 2. Use a text editor to edit the file PREVUSCN.POV in the POVSCN directory. At the end of the file add a #declare'd version of your object named 'Previewxxxxx' where the xxxxx is the name of your object. Make sure that the declared object uses a texture called 'PreviewTexture'. 3. Repeat the above step with PREVUSCN.PI in the POLYSCN directory. The next time the Texture Editor is started you can set the Preview object to your object. 7.3 The POV2MDL Utility Thomas Baier has allowed me to include a shareware utility with MORAY, the POV2MRY converter. This utility can read in an existing POV V2.0 file and output an MDL file for MORAY to read. This utility makes it possible to read in your old POV files. Please see the documentation in the UTILS directory for this program. 7.4 VESA Drivers The VESA specification is a protocol for software to communicate with the graphics hardware through a uniform interface. The first VESA specification, V1.2 was targeted at real-mode programs and had no special provisions for protected-mode programs. Since MORAY is a protected-mode program, this imposes some serious performance problems. Manual MORAY V2.0 Page 110 ---------------------------------------------------------------------- The newest VESA specification, V2.0 improved on the V1.2 specification while staying downward compatible (meaning applications can be written to use V2.0, but still run on V1.2 VESA drivers). It offers a protected-mode interface and thus MORAY runs much faster. Furthermore VESA 2.0 offers a linear framebuffer on some graphics cards. The framebuffer is the memory that contains the screen image. This memory is on the graphics card and is divided up into banks. Usually banks can be 'mapped' into a small 64K window of the processors memory, so that an application can write to the framebuffer. Each time a pixel needs to be written to another 64K region, a bank switch needs to be executed. This is also a performance brake. With a linear framebuffer, the graphics memory is not mapped onto a small 64K window, but rather is completely mapped into the processors memory. Thus no bank switches are necessary and the graphics are much faster. See the About box in the Options menu (see page 61) for current VESA status. Manual MORAY V2.0 Page 111 ---------------------------------------------------------------------- 8 Appendix A: Hotkeys The Files Submenu contain menu items (buttons) that, apart from their descriptive text also have an associated hotkey (e.g. F3 for LOAD). These menu items are available not only from the Files Submenu but also from the Main Menu. Many menu items have underscored letters in their text. Pressing the underscored letter has the same effect as clicking on it with the mouse. These keys are not listed here. Only special non-obvious hotkeys are listed here. 8.1 Main Menu ALT-n n=1-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 Activates the Copy Submenu (see page 62). ALT-D Deletes the currently selected object without verification. Textures cannot be deleted in this way, use the Texture Editor instead. ALT-F Activates the Files Submenu (see page 55). ALT-G Toggles the display of the grid lines in the view that the cursor is over. ALT-N Activates the Create Submenu (see page 53). ALT-O Activates the Options Submenu (see page 59). ALT-P Selects the parent object of the currently selected object. ALT-R Refreshes the screen. SHIFT-ALT-R Reinitializes the graphics system. Switches to text mode and then back to graphics mode. ALT-S Activates the Object Browser (see page 91). ALT-T selects the texture of the currently selected object. ALT-U deselects the currently selected object. No object is selected after this hotkey is pressed. ALT-V checks whether all objects have a texture assigned to them. Selects the first object found that has no texture. ALT-X quits MORAY. ALT-Z Zooms the current view in such a way that the complete scene is visible. '-' disables the view under the mouse cursor. '+' enables the view under the mouse cursor. 'L' activates the transformation of the lookat point if a camera is the currently selected object. No effect otherwise. 'P' activates the transformation of the position of a camera if the selected object is a camera. No effect otherwise. 'X' Locks the X-axis. No transformations occur in the X-axis. 'Y' Locks the Y-axis. No transformations occur in the Y-axis. Manual MORAY V2.0 Page 112 ---------------------------------------------------------------------- 'Z' Locks the Z-axis. No transformations occur in the Z-axis. Backspace Undo the last major scene operation (see page 49). DEL Deletes the currently selected object. ESC Leaves the currently active menu. 8.2 Files Submenu All ALT-Hotkeys of the Main Menu are available here. F2 Saves the current scene to disk. F3 Opens the File Selector to load a new scene from disk. F9 Calls the raytracer to render the current scene, or exits (see page 103, RenderWithShell). F10 Quits MORAY. CTRL-F9 Exports the current scene to the currently active raytracer (see page 59). ALT-F1 User command 1 (see page 57). ALT-F2 User command 2 (see page 57). ALT-F3 User command 3 (see page 57). ALT-F5 Switch to the DOS-screen. Press any other key to return. ESC Leave the Files Submenu (cursor must be over Files Submenu). 8.3 Object Browser ALT-1 displays only top-level (root) objects. ALT-n displays all objects up to a nesting level of n. ALT-0 displays all objects. TAB centers the display about the currently selected object. ALT-B selects the bounding box of the currently selected object. ALT-D deletes the currently selected object without verification. DEL deletes the currently selected object without verification. 'D' deletes the currently selected object with verification. ALT-L allows you to enter the visibility level of the currently selected object. 'L' allows you to enter the visibility level of the currently selected object. ALT-P selects the parent object of the currently selected object. ALT-T selected the texture of the currently selected object. 'N' allows you to edit the name of the currently selected object. 'T' pops up a list of textures and assigns the one you click on to the currently selected object. '-' makes the display of the objects smaller (see page 91). '+' enlarges the display of the objects (see page 91). Manual MORAY V2.0 Page 113 ---------------------------------------------------------------------- ESC Leaves the Object Browser. 8.4 Edit Menu for Bezier Patches 'X' freezes the X-axis. 'Y' freezes the Y-axis. 'Z' freezes the Z-axis. '-' disables the view under the mouse cursor. '+' enables the view under the mouse cursor. 8.5 Texture Editor F9 calls the currently active raytracer to render a preview of the texture being edited. ESC quits the Texture Editor. ALT-R Redraws the screen and reloads the last preview. SHIFT-ALT-R Reinitializes the graphics system, redraws the screen and reloads the last preview. Manual MORAY V2.0 Page 114 ---------------------------------------------------------------------- 9 Appendix B: Polyray MORAY was written with POV-Ray in mind and there are a couple of things that are different when using Polyray. 9.1 Texturing Polyray does not use POV-Ray's Pigment/Normal/Finish model of textures. Polyray has variables available in a texture that allows you to handle these parameters in one texture statement. This has consequences for MORAY when exporting textures. The way a texture is exported to Polyray is that the transformation block of the pigment is applied to the whole texture. This is fine until you start using a non-smooth normal, for example Bumps. In POV-Ray the pigment and normal transformations are independent of each other. However, since the pigment transformation is applied to the whole texture when exporting to Polyray, the pigment transformations also apply to the normal specifications. While designing a texture, it is best you set the pigment transformations first and then once they are in place, work on the normal specification. Only Bumps and Bumpmaps are exported as normal modifiers. All other normal types are exported as Bumps. Only the scaling of the normal transformation block is exported, so you cannot rotate or translate bumps. The Mandel pigment is not available in Polyray, it is exported as an onion texture. Toroidal mapping modes are not supported for imagemaps and bumpmaps. 9.2 Render Region Polyray does not support a complete rendering window like POV- Ray. Polyray allows the specification of the first line to render. When you define a rendering window, the top edge is passed to Polyray as the first line to render. Polyray will always render the complete width of the image and will render to the end of the image height. Manual MORAY V2.0 Page 115 ---------------------------------------------------------------------- 10 Appendix C: Frequently Asked Questions Q: Why is the just created texture not visible in the view, even though the pigment type has a wireframe representation? A: You need to assign the texture to an object first. There is no reason to display the texture if it is not used by an object. Click on the name of the texture in the listbox of textures in the objects Editing Menu. Q: I disabled a view in the View Popup using the DISABLE. Now I cannot re-enable it with a right click. A: Right-clicking does not work over disabled views. Use the '+' hotkey instead. Q: I cannot get a heightfield object to display the wireframe of the image file. Why? A: MORAY can only read TGA files, so using anything else (like GIF) will not allow you to display the heightfield directly. Q: MORAY exits to DOS after some time and writes the following message to the file MORAY.ERR. [INTEGRITY CHECK FAILED ... ABORTING] A: This is usually caused by attempting to turn the program into a registered version using an incorrect name/number pair. Only name/number pairs that you receive from Lutz+Kretzschmar are valid. To correct this situation, re-extract the MORAY.EXE file from the ZIP archive. In rare cases, this can also be caused by compressed harddrives (e.g. Stacker, DoubleSpace). Please install MORAY to a uncompressed drive. Q: When I render Bezier Patches, I get holes/gaps. My Bezier patches look very coarse/faceted. Why? A: This can occur with patches that are convoluted and complex. It can usually be corrected by giving U_STEPS and V_STEPS a larger value, and/or by making the value for FLATNESS smaller in the Editing Menu for Bezier Patches. Q: When I click on the TEXTURE menu item in the main menu to assign a texture to an object, and create a texture in the Texture Editor, MORAY still complains that the object does not have a texture. A: The Texture Editor is there to edit existing or to create new textures for use in your scene. It does not assign the texture to any objects. This is done by clicking on the texture name in the objects Editing Menu. Q: I can't change the lookat/position of the camera. A: You need to tell MORAY which coordinates of the camera you wish to change. The camera has two positions and you can only translate one at a time. To change the position of the lookat point press 'L' or click on LOOKAT in the camera's Editing Menu. To change the position of the camera itself, press 'P' or click on POSITION in the Editing Menu. Manual MORAY V2.0 Page 116 ---------------------------------------------------------------------- Q: The image generated by the raytracer is completely different to what was displayed in my 3D-view. Why? A: MORAY uses the first camera in the global object list (the top most one in the Object Browser) when exporting a scene, unless a camera is the currently selected object. In this case the selected camera is used. Q: I created a texture with an ImageMap/BumpMap and the raytraced image shows nothing/only parts of it. Why? A: Provided the imagemap is not black, it has probably been transformed incorrectly. If you're using the texture in GLOBAL mode then check the TILING setting of the imagemap/bumpmap in the Texture Editor and make sure it is set to TILED. You should be able to see the wireframe proxy over your object. Q: I create a blob using Blob Sculptor for DOS, saved it in BLB format, but MORAY cannot read it. Why? A: Please use a newer version of Blob Sculptor. The authors of Blob Sculptor changed the file format between different versions. Manual MORAY V2.0 Page 117 ---------------------------------------------------------------------- 11 Appendix D: 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. Manual MORAY V2.0 Page 118 ---------------------------------------------------------------------- 12 Appendix E: Index A _______________________________ D _______________________________ About Box 61 Difference 75 Antialias 60 Directories 101 method 61 Disc 53,69 Arealight 55 Display Render 60 menu 73 DOS Authors screen 57 contacting 3 shell 57 user programs 57 B _______________________________ Bezier Editor E _______________________________ Hotkeys 113 Evaluate mark/unmark all 53 Blob 72 reference 86 CSG 75 Bezier patches Example scene creating 54 tutorial 24 menu 69 Exit codes 105 tutorial 35 Blobs F _______________________________ importing 54 FAQ 115 menu 71 Feature Angle 71 tutorial 39 Features Bounding new in V2.0 96 clear 67 File Selector 57 objects 67 INI settings 105 Files Submenu 55 C _______________________________ Frame buffer 103 Camera creating 55 G _______________________________ menu 75 Graphics mode spotlight 26 command line 93 CD-ROM drives 104 INI setting 103 Command-line options 92 VESA drivers 109 Compuserve 3 Grid Cone 53,68 enabling 52 Configuration 101 locking 52 Continue Render 60 settings 59 Copying Objects 62 Grouping objects 31 tutorial 43 Groups Creating Objects add object 31,74 menu 53 creating 55 CSG Menu 74 creating objects 55 remove object 74 grouping objects 31 tutorial 31 menu 75 tutorial 31 H _______________________________ Cube 53 Heightfields 34,54 Cylinder 53,68 menu 69 tutorial 34 Manual MORAY V2.0 Page 119 ---------------------------------------------------------------------- Hotkeys 111 R _______________________________ RAW files 54 I _______________________________ converting to UDO 95 Imagemaps 23 importing 33 Import tutorial 33 Blob 72 Rays 61 RAW file 71 Raytracer 59 Internet 3 Reference Objects 65 Interruptable 60 tutorial 45 Intersection 75 Registering instructions 3 J _______________________________ program 61 Jitter Rendering 57 antialiasing 61 configuration 103 arealights 74 display 60 setting options 60 L _______________________________ setting raytracer 59 Lights window 35,114 setting color 72 Resolution 60 Rotation mode 49 M _______________________________ Main Menu 48 S _______________________________ Max Level 61 Scaling mode 48 Memory Usage 101 Scenes Merge 75 loading 14 rendering 28,57 O _______________________________ saving 17,56 Object Browser Shareware 117 Hotkeys 112 Snap reference 91 enabling/disabling 51 tutorial 41 Sphere 53 Objects Spotlight 25,55 bounding 67 cameras 26 copying 62 menu 72 copying tutorial 43 tutorial 40 creating 19,53 Starting MORAY editing 15 Tutorial 13 editing menu 65 Sweep Editor no_shadow 67 delete node 52 reference 45,65 insert node 52 renaming 16 mark/unmark all 53 selecting 15 reference 88 transforming 16 Sweeps tutorial 19 creating 54 visibility 67 editing 28 Options Submenu 57,59 menu 69 INI settings 106 spline types 29 Orbit copies 64 tutorial 28 P _______________________________ T _______________________________ Panning Texture views 14 assign to object 26,66 Pause Render 60 creating 19,55 Plane 53 Polyray 114 Pointlight 55 predefined 102 menu 72 selecting 111 Polyray compatibility 114 space 66 POV-Ray tutorial 19 to MDL converter 109 Manual MORAY V2.0 Page 120 ---------------------------------------------------------------------- Texture Editor tutorial 38 finishes 23 INI settings 106 V _______________________________ normals 23 Verbose Render 60 own preview objects 109 VESA Drivers 109 pigment 20 Views preview 22 basics 13 reference 76 disabling/enabling 51 tutorial 19,23 grid 18,52 Torus 53,68 maximizing 18,51 Transformation mode panning 14,51 rotation 49 popup dialog 18,51 scaling 48 redrawing 52 translation 49 selecting objects 15,52 Translation mode 49 type 18,52 Triangles zooming 15,51 menu 70 Visibility RAW files 33,54 setting global 59 tutorial 33 setting object 67 Tutorials general 13 W _______________________________ Views 13 Waterlevel setting heightfield 70 U _______________________________ Wireframe Undo 49 detail 104 clear buffer 59 Union 75 Z _______________________________ User commands 104 Zooming User-Defined Objects to Object 51 creating 54 to Scene 51 file format 93 views 15 importing RAW files 95