Category : Printer + Display Graphics
Archive   : MORAY.ZIP
Filename : MORAY.DOC

Output of file : MORAY.DOC contained in archive : MORAY.ZIP

Monty, the Modeller

An interactive scene designer

Copyright 1993 SoftTronics, Lutz + Kretzschmar
All Rights Reserved.

Munich, Germany
CIS : [100023,2006]
March 1993

MORAY is a "shareware program" and is provided at no charge to the
user for evaluation. You are encouraged to pass a copy of MORAY
along to your friends and fellow raytracers for evaluation. Please
encourage them to register their copy if they find that they can use
it. Please do not give it away altered or as part of another

This software is shareware, not crippleware. All functions in this
shareware version are enabled. This is so that you can test all the
functionality of the program.

Please read Appendix D (page 45) for a definition of shareware. You
are expected to register this program if you continue to use it
after trying it out. Registration will also entitle you to up-to-
date information on this product. There is a protected mode version
planned for those *big* scenes. Whether this will happen depends on
what sort of feedback I receive from you (also how many


Users of MORAY must accept this disclaimer of warranty: "MORAY is
supplied as is. The author disclaims all warranties, expressed or
implied, including, without limitation, the warranties of
merchantability and of fitness for any purpose. The author assumes
no liability for damages, direct or consequential, which may result
from the use of MORAY."

User Manual Page 2 MoRay V1.2

The essence of "user-supported" software is to provide personal
computer users with quality software without high prices, and yet to
provide incentive for programmers to continue to develop new


If you find this program useful and find that you are using MORAY
and continue to use MORAY after a reasonable trial period (30 days,
for example), you must make a registration payment of US$59 to Lutz
+ Kretzschmar. The US$59 registration fee will license one copy for
use on any one computer at any one time. You must treat this
software just like a book. An example is that this software may be
used by any number of people and may be freely moved from one
computer location to another, so long as there is no possibility of
it being used at one location while it's being used at another. Just
as a book cannot be read by two different persons at the same time.

Commercial users of MORAY must register and pay for their copies of
MORAY within 30 days of first use or their license is withdrawn.
Site-License arrangements may be made by contacting Lutz +

Anyone distributing MORAY for any kind of remuneration must first
contact Lutz + Kretzschmar at the address below for authorization.
This authorization will be automatically granted to distributors
recognized by the ASP as adhering to its guidelines for shareware
distributors, and such distributors may begin offering MORAY
immediately (However Lutz + Kretzschmar must still be advised so
that the distributor can be kept up-to-date with the latest version
of MORAY.).

All registered users will receive a copy of the latest version of
the MORAY system. As a registered user, you will be informed when
new versions of MORAY become available. You will receive special
conditions for updating your version, depending on the changes made
to the program.

User Manual Page 3 MoRay V1.2

Contacting the author:

Home of POV-Ray and MORAY is CompuServe in the GRAPHDEV area (GO
GRAPHDEV). This is the place to ask questions about POV-Ray and
MORAY, there are a lot of users of POV-Ray (and MORAY, I hope)

You can reach me in the following ways:

CompuServe : 100023,2006
This is the fastest, easiest and the preferred way of
reaching me. You can post questions concerning POV-Ray and
MORAY in the GRAPHDEV forum. I will probably answer e-mail
within two or three days, depending on my workload at 'real'
work. Your question may get a faster answer in the forum,
if someone else knows the answer.

Internet: [email protected]
You can use the CompuServe Internet gateway to send me e-
mail. I have no direct access to the internet.

Postal mail:
Up to the 1 July 1993: After the 1 July 1993:

Lutz + Kretzschmar GbR Lutz + Kretzschmar GbR
Fritz-Reuter-Str. 20B Fritz-Reuter-Str. 20B
W-8000 Munich 60 81245 Munich
Germany Germany

The German Postal Service is changing all postal codes to 5
digits on the 1st of July 1993, so letters sent after the 1st
of July with the old address will take longer.

Fax: +49 89 8204270 (24h availability)

Telephone: +49 89 8204250 (emergencies only!) Remember the
timezone difference, this number is my office number, where I
can be reached Mon-Fri, 9am to 6pm GMT (which is 6 hours
ahead of New York time). You may get lucky 2 or 3 hours
outside these times.

User Manual Page 4 MoRay V1.2


1. What is MORAY? 8

2. MORAY Features 8

3. Requirements 9
3.1. Hardware 9
3.2. Software 9

4. Installation 10

5. Configuration 10
5.1. POVVersion 10
5.2. ModelPath 10
5.3. PrintPathxx 11
5.4. IncludeFilexx 11
5.5. TextureList 11
5.6. StartupScene 11
5.7. CheckTextures 11
5.8. WarnOnNoEMS 12
5.9. AlwaysMapEMS 12
5.10. AskOnExport 12
5.11. ViewLayout 12
5.12. GraphicsMode 12

6. Theory of operation 13
6.1. Object Attributes 13
6.1.1. Transforms 13
6.1.2. Bounding boxes 13
6.1.3. Texture 14
6.1.4. Visibility Level 14
6.1.5. Nested Attributes 14
6.2. Basic Interaction 15
6.3. The Primitives 15
6.3.1. Cube 15
6.3.2. Sphere 15
6.3.3. Cylinder 15
6.3.4. Cone 16
6.3.5. Torus 16
6.3.6. Rotational sweep 16
6.3.7. Translational sweep 16
6.3.8. Conical sweep 16
6.3.9. Bezier Patches 16
6.3.10. Heightfields 17
6.3.11. Light sources 17
6.4. The Non-Primitives 18
6.4.1. CSG Objects 18
6.4.2. Group Objects 18
6.5. The Cameras 18
6.6. The Textures 19

7. Creating an Object 19

User Manual Page 5 MoRay V1.2

7.1. Primitives 19
7.2. Bezier patches 19
7.3. CSG and groups 20

8. Creating a Texture 20
8.1. Predefined POV texture 20
8.2. Opaque texture 20
8.3. Imagemap texture 21
8.4. Wood texture 21

9. Selecting an Object 21
9.1. Graphically 21
9.2. Using the Object Browser 22
9.3. Selecting the Parent of an Object 22
9.4. Selecting the Texture of an Object 22
9.5. Selecting the Bounding Box of an Object 22

10. Editing an Object 23
10.1. The Object Edit Menu 23
10.1.1. Assigning a texture 23
10.1.2. Assigning a bounding box 23
10.1.3. Changing the visibility 24
10.1.4. Changing the name 24
10.1.5. Calling the extended editor 24
10.1.6. Leaving the Object edit menu 24
10.2. The Torus Edit menu 24
10.3. The Heightfield Edit menu 25
10.4. The Light Edit menu 25
10.5. The Group Edit Menu 25
10.5.1. Adding a sub-object 25
10.5.2. Removing a sub-object 25
10.6. The CSG Edit Menu 26
10.6.1. Adding a sub-object 26
10.6.2. Removing a sub-object 26
10.6.3. Changing the CSG operation 26
10.6.4. Changing the sub-object order 26

11. Copying objects 27

12. Texture Editing 27
12.1. Deleting a texture 28
12.2. Replacing a texture 28
12.3. Creating a texture 28
12.4. Texture display 28
12.5. Editing the IMAGEMAP texture 29

13. The main screen 29
13.1. The three 2D Views 29
13.1.1. Disabling a view 29
13.1.2. Enabling a View 29
13.1.3. Enlarging a View 30
13.1.4. Toggling the Grid in a View 30
13.1.5. Panning a View 30
13.1.6. Zooming a View 30
13.2. The 3D View 30

User Manual Page 6 MoRay V1.2

13.3. Interacting with Objects 30
13.3.1. Setting the interaction mode 31
13.3.2. Using Scaling mode 31
13.3.3. Using Rotation mode 31
13.3.4. Using Translation mode 31
13.4. Interaction strangeness 32
13.5. The Main Menu 32
13.5.1. The Transformation blocks 32
13.5.2. The menu items 32 The CREATE button 32 The SELECT button 33 The EDIT button 33 The COPY button 33 The CAMERAS button 33 The TEXTURES button 33 The FILES button 33 The OPTIONS button 33 The QUIT button 34
13.5.3. The information block 34

14. The FILES Menu 34
14.1. LOAD 35
14.2. MERGE 35
14.3. SAVE 35
14.4. OPTIONS 35
14.5. EXPORT 36
14.6. NEW 36

15. Extended Editors 36
15.1. The Bezier Patch Editor 36
15.1.1. Mesh density 36
15.1.2. Redraw Rate 37
15.1.3. Selecting and deselecting control points 37
15.1.4. Changing the control point positions 38 Translate 38 Scale 38 Local Scale 39 Uniform 39 Rotate 39 Local Rotate 39
15.2. The Sweep Editor 39
15.2.1. Curve divisions 40
15.2.2. Moving a knot 40
15.2.3. Smoothing a knot 40
15.2.4. Adding a knot 40
15.2.5. Deleting a knot 41
15.2.6. Entering values 41
15.2.7. Exporting to a RAW file 41

16. Appendix A: Hotkeys 42
16.1. Main menu 42
16.2. Object Browser 42
16.3. Bezier Editor 42

17. Appendix B: Tips 43

User Manual Page 7 MoRay V1.2

17.1. For all POV users: 43
17.2. POV 1.0 users: 44
17.3. POV 2.0 users: 44

18. Appendix C: Definition of Shareware 45

19. Appendix D : Index 46

User Manual Page 8 MoRay V1.2

1. What is MORAY?

MORAY is a program with which you can design scenes for the POV-Ray
raytracer to render. Contrary to normal scene design, with MORAY you
design the scenes graphically. Up to now it was pretty difficult to
imagine what the scene looked like, without laying it out on graph
paper, or doing many test renders. MORAY is like a graph paper, it
lets you place and change objects in wireframe while you see them.
MORAY then generates the text file that POV needs to read.

MORAY can thus also be used as a rapid prototype tool, to place
objects quickly and write the scene file. You can then edit the
scene file to suit your needs, just like you have been doing up to

MORAY stores and works with POV-Ray primitives, as opposed to normal
CAD systems, which mostly convert all objects to triangle meshes or
similar polygon based formats when outputting. This ensures optimum
performance and image quality from the raytracer.

If you're a POV enthusiast and have access to CompuServe you should
check out the GRAPHDEV forum for the latest news and tips on using

If you want to obtain the latest version of POV-Ray you can probably
do so at the same source you obtained MORAY from.

2. MORAY Features

The emphasis in designing MORAY was to be able to work as
intuitively and as graphically as possible. Most of the work can be
done with the mouse.

Three 2D views and a 3D view of your scene are visible on screen.
You can perform all transformations of the objects in the 2D views
with the mouse. The 3D view shows what the current camera will see,
i.e. how POV will raytrace it.

MORAY allows you to,

- scale, rotate and translate an object interactively on the

- define cameras with which to view your scene, that will show
the scene in wire frame as POV-Ray will raytrace it.

- graphically place a bounding box around an object.

- make CSG or composite objects that can be nested arbitrarily

User Manual Page 9 MoRay V1.2

- assign textures from the TEXTURES.INC file to your objects.

- define a new texture from within MORAY.

- manipulate the control points of a bezier patch to create
shapes not easily created otherwise.

- create rotational, translational and conic sweeps that are then
output as smooth triangles.

- copy complex nested objects.

- create multiple copies of an object transforming each copy by
amounts you specify in one easy step.

- export to POV-Ray 1.0 or 2.0.

- specify the complexity of on screen objects.

3. Requirements

3.1. Hardware

MORAY requires at least a 286, a SVGA card and a mouse, although I
cannot recommend this set-up. The minimum system, if you want to do
some larger scenes, would be a 386/25 with a 387 and 2MB EMS memory.

3.2. Software

No specific software is required. You need to have POV-Ray 1.0 or
POV-Ray 2.0 to raytrace the scene. Due to some limitations in 1.0
certain features are not available when writing to 1.0 format. This
includes nested bounding boxes.

User Manual Page 10 MoRay V1.2

4. Installation

To install MORAY simply copy MRAY.EXE to a sub-directory of your
hard drive (e.g. \MORAY) and execute it, it is a self-extracting
archive. The following files will be created:

MORAY.EXE The actual executable.
MORAYPOV.CFG the configuration file (see next section).
SYSFONTx.FNT Fonts for different resolutions.
MRYDEFLT.INC The default include file.
MRYTXTR.LST The list of textures and colors that MORAY
should know about for predefined textures.
MRY\MRYSTART.MDL The default scene file.
MRY\*.MDL Various other scene files.

5. Configuration

There are a number of things that need to be configured for MORAY to
work correctly. You need to specify where to write the POV files,
what file to include on exporting, what file to load as default and
various other settings.

The settings are found at the end of MORAYPOV.CFG, in the [CONFIG]
section. This file can be edited with a text editor and changed
according to your set-up. The settings you can specify are described
in more detail below.

5.1. POVVersion

Specifies the POV version to default to. If you're using POV 1.0 set
this to 1.0, else set it to 2.0.

5.2. ModelPath

The directory in which MORAY stores its native format (binary)
files. You can set this to the directory where your MDL files should
reside. When installing MORAY, the sub directory MDL is
automatically created and this is the default in this file, too. If
you want to store the files elsewhere, just change this setting.

User Manual Page 11 MoRay V1.2

5.3. PrintPathxx

The directory to which MORAY will export the POV file according to
the output format. PrintPath10 is for POV 1.0 and PrintPath20 is for
POV 2.0. If these directories do not exist, MORAY will print a
corresponding warning on start-up and when you attempt to export. If
you export, MORAY will write the file to the current directory.

5.4. IncludeFilexx

This specifies the file which all exported POV files will include.
The contents of this file are placed in exported files, before the
scene data follows. By default this file is MDLDEFLT.INC and
contains statements to include COLORS.INC, TEXTURES.INC and

5.5. TextureList

This file contains the list of textures that you are offered to
choose from when creating pre-defined textures. It also contains the
colors you can choose from when setting the color of a texture. As
it comes with MORAY, it contains all the textures from TEXTURES.INC
and all the colors from COLORS.INC.

5.6. StartupScene

This setting specifies the MDL-file which MORAY loads on start-up,
if no file is specified on the command-line. You can use this to
load a file containing a camera, a light and a ground plane, for
example. The default file MDLSTART.MDL contains a camera and a light
source. You can load and edit this file according to your wishes,
then save it and it will consequently be loaded on start-up.

5.7. CheckTextures

This is a switch setting that can be turned on (YES) and off. When
on, it makes MORAY check the scene for objects that don't have
textures assigned to them, whenever you attempt to export a scene.
If MORAY finds an object that has no texture assigned to it, it will
highlight this object and give you the chance to assign a texture to

User Manual Page 12 MoRay V1.2

5.8. WarnOnNoEMS

Since MORAY depends on the availability of EMS memory to store the
Vector and Edge List, the absence of EMS will consume most of the
memory available to MORAY. To warn you of this, you can set this
variable to YES. If you then start MORAY with no EMS available,
MORAY will print a warning and ask you to verify that you wish to
continue. MORAY will function correctly until you run out of memory.

5.9. AlwaysMapEMS

This setting disables EMS page caching. Normally you would not set
this to NO. If you are experiencing problems in a multi-tasking
environment, such as Windows 3.1 or Desqview, you may want to set
this to YES. The setting will impact the performance of MORAY

5.10. AskOnExport

This setting determines whether MORAY asks you for permission to
overwrite an existing *.POV file when you select EXPORT 2 POV. This
is to prevent you (and MORAY) from inadvertently erasing a file that
you may have edited since the last export. If you set this setting
to something else than YES, MORAY will not ask for permission to
overwrite the file and will simply export the scene.

5.11. ViewLayout

This setting can be used to change the arrangement of the four
views. The default setting is the way a technical drawing is made,
but you may prefer another setting. Following the keyword are four
words: SIDE, TOP, FRONT and 3D. The order these four words appear
determine the position of the views. The order is specified as the
top-left, then the top-right, the bottom-left and the bottom-right

5.12. GraphicsMode

This setting can be used to set the default startup graphics
resolution. If you leave this unset MORAY will start in 640x480.
Using the -G commandline parameter overrides this setting.

Possible values are 640x480, 800x600 and 1024x768.

User Manual Page 13 MoRay V1.2

6. Theory of operation

6.1. Object Attributes

Objects are what MORAY works with. An object has certain data
associated with it that you can change as you would in the text file
describing the scene for POV. The data includes positioning
information (scaling, rotation, translation), texture information
and bounding information. Some of these are optional. There are a
couple of other things associated with an object, but we'll come to
that later.

Each object has a name that needs to be unique in the whole scene.
MORAY assists you with ensuring this.

The objects you create are kept in a global object list. When you
create a complex object, such as a CSG or a Group object, the
objects that you assign to this complex object will be removed from
the global object list. Thus the global object list contains all
top-level objects, i.e. objects that have no parents.

6.1.1. Transforms

Each object has transformations associated with it. These
transformations are handled a bit differently from the way that POV-
Ray handles it. This difference is important to understand. In POV-
Ray you can scale, rotate and translate an object any number of
times and in any order to achieve a certain transformation. This
means that you could first translate an object and then rotate it,
which has the effect of moving an object in an orbit.

In MORAY the transformations that can be applied to an object are
first scaling, then rotation and then translation. You cannot have
another order and you cannot add more transformations. Although this
seems like a restriction at first, you will soon get over this and
it will seem very normal (there are also ways around this).

6.1.2. Bounding boxes

An object can have a bounding box associated with it. This bounding
box is always defined in the objects local co-ordinates, i.e. before
the transformations are applied to it. This is handy, since when you
scale, rotate or move an object, its bounding box will follow this
movement automatically. It is also automatically copied with an
object. Note: if you're using POV 1.0 you will not be able to bound
nested objects. This is a limitation of POV 1.0 that has been
removed for 2.0.

User Manual Page 14 MoRay V1.2

6.1.3. Texture

An object can also has a texture associated with it. This texture
can be a predefined texture from TEXTURES.INC or a texture that is
defined in MORAY. The textures that you cannot define in MORAY are
ones with 3D textures, such as marble, bozo, etc. You can however
define a planar imagemap or a wood texture and assign it to an
object. The imagemap projections (or the wood) will then be shown on
the screen. You can select it and scale, rotate and translate it
till it is correctly placed.

6.1.4. Visibility Level

Objects in MORAY have a visibility level associated with them. This
level determines whether an object will be drawn or not. There is a
global visibility level that defines the visibility to be shown.
Objects that have a visibility level higher than the global level
will not be drawn. You can use this to reduce the complexity drawn
on screen and to thus increase the refresh speed.

You don't always want to see all the details of a scene. For
example, if you are designing a house and want to add a garage, you
don't need to see the fixtures in the kitchen, or the knobs on the
cupboards or the furniture, you just need the basic shape of the
house. So you assign a high level to the furniture and stuff and
keep the walls of the house at a low level.

To assist you in easily changing the visibility of complex (deeply
nested) objects, you can assign relative visibility levels to
objects. This means that you can say that the knob of the cupboard
has one level of visibility more that the cupboard. Then if you
change the cupboards visibility, the knob will change with it,
whereas if you manually assign a visibility level of one more to the
knob, you will not change the level of the knob when you change that
of the cupboard.

6.1.5. Nested Attributes

There is something special about nested objects (CSG or Group
objects). MORAY allows textures and visibility levels of group-
objects to be inherited by lower level objects. This means that you
can assign a texture to a high-level object in the hierarchy and
objects below this hierarchy will automatically have this texture
assigned to them, unless they specifically use another texture. So
you don't need to assign a texture to every object you create. If
you create a CSG object that should be one color, you just assign
this texture to the CSG and leave the textures of the sub-objects
undefined. They will then automatically inherit the texture from the

User Manual Page 15 MoRay V1.2

This is also true of the visibility level. If an object has 0 as its
level it will be assigned the level of its parent object. As
mentioned above you can also specify that an object has a visibility
level relative to its parent object.

6.2. Basic Interaction

When MORAY first starts up you will see the main screen with 3 2D-
views, a 3D-view and the main menu. Below the four views is space
for various sub-menus. You interact with the scene in the 3 views,
using the mouse. You can select and move objects in any of the
views. If you have placed a camera in the scene, your actions are
displayed in the 3D window from its viewpoint. This is also exactly
what POV will render.

The menu is operated like any other normal GUI menu, you click the
mouse button while the cursor is over the button you want to choose.

Interaction on the main screen is covered in more detail later.

6.3. The Primitives

The primitives that MORAY supports are all closed objects. They are:
Cubes, Spheres, Cylinders, Cones and Tori. These can also be used in
CSG and Group objects.

More primitives are rotational, translational and conical sweeps,
bezier patches and heightfields. Light sources are also in this
category. These objects can be used in Group-, but not in CSG

6.3.1. Cube

The cube is your standard issue box that goes from
(-1,-1,-1) to (1,1,1), i.e. is centered around the origin and is 2
units wide in each direction.

6.3.2. Sphere

This is a normal run of the mill sphere, centered at the origin with
a radius of 1.0. You can unevenly scale this sphere, the conversion
to the correct primitive for POV-Ray is handled by MORAY.

6.3.3. Cylinder

The cylinder is defined as an object with its base at Z=0, extending
to Z=1, centered on the X-Y plane, with a radius of 1.0.

User Manual Page 16 MoRay V1.2

6.3.4. Cone

The cone has its cap plane at Z=0, where the radius is 1.0 and
extends to Z=1 where it comes to a point.

6.3.5. Torus

The torus lies in the X-Y plane. The major and minor radius can be
entered from its editing menu (see later).

6.3.6. Rotational sweep

The rotational sweep is an object defined by taking a number of
curves (segments) and rotating them about the Z-axis.

When MORAY exports a rotational sweeps, it outputs a union of
smooth_triangles. The whole object is auto-bounded with one bounding
box, unless you provide a bounding box yourself (which is not really
necessary, since MORAY will make a really tight bound).

6.3.7. Translational sweep

The translational sweep is an object defined by extruding a number
of curves (segments) that make a closed outline, from Z=0 to Z=1.

This is output as a union of triangles and smooth_triangles. The cap
and base planes are created by splitting the polygon, obtained by
connecting all edge points together, into triangles.

6.3.8. Conical sweep

This is a sweep that is defined by taking a number of curves
(segments) that make a closed outline and extruding them from Z=0 to
Z=1, except that all points on the curves move towards and meet at

6.3.9. Bezier Patches

A single bezier patch (the POV-Ray primitive) is defined by sixteen
control points. This does not give you many possibilities of
deforming the surface. Basically you can make a 'hump' type shape or
a paper sheet like object. To make more complex bezier patch shapes
you need to have more control points, i.e. more patches.

MORAY has the ability of handling connected bezier patches.

User Manual Page 17 MoRay V1.2

Getting two adjoining bezier patches to meet at a common edge is
relatively easy, all you need to do is to place the control points
that are along the shared edge at the same positions. But getting
the patches to make smooth transitions is difficult, because the

slope at these shared control points need to be the same in both
patches. This is very tedious to do by hand.

MORAY handles this for you, making sure that adjoining patches will
not only connect correctly, but will also exhibit 1st order
continuity, meaning that you won't see a crease or edge where the
patches join. This is done by not allowing the user to move the
shared control points directly. The shared control points are
calculated by MORAY according to how you move the surrounding
control points. This ensures that the slope at the control point
exhibits 1st order continuity.

You can create a sheet of patches. The patches are created so that
they share their common edges. You can create one that is 3 by 2
sheets, for example. This patch starts out flat.

You can also create a cylinder type structure. It starts out as a
cylinder and can be deformed to make a bulging pipe, for example.
Two bezier patches share the two opposite edges to make up one
cylinder segment. You can specify how many of these segments to
stack on top of each other.

You can also create another cylinder type-structure. It also start
out as a cylinder where not two, but four patches make up one
cylinder segment. This arrangement is used for the body and lid of
that classical graphic object, the Utah teapot. The spout and handle
are made of the 2 cylinder version, above.

The patches you create will remain one object, no matter how many
sub patches make up the object.

6.3.10. Heightfields

MORAY can handle heightfields, although they are shown as cubes,
i.e. the heightfield data is not read in from the file. This would
be too much data and consume a lot of memory and would bog down
redraws pretty heavily.

6.3.11. Light sources

Light sources are not really primitive objects, since one can't see
them, all they do is let us see the rest. But they fit into the
primitive object category from the way that MORAY handles them and
what you can do with them.

User Manual Page 18 MoRay V1.2

Contrary to POV, you can place light sources in composites (group
objects). So if you make a desk lamp, you can attach the light
source to the globe in the lamp. MORAY will calculate the correct
position according to the lamp transformations and export the
correct position to POV.

6.4. The Non-Primitives

These are CSG objects and Group objects.

6.4.1. CSG Objects

CSG objects are made up of one or more primitives or CSG objects and
can be a union, a difference or an intersection of these sub-

6.4.2. Group Objects

Group objects are made up of one or more primitives, CSG- or Group
objects. They are similar to composites in POV-Ray except that you
can also place light sources in Groups.

6.5. The Cameras

The cameras are special objects. You can define the position, the
lookat and the aperture of the camera. You can also tell MORAY how
large to display the camera in the wire frame display. MORAY will
create the correct definition for POV-Ray.

The scaling fields of the camera objects are used differently from
the way they work with normal objects. The X-scale specifies how
large to draw the viewing pyramid (which has nothing to do with
POV), the Z-scale specifies the aperture of the camera in degrees.

The rotation fields are not used in cameras.

The translation fields define the position of the camera or the
position of the lookat point. These can be switched for moving on
the screen.

User Manual Page 19 MoRay V1.2

6.6. The Textures

There are two ways of defining a texture. You can select a pre-
defined texture from a list defined in one of the support files, or
you can create your own. If you create a pre-defined one you cannot
edit any of its parameters, since it is defined outside of MORAY. If
you create your own you can change the ambient, diffuse, specular,
reflection and refraction components as well as the color.

7. Creating an Object

To create a new object, click on the CREATE button in the main menu
or press Alt-N (for New).

You will be presented with a list of possible objects you can

Click on the object you wish to create.

You will be asked for a name for the object. This must be a unique
name, i.e. no other object in the scene is allowed to have the same
name. If you enter a name that already exists, you will not be
allowed to create this object.

MORAY then creates the object and places it in the global object
list. Depending on the type of object created you will need to
specify further information about the object.

7.1. Primitives

All primitives require no more information and you are presented
with the objects editing menu (see Editing an Object later).

7.2. Bezier patches

To create a bezier patch, you need to tell MORAY what type of patch
you would like (see Bezier Patches).

If you want a sheet type patch, click on SHEET. Then select how many
basic patches (i.e. the POV-Ray primitive type patch) to create. You
need to specify how many in X and how many in Y should be created.
Then click ON OK to create the patch.

If you want a cylinder-type patch, click on the 2-patch or 4-patch
cylinder button. Then specify how many cylinder parts should be
stacked on top of each other. Then press OK to create the patch.

User Manual Page 20 MoRay V1.2

After the patch has been created you will be placed in the object
editing menu.

7.3. CSG and groups

If you create a CSG or Group object you can specify which objects to
combine to a CSG or Group.

An object selection list on the left will show you all defined
objects. You can select an object to attach to the CSG or Group by
double-clicking on it, or clicking once and selecting GROUP IT. When
you are done press DONE and you will then be presented with the
objects editing menu.

8. Creating a Texture

To create a texture select TEXTURE from the CREATE menu or CREATE
from the TEXTURE menu.

You will be asked to choose what type of texture to create.

8.1. Predefined POV texture

MORAY knows about all textures you put in the TextureFile (see
Configuration). It will display a sorted list of these textures. You
can choose one and it will be created for you. If you wish to create
another one, simply click on it, otherwise press cancel or click on

When exporting your scene, MORAY will not create the definition of
this texture, it's up to you to include the correct file containing
the textures declaration.

8.2. Opaque texture

This allows you to create the texture from within MORAY. You can
change the ambient, diffuse, specular and various other components.

When exporting you scene, MORAY will create a texture definition
according to your settings.

User Manual Page 21 MoRay V1.2

8.3. Imagemap texture

This texture allows you to create an imagemap texture, that you can
graphically place on an object. Once you have assigned a texture of
this type to an object, it will be displayed on the wire frame
display. It is a light green rectangle with arrows from the origin
(bottom left) of the image along the X- and the Y-axis. The X-axis
has a closed arrow, to help you to keep the X- and Y-axis apart.

You can select this texture graphically and scale, rotate and move
it about just like any other object.

8.4. Wood texture

This texture is meant for making it easier to place wood on an
object. It also has a graphical display, like the imagemap. The
display consists of four lines along the woods major axis, forming a
circle (well square, actually). The wood will have one ring
(roughly) in this circle. You can now select the wood and scale and
rotate it to make the object look like it was cut out of the wood at
a certain angle or position.

9. Selecting an Object

Before you can edit or change an object, you need to select it. Only
one object can be selected at any one time. It is displayed in
yellow on the screen, whereas all the other objects are gray.

9.1. Graphically

This is the easiest and most straightforward way to select an object
or a camera, or a texture, or a bounding box. Move the cursor over a
line that belongs to the object you want to select. Then press and
hold the Shift-Key and the left mouse button. Then drag the mouse to
open a rectangle that covers the line, i.e. the line should run
through the rectangle you make. The first object MORAY finds that
has a line running through this rectangle will be the object that is

User Manual Page 22 MoRay V1.2

9.2. Using the Object Browser

If you click on the SELECT button in the main menu a window with a
tree-like display of the names of all objects will be displayed. The
names are displayed in buttons. Top-level objects are displayed at
the left edge of the window. Sub-objects are displayed to the right
of their parents, connected to them by lines. Bounding boxes are
displayed in red above the objects they bound.

To select an object simply click on the button with the name of the
object you want to select on it. The selected object is displayed on
a yellow button. All the sub-objects belonging to the selected
object are displayed in a slightly lighter color.

If you want to edit the object, you can immediately press Alt-E from
the browser. The window will then disappear and the normal object
editing menu appears. After you have finished editing the object you
will be returned to the browser.

If you want to delete and object you can also press Alt-D to delete
the selected object. You will be asked to verify this decision.

9.3. Selecting the Parent of an Object

If you have selected an object and wish to select its parent, press
Alt-P. If no parent object exists for the currently selected object,
nothing happens.

9.4. Selecting the Texture of an Object

To select the texture of an object, press Alt-T while the object is
selected. You can now scale, rotate and move it, just like an normal
object. This is handy for placing a planar imagemap.

9.5. Selecting the Bounding Box of an Object

You can select the bounding box of the currently selected object by
pressing Alt-B. If the object has no bounding box then nothing will

You can directly select the bounding box in the object browser (see

User Manual Page 23 MoRay V1.2

10. Editing an Object

Before you can edit an object, you need to select it. See the
chapter above on ways to do this.

10.1. The Object Edit Menu

This is a basic menu that all objects share. It offers controls for
changing the texture, the bounding box, the visibility level and the
name of the object. If an object has another editor (true for bezier
patches and sweeps), you can call an extended editor from this menu.
More complex objects will have more buttons added to it.

10.1.1. Assigning a texture

There is a list button containing all the names of the currently
created textures. You can assign one of these textures to the object
by clicking on the required texture.

If you have not yet created the texture fro this object, you can do
so by clicking on the NEW button next to the NO TEXTURE button. You
will be allowed to create one or more textures and can then assign
on of them to the object.

The name of the currently assigned texture is shown in a label
button. Above this label button is a button with the legend NO
TEXTURE. This button can be used to clear the reference to the

The texture name may have an asterisk ('*') in front of it. This
means that the texture has been inherited from the parent object.
Clicking on the NO TEXTURE button in this case will have no effect.

10.1.2. Assigning a bounding box

There is a list button containing all the names of the currently
available (i.e. not assigned) bounding boxes. You can assign one of
these bounding boxes to the object by clicking on the required
bounding box. It will disappear from the list.

The name of the currently assigned bounding box is shown in a label
button. Above this label button is a button with the legend NO
BOUND. This button can be used to clear the reference to the
bounding box.

The bounding box may have an asterisk ('*') in front of it. This
means that the bounding box has been inherited from the parent

User Manual Page 24 MoRay V1.2

10.1.3. Changing the visibility

There are four buttons concerned with the visibility level of an
object. There is a 'R' button, a '+' button, a display button and a
'-' button.

The display button shows the current visibility level.

If it is prefixed by an asterisk, then the visibility level is
inherited from the parent object.

If it is prefixed by a plus sign, then the visibility level is
relative to the parent object.

The 'R' button specifies whether the visibility of the object is
relative or absolute. If the button is depressed then the level is

Pressing the '+' or '-' buttons increases or decreases the
visibility level. If you decrease the visibility level to 0, the
object will inherit the visibility from its parent.

10.1.4. Changing the name

The name of the object is displayed in a label button. Pressing the
NAME button will pop up an editing window, allowing you to enter the
new name.

10.1.5. Calling the extended editor

If an object has an extended editor the EXT. EDIT button will be
available. Press this button to enter the extended editor.

10.1.6. Leaving the Object edit menu

To leave this object editing menu either press the DONE button or
click the right mouse button.

10.2. The Torus Edit menu

The torus menu offers two buttons more than the normal object menu.
These are used to set the outer and inner radii of the torus.
Clicking on one of the buttons will pop up an editing window,
allowing you to specify the new radius.

User Manual Page 25 MoRay V1.2

10.3. The Heightfield Edit menu

The heightfield menu offers a button to specify the filename of the
heightfield. Although you can enter any file name, MORAY will only
work correctly on GIF, TGA and POT files. If you specify another
file name, you will need to edit the POV scene file. Clicking on the
buttons will pop up an editing window, allowing you to specify the
file name.

10.4. The Light Edit menu

The editing menu for lights is similar to the normal object editing
menu, except that the texture and bounding box lists are inactive.

Additionally it contains sliders for specifying the color and/or
brightness of the light.

The top three sliders are R, G and B components respectively. If you
want colored lights, use these sliders to set the light color.

The fourth slider is set by MORAY to the gray equivalent of the
colors. If you manipulate the fourth slider you are specifying white
light and the slider sets the brightness of the light. All sliders
will then become the same value.

10.5. The Group Edit Menu

When you edit a group object the basic editing menu described above
will be expanded by controls to add and remove sub-objects and a
list of the current sub-objects.

10.5.1. Adding a sub-object

To add a sub-object click on the ADD OBJECT button. You will be
asked to select the object to add to the group. When you confirm the
choice the object will be removed either from the global object list
or from the object it was a sub-object of. It will now appear in the
object list.

10.5.2. Removing a sub-object

To remove one of the sub-objects click on this object in the list.
The UNGROUP button will be activated. Pressing on this button will
cause the object to be ungrouped and it will re-appear in the global
object list.

User Manual Page 26 MoRay V1.2

10.6. The CSG Edit Menu

When you edit a CSG object the basic editing menu described above
will be expanded by controls to add and remove sub-objects, to show
a list of the current sub-objects, to change the order of the sub-
objects and to specify the operation.

The first object listed in the sub-object list is the base object.
If the CSG is a difference this will be the base object from which
all subsequent objects will be removed.

10.6.1. Adding a sub-object

To add a sub-object click on the ADD OBJECT button. You will be
asked to select the object to add to the CSG object. When you
confirm the choice the object will be removed either from the global
object list or from the object it was a sub-object of. It will now
appear in the object list.

10.6.2. Removing a sub-object

To remove one of the sub-objects click on this object in the list.
The UNGROUP button will be activated. Pressing this button will
cause the object to be ungrouped and it will re-appear in the global
object list.

10.6.3. Changing the CSG operation

Press the OPER button until correct CSG operation is shown. Choices

DIFFRNC makes an object that consists of the first subobject in the
list minus all the rest, i.e. all subobjects except the first are
cut away from the first subobject.

INTERSCT makes an object that consists of all the space that all the
subobjects share.

UNION makes an object that consists of all the subobjects.

10.6.4. Changing the sub-object order

Press the CYCLE button to cycle the subobject. The first object
becomes the last object and the second object becomes the first
object. This allows an object that was not added to the CSG object
as the first object to be made the main object.

User Manual Page 27 MoRay V1.2

11. Copying objects

MORAY allows you to make single or multiple copies of the selected
object. If you click on COPY or press Alt-C from the main menu, a
sub-menu will open where the main menu was.

By default, the menu is setup for making a single copy of the
object. If that's all you want to do, just click on OK.

There are transformation buttons, just like in the main menu, which
enable you to transform each object as it is created. For example,
if you make multiple copies of a cube and set the X-Translation to
2, each new cube will be offset by 2 units from the last created
cube along the X-axis, forming a line of cubes.

There are two modes that you can specify for scaling, rotation and
translation modes. Change modes by clicking on the SCALING, ROTATION
or TRANSLATE buttons. The button text will change from OFFSET to
FACTOR or vice versa.

Offset means that for the new copy the values that you entered are
simply added to the values that the previous copy had. For example,
if you've set X-translate to 2, all subsequent copies will be two
units away from each other.

Factor means that the values of the object are *multiplied* by the
values that you entered. For example if you've set X-translate to 2,
and the first cube has a X-translation of 1, the first copy will be
at 2, the next at 4, the next at 8, then at 16, at 32 and so on.

The ATTACH TO SAME PARENT button specifies whether to attach the new
copies, that will be created, to the same parent object as the
original object is attached to. This button is only active if the
object you are copying has a parent object.

The REPEAT COUNT button specifies how many copies to create. Click
on the button to enter a repeat count.

Once all the settings have been set to your satisfaction, click on
the DONE button for the objects to be created.

If you change your mind, press CANCEL.

12. Texture Editing

You can edit some of the textures that you create in MORAY. If you
use a predefined texture, however, you cannot edit any of the
parameters of the texture, since it needs to be defined in an
include file.

User Manual Page 28 MoRay V1.2

Pressing TEXTURES from the main menu brings you to the texture list.
On the left is a list showing all the texture names that you have
created in this scene. Clicking on a texture will set all the
buttons to the texture settings of that texture. You can then click
on the parameters and enter new values. There are also three sliders
with which you can set the color of the texture.

12.1. Deleting a texture

You can remove unused textures and used textures. If you want to
delete textures that are not being used in the scene, click on the
DEL UNUSD button. Otherwise click on DELETE and the texture will be
deleted. Any references to this texture will also be removed, i.e.
objects that have the texture assigned to them will consequently
have no texture assigned to them after this.

12.2. Replacing a texture

You may change your mind about what type of texture to assign to an
object, or you may work with dummy textures until the geometry (i.e.
scene layout) is finished and then wish to set the textures to their
correct setting.

This function can be used to accomplish this. You select one of the
textures in the list on the left of the menu and then click on
REPLACE. You then need to create the texture. If you've defined it
somewhere already then create a pre-defined one with the correct
name. When done, MORAY will replace all references to the first
texture by references to the newly created one.

12.3. Creating a texture

To create a new texture press CREATE. You will be asked what kind of
texture and the name of the texture.

12.4. Texture display

The imagemap texture is displayed in the wire frame display to aid
you in placing (scaling, moving, rotating) it relative to your
object. It consists of a light green rectangle with arrows along the
X and Y-axis of the image file. The X-axis has a CLOSED arrow on
it's end, the Y-axis has an OPEN arrow on it's end. This assists you
in seeing exactly how the image file will be mapped onto the object.

User Manual Page 29 MoRay V1.2

The wood texture is also displayed in the wire frame display to help
you place it correctly. It is displayed as four lines along the axis
of the tree at a distance of 0.866 from the center of the wood. Use
this as a reference when scaling the texture.

12.5. Editing the IMAGEMAP texture

The Imagemap texture also has it's own editor, next to the editing
facilities in the texture editor. Here you can set the filename,
tiling and smoothing of the imagemap texture.

Click on FILENAME to specify the filename to use for the texture
map. You need to specify the extension, too, since MORAY extracts
the extension when exporting to POV to specify the image file type.

Click on the ONCE/TILED button to toggle between the two. The
displayed status is the status that will be exported. If the button
says ONCE the texture will only be mapped once onto this body.

Click on the ROUGH/SMOOTH button to switch on (or off) the
interpolation parameter.

13. The main screen

The main screen is divided into four views. To the right and below
these views are menu areas. On the main screen the area to the right
contains the Main menu and the area below the views is empty.

13.1. The three 2D Views

The 2D views represent views from above, from the side and from the
front. Each view can be separately panned and zoomed and can have a
labelled grid to aid you in placing objects.

13.1.1. Disabling a view

You can disable a view by moving the cursor over it and pressing the
'-' key. The view will be cleared and will not be refreshed when you
change the scene.

13.1.2. Enabling a View

You can enable a disabled view by moving the cursor over it and
pressing the '+' key. The view will be from then on be updated when
you change the scene.

User Manual Page 30 MoRay V1.2

13.1.3. Enlarging a View

You can enlarge a view by placing your cursor over the view in
question and pressing either the middle button, if you have a three-
button mouse, or both left and right buttons if you have a two-
button mouse. The view will be enlarged to cover the area previously
covered by the three views.

Pressing the same button(s) again will make the view revert to its
original size.

13.1.4. Toggling the Grid in a View

You can turn the grid in a view on and off by moving the cursor into
the specific view in question and pressing the Alt-G key. This will
turn the grid off if it was on and on if it was off.

13.1.5. Panning a View

Each view can be separately panned to bring certain areas of a scene
into view. To do this, move the cursor into the view you want to
pan. Press and hold the CTRL-key. Now press and hold the left mouse
button and drag the scene. The scene will follow the mouse. When
done release everything.

13.1.6. Zooming a View

To zoom into or out of a view, move the cursor to the view in
question. Now press and hold the ALT-key. Press and hold the left
mouse button and move the mouse up (away from you), to zoom into the
view or move it down (towards you) to zoom out of the view.

13.2. The 3D View

The 3D view is the view that the last selected camera sees and the
view that the raytracer will create. If this window is blank, you
either don't have a camera defined or it's pointing away from any
objects in the scene. You cannot interact with this window in any
way, it's merely a display of the scene, although it can be enlarged
and disabled (see above).

13.3. Interacting with Objects

You interact graphically with the selected object on this screen.
All interaction is done by moving the cursor over the view where you
want to interact with the object, depressing the left mouse button
and moving the mouse until the object has been manipulated to your
satisfaction and then releasing the mouse button.

User Manual Page 31 MoRay V1.2

What happens to the object when you do this is determined by the
currently set interaction mode.

There are three basic interaction modes: scaling, rotating and
moving. Scaling is divided into uniform and non-uniform scaling.

13.3.1. Setting the interaction mode

The interaction mode is set by either clicking on the mode you need
on the main menu, or by pressing the corresponding key on the
keyboard. You cannot change interaction modes while having the mouse
button depressed.

To set:

- non-uniform scaling mode, press 'S' or click on SCL.

- uniform scaling mode, press 'U' or click on USCL.

- rotation mode, press 'R' or click on ROTATE.

- translation mode, press 'T' or click on TRANS.

13.3.2. Using Scaling mode

To scale objects, you need to move the mouse into the view that
displays the objects in the dimensions you want to scale. If you
have uniform scaling mode set, this doesn't matter, since all
dimensions of the object are scaled equally. Now press the left
mouse button and drag the mouse to the upper right. The object will
follow the mouse movement. When scaled enough, release the button.

13.3.3. Using Rotation mode

To rotate an object move the mouse into the view where the axis of
rotation would come out of the monitor. Move the mouse to a point
away from the objects origin, press and hold the left mouse button
and drag the mouse around the objects origin. It will rotate about
its origin, following your mouse.

13.3.4. Using Translation mode

To move an object move the mouse into the view representing the
plane in which to move the object, i.e. the dimension that should
remain the same should be the one that would stick out of the

User Manual Page 32 MoRay V1.2

13.4. Interaction strangeness

When you select an object and attempt to scale, rotate or move it,
it may not follow your mouse. This happens when the object is part
of a hierarchy of objects that have also been rotated or scaled.

For example consider the following set-up: you have a group
containing two non-transformed cubes. Now you rotate the group by 90
degrees around the Z-axis. If you now select one of the cubes and
attempt to move it along the X-axis, it will move along the Y-axis!
This is because the transformation of the cube (translation in X) is
appended to the group transformation (rotation about Z). So the
cubes X translation gets rotated to a (in the absolute world) Y

So when designing scenes, start from the bottom up and only group
once all subobjects have the correct relative position to one

13.5. The Main Menu

The main menu is the menu that you see when the program has started
up. It has two main regions. The top half or so contains information
about the current object. Specifically it displays the name of the
object and its transformations.

13.5.1. The Transformation blocks

The very first button contains the name of the object. Then follow
three blocks of transformation information, as well as the current
transformation mode indicators (more on that later).

The first block of three buttons contain the scaling that is being
applied to the object in X, Y, Z order.

The second block contains the rotation in degrees that is being
applied to the object in X, Y, Z order.

The third block contains the translation that is being applied to
the object.

13.5.2. The menu items

Following the transformation block are a couple of menu items that
allow you to access certain functions of the program. The CREATE button

This button brings you to a menu where you can create new objects,
cameras or textures.

User Manual Page 33 MoRay V1.2

Hotkey : Alt-N The SELECT button

This button can be used if you want to select an object by name
instead of graphically (see later). The EDIT button

This button can be used to edit the currently selected object. If no
object is selected you will first be asked to select one.

Hotkey: Alt-E The COPY button

This button makes one or more copies of the currently selected
object. If no object is selected you will be asked to select one.
You will then be presented with another menu, where you specify a
few things about the new object(s). This menu is explained in more
detail later.

Hotkey : Alt-C The CAMERAS button

This brings you to the camera list editor. Here you can create,
delete or rename cameras. The TEXTURES button

This button brings you to the texture editor where you can create,
edit, replace or delete textures. The FILES button

This button brings you the files submenu. Here you can load, save,
merge and export scenes.

Hotkey : Alt-F The OPTIONS button

This button brings up the options menu, where you can set various
parameters for MORAY to use.

Hotkey : Alt-O

User Manual Page 34 MoRay V1.2
__________________________________________________________________ The QUIT button

This button will exit the program. If you have changed the scene and
have not saved it, you will be asked to confirm this action.

Hotkey : Alt-X

13.5.3. The information block

Below the main menu are six buttons that give you information about
the current state of MORAY. The first three show the X, Y and Z
position of the cursor when in one of the 2D views.

The fourth button shows the amount of available conventional memory
and the amount of available EMS.

The fifth button shows the number of points currently being
calculated for every refresh and the percentage of the point list

The sixth button show the number of edges currently being drawn
during a refresh and the percentage of the edge list used.

14. The FILES Menu

The files menu is used to load, save, merge and export files to/from
disk, to delete the scene in memory and to set some options.

The actions that can be executed use the current filename, which is
shown below the list of available drives. If it is empty, the action
buttons are inactive.

To enter a new filename either click on the filename button or
simply start typing. Either way, an editing window will pop up where
you can enter a filename.

To select a filename already on disk, simply click on the name in
the list button showing the MDL files in the current directory. It
will appear in the filename button above the list. If your file is
in another directory you can navigate through the directories by
clicking on the directory names, which are surrounded by square

When you are done, press DONE or the cancel button to leave the
FILES menu.

User Manual Page 35 MoRay V1.2

14.1. LOAD

Once you have selected or entered a name, click on LOAD to load the
MDL file. If there is a scene in memory you will be asked whether to
delete this scene. Answer YES if you want to discard the scene in
memory and load the one on disk. If you press NO, MORAY will not
load the file.

14.2. MERGE

You can add files to your current scene by clicking on MERGE. The
selected filename will be loaded and added to the scene. This can be
used to import objects from a library for example.

14.3. SAVE

If you loaded a file and now want to save it again, you can click on
SAVE directly, since the filename will still be the same (unless you
merged in another file). MORAY will keep the old file, changing its
extension to BAK, and will save the scene to the original name.

If you want to enter a new name under which to save the scene, do
this before clicking on SAVE. Just start typing the filename.


Clicking on this button will open a menu below the views, which
allows you to change a few options.

You can change the target raytracer to either POV 1.0 or POV 2.0.

You can call the texture checking routine. This searches the scene
for objects that have no textures assigned to them. This object will
be selected and you can the edit it and assign a new texture.

You can enable or disable the grid snap. You can also set the snap
grid size. Alt-S can be used to toggle snap.

There is also a REGISTER button that you will use, if you decide to
register. This function will ask you to type in your name and a
number (which you will receive when registering).

WARNING : Do *NOT* use this function with incorrect data. MORAY will
not be usable if you enter incorrect data.

User Manual Page 36 MoRay V1.2

14.5. EXPORT

This button is used to actually write the scene in memory to a POV
scene file. MORAY will create a file in the target directory as
specified in the CFG file (see Configuration). You can then leave
MORAY and start POV to trace the scene you just created.

14.6. NEW

This button clears the scene in memory. It will ask you to verify
this decision first, though.

15. Extended Editors

Two object types have further editors that change the object
geometry; the Bezier patches and the sweeps.

15.1. The Bezier Patch Editor

This editor allows you to change the control points of your patch
and the graininess of the patch display, i.e. how fine to draw the

The patch is drawn in the 2D-Views and the 3D-Views, and you
manipulate the points similar to how you would manipulate the
objects in the main screen. The views can be panned and zoomed just
as on the main screen.

The patch is manipulated by moving control points. MORAY allows you
to move a single control point or a selection of control points.
There are a couple of ways to move the control points, you can move
them, you can scale them and you can rotate them.

15.1.1. Mesh density

You can adjust the amount of mesh lines that MORAY will create for
your patch. If you want a detailed view, you would select a high
density, i.e. move the slider to the right. This will slow down
screen redraws and chew up memory. If you're satisfied and don't
need that much detail you could then select a lower setting.

This setting is only relevant for MORAY, since POV-Ray handles the
bezier patches itself.

User Manual Page 37 MoRay V1.2

15.1.2. Redraw Rate

Apart from using the Mesh density setting to decrease the amount of
lines that need to be drawn, you have two more options of increasing
the redraw rate while moving the control points.

The SHOW MESH button can be used to hide or show the mesh while
moving the control points. The mesh redrawing can take quite some
time, so it may be good to hide it while moving the points. Once you
release the mouse button, after dragging the points, the mesh will
be redrawn.

Hotkey : M

The SHOW CTRL button can be used to hide or show the control point
grid while moving control points.

Hotkey : C

15.1.3. Selecting and deselecting control points

To select points move the cursor to a view where the control points
are visible.
Press the Left-Shift-key and then open a rectangle that encloses the
points. Do this by clicking the left mouse button, keeping it
pressed and moving the mouse. When the points are inside the
rectangle release the mouse button. The selected points will now be

You can see the number of points you have selected in the
corresponding button on the menu.

You can also depress the Left-Shift-key and press and release the
left mouse button. In this case all points near the cursor will be

To deselect points, do the same as above, but enclose the selected

MORAY tries to guess at what you're attempting to do with respect to
selecting or deselecting.

If you do a select operation on points that are already selected,
MORAY assumes you want to deselect them and does so.

If you do a select operation on points that are all deselected,
MORAY assumes you want to select them.

If you do a select operation where you enclose selected and
deselected points, MORAY can't know what you want to do, so it looks
at the keyboard modifier. If you've pressed Left-Shift, MORAY
assumes you want to select and if you've pressed Right-Shift, MORAY
assumes you want to deselect.

User Manual Page 38 MoRay V1.2

Naturally, you can change views between selection operations. So if
you wanted to select a point in the side view and there are other
points 'behind' this point you'll have selected all these points.
Then to deselect those that are behind the point of interest, you
would go to the top view and deselect the ones that you're not
interested in.

There are a three buttons that you can use to change the selection.

You can select all the control points by pressing on MARK ALL. This
is good for moving the whole origin of the patch somewhere else.

You can deselect all points by clicking on UNMARK ALL. This is
useful, if it would be a bit tedious to deselect the points by hand.

You can change the state of all the points by clicking on TOGGLE
MARKS. This selects deselected points and deselects selected points.
If you want to select all points but one, you could select that one
and then click on this button.

15.1.4. Changing the control point positions

Once you've selected points to manipulate you have seven
possibilities of moving them. While moving the control points, the
control grid and the actual patch mesh can be made to disappear (see
Redraw Rate, above). Once you are finished moving the points about,
the mesh will reappear.

You can select three basic modes: scaling, rotation and translation.
Scaling and rotation can be made to work locally (more later) and
scaling can be switched to and from uniform scaling. Translate

Use this mode if you want to just move all the selected points to a
new location. Move them just like you would an object. Press and
hold the left mouse button and move the mouse.

Hotkey : T Scale

Use this mode to move the points in such a way that it would
represent scaling the points relative to the whole patch. When you
move the mouse, after pressing and holding the left mouse button,
the points will be scaled accordingly.

Hotkey: S

User Manual Page 39 MoRay V1.2
__________________________________________________________________ Local Scale

If you want to scale the points in relation to each other, i.e. want
to get them closer together or further apart, you would use this
mode. MORAY calculates the center of gravity of all selected points
and scales relative to this point.

Hotkey : L (after pressing S) Uniform

If you press the UNIFORM button then scaling will be uniform, i.e.
MORAY will scale the selected points equally in all three

Hotkey : U (toggle) Rotate

If you want to rotate the points about the origin select use this
mode. Again, press and hold the left mouse button and move the
cursor in a circular path around the origin.

Hotkey : R Local Rotate

If you want to rotate the points in relation to each other, i.e.
about their center, use this mode. MORAY calculates the center of
gravity of all selected points and rotates the points around this
point, according to the movement of the cursor.

Hotkey : L (after pressing R)

15.2. The Sweep Editor

The three sweep types (rotational, translational, conical) all have
the same editor.

Sweeps consists of a number of curved line segments, forming a
closed outline.

For a translational sweep, this outline is swept along a straight
line from Z=0 to Z=1.
For a conical sweep the outline is also swept from Z=0 to Z=1, but
is also shrunk to a point at the same time.
For a rotational sweep the outline is rotated about the Z-axis.

The editing screen can be panned and zoomed like the views on the
main menu.

User Manual Page 40 MoRay V1.2

The editor starts out with four segments, arranged in a square. At
each end of a segment is a point with two handles (a knot). These
handles determine at what angle the curves leave the knot.

To move the handles, move the cursor over a handle, press and hold
the left mouse button and move the handles about. The handles only
rotate about the position of the knot, i.e. where the two curve
segments meet.

Normally the two handles are locked in relation to each other.
To move only one of them, press and hold the Shift key before
pressing the mouse button.

15.2.1. Curve divisions

The divisions slider determines how many times the line segments are
subdivided. For editing, this setting only influences the display on
the screen, but once you leave the editor, it determines how fine
the wire frame will be displayed. This of course directly influences
the amount of memory the object requires and how fast it can be

The divisions setting has no influence on the number of divisions
used for exporting.

15.2.2. Moving a knot

To move a knot, move the cursor over the knot position, press and
hold the left mouse button and drag the knot around. The attached
curve segments will move along with the knot. When you have placed
the knot correctly, let go of the mouse button.

15.2.3. Smoothing a knot

In order for a sweep to be continuous across a knot, the handles
need to be at the same angle or 180 degrees apart.
To make the handles of a knot form a straight line you can use the
SAME ANGLE button. Click on it, then move the cursor over the knot
in question and click again. The handles will be set to the same
angle and the sweep will not have a visible edge there.

15.2.4. Adding a knot

To add a knot, click on the INSERT KNOT button. Then move the cursor
onto the curve at the position where you wish to insert the knot.
Click the mouse. A knot will be inserted there, in such a way as not
to create an edge. You can then move or edit this knot.

User Manual Page 41 MoRay V1.2

15.2.5. Deleting a knot

To delete a knot, click on the DELETE KNOT button, move the cursor
over the knot you wish to delete and click the mouse. The knot will
be removed and the knots on either side of the deleted knot will be
joined. You can delete all knots except three, since you cannot make
a useful outline with two segments.

15.2.6. Entering values

You can also directly enter the values for the last selected knot.
Simply click on the corresponding button and enter the new value.

15.2.7. Exporting to a RAW file

You can export sweeps to a file in raw format. This will allow you
to create sweeps that you can use with other programs that can read
raw files. Raw files are normal ASCII text-files that contain data
that define triangles. There are nine numbers per line, three sets
of XYZ coordinates.

If you are using POV 1.0 this might be of interest to you in
speeding up the rendering. POV 2.0 will include code that optimizes
composites made of triangles, but POV 1.0 does not do this.

However, there is a program called RAW2POV.EXE by Steve Anger that
creates POV 1.0 files from Raw files, that are tightly bounded and
will speed up rendering tremendously. RAW2POV.EXE can be found on
CompuServe (GO GRAPHDEV, LIB 8) or on most BBS that have POV.

User Manual Page 42 MoRay V1.2

16. Appendix A: Hotkeys

16.1. Main menu

Alt-n where n is 1 to 9 sets the global visibility level to n.
Alt-0 Sets the global visibility level to 10.
Alt-B Selects the bounding box of the currently selected object.
Alt-C Calls the Object Duplicator to make copies of the currently
selected object.
Alt-D Deletes the currently selected object.
Alt-E Edit the currently selected object.
Alt-F Calls the Files Menu.
Alt-G Toggles the grid display.
Alt-N Calls the Create menu.
Alt-O Calls the Option Menu.
Alt-P Selects the parent object of the currently selected object.
Alt-S Toggles Grid Snap.
Alt-T Selects the texture of the currently selected object.
Alt-V Verifies that all the objects in the scene have a texture
attached to them.
Alt-X Quit the program.
'-' Disable the view under the cursor.
'+' Enable the view under the cursor.
'R' Set the transformation mode the rotation.
'S' Set the transformation mode to non-uniform scaling.
'T' Set the transformation mode to translation.
'U' Set the transformation mode to uniform scaling.
'L' If the selected object is a camera, make the translation
transformations move the lookat point.
'P' If the selected object is a camera, make the translation
transformations move the camera position.

16.2. Object Browser

Alt-E Edit the currently selected object.
Alt-D Delete the currently selected object.
Alt-P Select the parent object of the currently selected object.

16.3. Bezier Editor

Alt-S Toggle Grid Snap
'T' Select translation mode for moving the control points.
'S' Select non-uniform scaling mode for moving the control
'' Select uniform scaling mode for moving the control points.
'R' Select rotation mode for moving the control points.
'L' Select local mode if either scaling or rotation mode is
'U' Deselect the selected points.
'A' Select all points.

User Manual Page 43 MoRay V1.2

'+' Disable the view under the cursor.
'-' Enable the view under the cursor.

17. Appendix B: Tips

17.1. For all POV users:

Use the visibility setting of objects to hide fine details when
working with large scenes. This will improve redraw speed.

Use the relative visibility setting on nested objects. This allows
you to quickly hide large objects when working on the details of
other objects.

Since CSG objects are not displayed in their final form, you
should make the subobjects of a difference have a visibility level
that's higher than the base object, i.e. the first object of the
CSG difference should have a lower visibility level than all the
other sub-objects. This will avoid the cluttering of the display
by all those shapes that cut away from the base shape.

Design Group- or CSG-Objects with their origin at the global
origin, then move the group. Don't group objects at their final
location, move the group to the final location. This makes editing
subobjects easier.

Don't transform Group- or CSG-Objects until all their subobjects
have been correctly placed. This helps you transform subobjects
with the mouse, wtihout getting confused.

Don't assign textures to subobjects of Group- or CSG-objects,
unless they have a different texture from the rest of the Group
object, since textures are inherited to subobjects. This lets you
easily change the texture of the whole object later, without
having to go to each subobject to change the texture.

Group objects logically. If you make a body, group the eyes
together. Then group the eyes, nose, mouth and skull together.
Then group the upper body with the head and arms, etc. This lets
you transform the entities better, e.g. turning the bodies head,
involves only the changing of the rotation of the head. Eyes,
mouth and skull will follow.

Don't make the divisions of sweeps and beziers too high. During
editing, set the divisions as high as you want, but when finished,
set it to an acceptable level, where you can make out enough
detail. This is so that your display doesn't get cluttered, the
redraw speed stays high, and conventional memory is saved.

User Manual Page 44 MoRay V1.2

If you use the snap to grid function, use it from the very
beginning. This is because only the cursor is snapped, not the
objects themselves. So if an object has an X translation of 0.05
and you set the X-Snap to 0.5, moving the object will change the X
translation by 0.5 (in this example to 0.55).

Use the '-' key to disable views if you only need one view to edit
in. This will improve the redraw rate. When done use the '+' key
to redraw the disabled views.

If your bezier patches are coming out with holes or have other
irregularities, you may have to edit the POV file and change the
subdivision or flatness setting of the patches.

17.2. POV 1.0 users:

Don't make groups too deeply nested. Since POV 1.0 cannot have
bounds on nested objects, this will not allow you to make tightly
bounded scenes. Tip: Check whether POV 2.0 isn't out yet.

If you are using complex sweeps, you may find a vast improvement
in rendering time if you export the sweeps (EXPORT RAW in the
sweep editors) to the RAW file format and use Steve Angers RAW2POV
utility (which can mostly be found where you found POV) to convert
to a tightly bounded triangle patch. If you do this, then make
sure that the sweeps are not part of a group, since RAW2POV
creates a composite object, that you would need to transform by

17.3. POV 2.0 users:

Bound your subobjects, if they are complex. Although POV 2.0 has
bounding slabs, you may find manual bounding better.

User Manual Page 45 MoRay V1.2

18. Appendix C: Definition of Shareware

Shareware distribution gives users a chance to try software before
buying it. If you try a Shareware program and continue using it, you
are expected to register.

Copyright laws apply to both Shareware and commercial software, and
the copyright holder retains all rights, with a few specific
exceptions as stated below. Shareware authors are accomplished
programmers, just like commercial authors, and the programs are of
comparable quality. (In both cases, there are good programs and bad
ones!) The main difference is in the method of distribution. The
author specifically grants the right to copy and distribute the
software, either to all and sundry or to a specific group. For
example, some authors require written permission before a commercial
disk vendor may copy their Shareware.

Shareware is a distribution method, not a type of software. You
should find software that suits your needs and pocketbook, whether
it's commercial or Shareware. The Shareware system makes fitting
your needs easier, because you can try before you buy. And because
the overhead is low, prices are low also. Shareware has the ultimate
money-back guarantee -- if you don't use the product, you don't pay
for it.

User Manual Page 46 MoRay V1.2

setting snap, 35
toggling, 30
19. Appendix D : Index Group Object, 18
adding subobjects, 25
creation, 20
editing, 25
removing subobjects, 25


Bezier patch H
creation, 19
editing, 36 Heightfield, 17
editor hotkeys, 42 editing, 25
general, 16 Hotkeys, 42
Browser, 22
hotkeys, 42


C Imagemap
display, 28
Camera, 18 editing, 29
Cone, 16 Installation, 10
Configuration, 10 Interaction
CSG Object, 18 general, 15
adding subobjects, 26
changing order, 26
creation, 20
editing, 26 L
operation, 26
removing subobjects, 26 Light source, 17
Cube, 15 editing, 25
Cylinder, 15

Main menu, 32
EMS hotkeys, 42
free display, 34 MDL
page caching, 12 directory, 10
warning, 12 startup scene, 11


Files Object
exporting, 36 assign a bounding box, 23
general, 34 assign a texture, 23
loading, 35 bounding box, 13
merging, 35 browser, 22
saving, 35 creation, 19
deleting all, 36
editing, 23
general, 13
G interaction, 30
name, 24
Grid primitives, 15

User Manual Page 47 MoRay V1.2

selection, 21 V
texture, 14
transformations, 13 View
visibility, 14; 24 disabling, 29
Options, 35 enabling, 29
registering, 35 enlarging, 30
grid display, 30
panning, 30
zooming, 30
P visibility, 24
changing an objects, 24
POV general, 14
creating file, 36 relative, 24
overwriting files, 12 setting global, 42
version, 10

RAW display, 29
exporting to, 41


objects, 21
the bounding box, 22
the parent, 22
the texture, 22
via Browser, 22
Sphere, 15
conical, 16
editing, 39
export to RAW, 41
rotational, 16
translational, 16


Texture, 19
creation, 20
deleting, 28
display, 28
editing, 27
imagemap, 21
opaque, 20
pre-defined, 20
pre-defined list, 11
replacing, 28
wood, 21
Torus, 16; 24
editing, 24

  3 Responses to “Category : Printer + Display Graphics
Archive   : MORAY.ZIP
Filename : MORAY.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: