

                         README.TXT File
                README file for Real 3D for Windows
                          Release 2.4
                (C) Copyright Realsoft Finland, 1994


Thank you for purchasing Real 3D for Windows, one of the most
powerful ray-tracing, modeling and animation packages available on any
platform.


Real 3D differs from the actual package in that some essential
features in the modeller, such as save functions, have been disabled and
some extra demo material have been added.


Example Images
==============

Real 3D contains example images which were created and rendered
by using Real 3D. To view these images, double click the 'Demo Pictures'
icon. The related document 'Demo Pictures.txt' contains short description
for each image in the slide show.


Example Animations
==================

Five animation previews has been included in the package:
- Shark consists of one swimming B-Spline mesh representing a shark.
- Cycle consist of a girl driving a bicycle.
- Lens demonstrates how the glass in Real 3D really magnifies
- Space consists of a planet system
- Alley demonstrates the collision detection system of Real 3D.

To play these animations, double click the desired icon. For more information
about the techniques used for creating these animations, see anims.txt document.


Example projects
================

The real\projects directory contains numerous example projects and
animations. To load these project files, start Real 3D and select the menu
File/Projects/Replace.

To preview animations set 'Save' field in the animation window to 'View'
and click the 'Preview' button.

The following project files have been included:

- Abys
        This animation demonstrates how to create waving sea by applying
        morphing to a bump map texture and a water creature by applying
        morphing to a B-Spline shape representing the creature.

        The animation consists of 150 frames. An average rendering time
        per frame should be less than 4 minutes (486/50Mz).

- Alley
        Bowling alley simulation described in the manual. Animated object
        consists of a ball, three pins, three cubes representing the alley,
        one directed force simulating gravity and one collision detection
        method.

- Boolean.prj
        This is the simplest possible example demonstrating Boolean
        Opeartions: a cube with a hole.

- CollDet.prj
        Simple collision detection example. The project consists of
        a pin and a ball.

- Firew.prj
        This demonstrates how to use CREATION and RPL animation methods to
        create particles with random velocity. RPL method contains simple
        formula which modifies the velocity of sample objects for creation
        method while the whole system is moved along a path. One directed
        force field is used to apply gravity over created particles.

- Ballbear
        This scene consists of three ballbrearings created by using Real 3D
        Boolean Operations and sphere, cylinder, hyperboloid primitives.
        Rectangles were used for cutting material away from ballbrearings
        in order to reveal their inner structures.

- Bbanim
        This animation demonstrates how to create a complete ballbearing by
        using Boolean operations.

- Cycle
        A B-Spline girl riding a bicycle. This is a simple inverse
        kinematics example where hands and legs of the girl were
        animated by using inversed kinematics and skeletons.

- Dice
        Depth-of-field example. Dice were created by using boolean
        operations. Note that this is a grey scale image. To render it
        as a color image, use the function File/Environment/Screen Palette.

- Dynamite
        This is a particle system example where creation methods create
        particles with random velocity. One directed force field is used
        for simulating gravity. Boolean operations are used for cutting
        the fuse shorter while the particle system is moved along the
        path.

- Engine
        A car engine created by using Boolean Operations and
        quadrics such as cylinders, spheres, hyperboloids and cones.

- Fly
        Butterfly and flower. The wings have been animated by using
        morphing and the entire butter-fly follows a spline path.
        The flower has been animated by using morphing.

- Girl
        Click the button '5 3 1 MENU' in order to render all windows
        (or select the menu Extras/Refresh_All/Ray-tracing).
        The purpose of this example is to demonstrate 'smoothness' of
        Real 3D B-Splines as well as modelling capabilities. The quality
        of the B-Spline girl corresponds polygonal model which consists
        of 4 000 000 polygons.

- Glass
        This project demonstrates the quality of Real 3D Ray Tracing
        cabailities. The scene consists of four B-Spline glass objects
        and three light sources.

- Glass2
        This is another glass example.

- Matmorph
        This animation demonstrates how to create a water turbulence
        by moving a waving bump map along a B-Spline object.

- Pin
        Wooden bowling pin. The pin was created by using the tool
        Create/Compound/Lathe and wood texture is mapped through
        the pin using parallel mapping.

- Pixtool
        3D fonts created from particles by using pixel-tool. At the
        end of the animation, the logo is exploded by using radial
        force method. The scene consists of 1700 spheres. Note that
        the 'WF-invisible' attribute is set for all spheres, so you
        have to render the animation using Ray-Tracing in order to
        see something.

- TrueType
        These 3D objects were created by using the tools
        Create/Build Freeform/Font Curve Extractor and
        Create/Build Freeform/Extrude. Font curve extractor generates
        a set of B-Spline curves based on the geometry fetched from
        the True-Type Outline Font Generator. Just select the font,
        type the text and you'll get smooth B-Spline curves, which
        can be used, for example, defining motions for animations or
        extruded with desired bevelling type and radius.

- Shark
        This demonstrates how to create wriggling snakes, swimming
        fishes, etc. by subdividing B-Spline objects to subgroups
        and animating them using the direction method.

- Space
        A planet system animation. This demonstrates atmospheric
        effects.

- Turbul

        Particle system example which consists of one creation
        method and one force field.

- Walker
        Walking girl. This girl was animated by using the SWEEP
        method and hierarchical construction. One sweep method
        rotates the shin-bone about the knee and another sweep
        method rotates the entire leg about the hip-bone.

        Rendering time 30 sec/frame.




Features not covered by the manual
==================================

Cross platform support:
-----------------------
Means that projects created on other platforms (e.g. Amiga) can be utilized.
The basic idea is that all the data structures are always saved in native
format for the sake of efficiency. When file is read on non-native platform,
conversion is applied. Note that windows are not converted except for View
window, which contains rendering settings and other essential information
for renderer.

Note that before rendering a project imported from an other platform, in most
cases you need to redefine the following system-specific settings:
- Texture paths (texture maps need to be imported separately, of course)
- View window settings 'aspect ratio' and 'Memory usage'


DXF-Export implemented.
-----------------------
The function can be found from the menu View/Render/Export DXF. Conversion
should work well for all polygonal and spline based objects, such as trisets,
cubes, polyhedrons, B-Spline meshes and curves. However, only wire frames are
exported for quadrics,  such as spheres and hyperboloids which are not directly
supported by DXF.


Skin Effect
-----------
The Modify/Properties/Skeleton Attr dialog has a new control Fidelity.
Fidelity controls how the orientations of the target objects correspond
to the bones of the skeleton. A value of 0 causes the orientation of the
target object to exactly match the orientation of the corresponding bone.
The higher the value, the more the orientation of the next/previous bone
of the skeleton contribute to the orientation of the target object.
A projects called FIDELITY.PRJ in the PROJECTS directory demonstrates the
effects of the Fidelity control. There are two b-spline mesh legs controlled
by skeletons of different Fidelity values. The Fidelity control is very useful
for example when creating character animations with a natural skin effect.


Relative bitmap-size indipendent texture coordinates
-----------------------------------------------------
These can be accessed from RPL and formula handlers using
variables 'relx', 'rely' and 'relz'.

Relative coordinates have the following ranges:

Parallel mapping:
Horizontal mapping edge corresponds interval [0,1] in relx.
Vertical mapping edge corresponds interval [0,1] in rely.
Mapping plane normal whose length is the average of mapping edges
corresponds interval [0,1] in relz.

Cylinder mapping:
Circumference of cylinder corresponds interval [0,2PI] in relx.
Axis corresponds interval [0,1] in rely.
Radial distance from axis to circumference corresponds interval [0,1] in relz.

Sphere mapping:
Circumference of sphere corresponds interval [0,2PI] in relx.
The arc between the poles corresponds interval [0,PI] in rely.
Radial distance from center to circumference corresponds interval [0,1] in relz.

Disk mapping:
Circumference of disk corresponds interval [0,2PI] in relx.
Radial distance from the center to the circumference corresponds
interval [0,1] in rely.
Mapping plane normal whose length is the radius of the disk corresponds
interval [0,1] in relz.

Default mapping:
relx, rely, and relz are the absolute space coordinates.

Spline mapping:
relx and rely are the 'natural' surface parameters: the edges of the mesh
correspond interval [0,1] in relx and rely. relz is always zero.

Built-in fractal noise based handlers use now relative mapping
coordinates and their densities are therefore easier to control.
For example, a parallel mapped Marble handler texture does not stretch
in 'z' (mapping normal) direction when the mapping rectangle is resized.

A new scope handler called 'Depth' added. It limits the material scope
in 'z' (depth) direction to the interval specified by 'a' and 'b' scope
handler parameters. For example, if a=0 and b=0.1, a parallel mapping
maps the material 0.1 abs. space meters deep into the target objects from
the mapping rectangle level to the direction specified by the small peak.
This handler can be used for example to map a texture to one side of
a cube only.

Another new scope handler is 'Angle'. It defines the scope of the material
as a function of the viewing angle to the surface. The angle is described
using a value from -1 to 1. -1 and 1 correspond directions perpendicular
to the viewed surface, and 0 corresponds viewing along the surface.
The parameters 'a' and 'b' specify the range, inside which the scope is
unchanged. Outside the interval, scope is set to zero. Typically, this
handler can be used to create 'one-sided' textures. For example, a texture
map on a rectangle can be set to paint only one side of the rectangle by
selecting Angle handler with a=0, b=1.1 (the extra 0.1 is for eliminating
accuracy problems). If a=-1.1, b=0, the opposite side will become textured.

It is necessary to have at least one Select window open in order to
have key short cuts to function. This is a Windows MDI bug and will
probably be in the final version.

When you render to a file, make sure that the base name of the file
(given in the Render Settings dialog of the view window) plus the index
are no more than 8 characters that is the maximum file name length under
MS-DOS.
E.g. If the index string (defined by the Format field of the Animation
window) is '%04d.bmp' and file name is 'images\test', then the first
frame will be rendered as 'images\test0001.bmp', which is a valid file
name.

Not all existing display drivers are 100 % Win32S compatible. If you
lost your mouse pointer, the reason is most likely caused by incompatible
driver.



STAND ALONE RENDERING ENGINE
============================

FEATURES

    Sare comes in two different versions: the basic version and the
    one supporting distributed rendering on a network. The standard
    Real 3D package includes the basic Sare version. The distributed
    version can be purchased separately. Features that are supported
    by the distributed version only are marked with an asterisk (*).

    - Sare renders scenes and animations more efficiently mainly because all
    internal data structures have been optimized for rendering purposes only
    and the program itself occupies much less memory compared to its modeller
    counterpart.

    - Sare can also take more than just one project and render them
    sequentially, whereas the full modeller version has been designed
    to handle one project at a time.

    - Sare will be available for the most common platforms allowing you
    to model your animations using low-cost platforms like Amiga or PC
    and then render them using high performance systems, such as sgi, Dec/Alpha
    etc.

    * Distributed rendering speeds up rendering by taking a full advantage
    of free processing power available on the network.

    * Cross platforms supported. Machines of different architectures can be
    connected on the same network and rendering can be distributed on them.

    * Sare can handle situations where one or more machines used for rendering
    crashes. Crashed machine is marked as 'dead' and its job is automatically
    resent to another machine.

    * The system cope well with systems where machines of various rendering power
    are used for distributed rendering.

    * Distributed rendering can be used for rendering still images as well as
    for rendering animations. The system sub-divides each image/frame to a number of
    sub-images and sends them to specified machines for rendering.

    * Overhead caused by distributed rendering system is very small. Typically
    each new machines speeds up rendering about 90 % from the theoretical
    maximum.

    * A new optimization technique is used when distributed rendering is switched
    on. On pre-emptive operating systems (Windows NT/UNIX) it is possible to
    take advantage of this feature even when using only one machine by starting
    the server and client versions of SARE on the same machine.


GETTING STARTED

    This example demonstrates how to prepare a scene and render it
    using Sare.

    1. Start Real 3D and create for example a sphere with a desired
    material.

    2. Specify a desired camera orientation and rendering settings for
    one view window and close all other views. In render settings,
    remember to set:
    - A suitable file format to the Output control, for example BMP File.
    - A proper file name.
    - A suitable image size to Width and Height fields.

    Sare uses rendering settings and camera orientation of the last view
    window it finds from the project file. Therefore, remember to set
    a proper output file format, image size and file name for the
    image in the render settings. Otherwise Sare will use the native
    file format (BMP for Windows) and a default file name (noname.pic).

    3. Save the project by using the function File/Project/Save.

    4. Start Sare by double clicking its icon.

    3. Click the Add button and select the previously saved project or
    drop the project file on the window of Sare by using 'drag and drop'
    feature. The name of the project file can then be seen in the
    project list.

    4. Click the button 'Process All'. This renders the project.



THE CONTROLS OF THE SARE WINDOW

    The window of Sare consists of the following elements:

    PROJECT LIST

        Projects to be processed are shown in this list. It is possible
        to select one project and apply some operations to it by
        using other buttons (Render, Delete, Action) or render all
        projects by clicking the 'Process All' button.

    ACTION

        This button can be set to RENDER or PLAY, and defines
        how the currently selected project file is processed. The action
        field can be set to one of the following:

        RENDER

            The associated file is just rendered according to the rendering
            settings found from the project file. All loaded objecs and
            materials are unloaded as soon as Sare gets the project
            rendered.

        PLAY

            The file is played as an animation according the animation
            settings found from the project file. All loaded objecs and
            materials are unloaded after rendering.


        Note that if there is no selected project, this button is ghosted
        and cannot be used.

    DELETE

        This removes the selected project file from the project list.
        If there is no selected project, this button is ghosted and
        cannot be selected.

    RENDER

        This renders the selected project file from the project list.
        If there is no selected project, this button is ghosted and
        cannot be selected.

    LOAD

        Opens the file dialog allowing the user to add project files to
        the project list. Another way to add projects to the project list
        is by using the 'drag and drop' feature.


    PROCESS ALL

        This processes all projects in the project list starting from the
        first project. When a project file has been processed, it is
        removed from the project list.


    * SERVER

        This switches SARE to server mode. When running as server, SARE
        listens rendering request from other SARE programs (clients).
        Selection of this button causes all other buttons to be ghosted
        expect for the Cancel button, which can be used for switching
        server mode off.


     * DISTR

        This activates/deactivates distributed rendering system.
        If this button is set, sare subdivides each project to
        smaller jobs and distributes them to SARE servers runnning on
        other machines.


     * DISTR. SETTINGS

        This opens a dialog which specifies further settings for distributed
        rendering:

        HOSTS:

            This field contains one or more host names separated with
            white space. For example,

                iris axp150 sparc

            would cause this sare to use three machines named 'iris'
            'axp150' and 'sparc' for rendering.

        SUBDIVISION

            These two fields specify the size of the sub-image to
            be send to servers for rendering. The optimum size
            depends on the project in question and the number of
            machines used for rendering. For example, if four machines
            of equal rendering power were used for rendering one image
            which size is 640 x 400, the subdivision 320x200 would
            cause each machine to render only one sub-image.


STARTING SARE

    Sare can also be started from the command prompt (Windows NT) or
    by using the function File/Run (Windows 3.1) and by entering the
    command Sare with a set of keywords (switches) and associated parameters.

    For example, the following command renders a file 'test.prj':

        SARE -r test.prj

    where '-r' is a keyword denoting the RENDER action.

    All available keywords are listed below:


KEYWORD

    RENDER

    -r filename

DESCRIPTION

    This is the default action when no keyword is defined prior to a
    project file. The action reads a given project file and renders it.
    If the file is an animation, the time which was selected when the
    project was saved is used for rendering one frame of the
    animation.

    If the file does not contain any view windows, these settings can be
    specified by passing the RPL/RSPEC description file to the program.
    If there are more than one view window, the last one is used, unless
    the name of the desired window is specified with the option '-w'.

    If the object section contains any viewpont or aimpoint objects, the
    tag SWND is used for defining the one corresponding the view window.
    If no SWND tag is associated with view/aimpoints, the first found
    will be used.

    Sare automatically detects the type of the given file and passes it
    to the RPL interpreter or IFF parser accordingly.

EXAMPLE

    The following command renders three files:

        Sare -r test1.prj -r test2.prj -r test3.prj

NOTE

    If there is no keyword associated with a parameter,
    the default '-r' action is applied. Hence the command:

        Sare test1.prj test2.prj

    is equal to the command:

        Sare -r test1.prj -r test2.prj


----------------------------------------------------------------------

KEYWORD

    PLAY

    -p filename

DESCRIPTION

    This keyword causes Sare to render the corresponding file as
    an animation instead of rendering a single image. The animation
    settings (like the number of frames, animation samples, etc.) are
    taken from the given file. The animation is rendered from
    the current position to the end. If the given file doesn't contain
    animation settings section, default values are used.

    Note that some of the animation settings are ignored when rendering
    animations using Sare.

    - Play/Jump To. This setting is relevant only for editor version.
      The stand alone rendered always plays animations frame by frame
      to the end.

    - Wireframe/Ray Tracing: Sare always uses Ray-Tracing.

    - Screen name and Screen file name are ignored by Sare because
      currently it supports only rendering directly to a file.

EXAMPLE

    Sare -p myanim.prj

----------------------------------------------------------------------

KEYWORD

    WINDOW

    -w window_name

DESCRIPTION

    This keyword defines the name of the view window to be used for
    defining rendering settings for Sare. If the file
    contains viewpoint or aimpoint primitives, the tag SWND associated
    with the primitives is used for determining which one to use. If no
    viewpoint or aimpoint is found, the current orientation of the view
    window is used to define the orientation for the camera. If the file
    contains more than one view window and this keyword is not given,
    the last window will be used.

EXAMPLE

    The following command renders the file 'test.prj' by using the
    rendering settings and camera orientation defined by the window
    'View.1':

    Sare -w View.1 -r test.prj

----------------------------------------------------------------------

KEYWORD

    STACKS

    -C param,return,control,dictionary,literals

DESCRIPTION

    This keywords defines sizes for RPL stacks. The default values are
    the same as in the full program version.
    When Sare is started with RPL files containing extremely large
    meshes or trisets, the defaults may not be high enough.

EXAMPLE

    Sare -C 50000,3000,3000,2000,100 -r test.rpl


----------------------------------------------------------------------

KEYWORD

    LOAD

    -l filename

DESCRIPTION

    This keyword asks Sare just to load the given file. No further
    actions will be taken. For example, several projects can be
    combined and rendered/played as a whole.

EXAMPLE

    The following command loads two projects and renders them
    together:

    Sare -l test1.prj -r test2.prj

----------------------------------------------------------------------

KEYWORD

    COMMAND

    -c rplcommand

DESCRIPTION

    This keyword asks Sare to execute a RPL command associated
    with the keyword. Usually this keyword is used in conjunction
    with the LOAD keyword.

EXAMPLE

    For example, the command:

        Sare -l myprj -c RENDER

    is equal to the command:

        Sare -r myprj

    Or, if you would like to render the animation only partially, you
    can use the RPL word PLAY instead of Sare keyword PLAY (-p). The
    difference is that RPL PLAY word allows you to define the end time
    for your animation:

        Sare -l test1.prj -c "0.5 PLAY"

    plays the animation from its current position to the position
    `0.5`. Note that if the command consists of more than just one
    part, it must be enclosed to double quotes.

----------------------------------------------------------------------


KEYWORD

    MEMORY

    -m bytes

DESCRIPTION

    The value passed with this keyword defines the maximum amount of
    memory for Sare.
    The optimal size for available memory is approximately 80 % of the
    size of the physical memory. Higher values allows you to render
    larger scenes but may slow down the rendering.

    If you are running Sare along with other applications you may
    have to use this keyword to instruct Sare to leave some space for
    other applications, too.

----------------------------------------------------------------------

KEYWORD

    * HOSTS

    -h hostname1 hostname2 ...

DESCRIPTION

    This activates distributed rendering system and switches the SARE
    to client mode. All parameters after the -h switch are taken as
    host names.

EXAMPLE

    The following examples causes SARE to render the project 'test.prj'
    by using machines zeus, hermes, iris and axp150.

    SARE -r test.prj -h zeus hermes iris axp150

----------------------------------------------------------------------

KEYWORD

    * SERVER

    -s

DESCRIPTION

    This activates distributed rendering system and switches the SARE
    to server mode causing SARE to start to listen connection requests
    from clients.

EXAMPLE

    The following command starts SARE to server mode:

    SARE -s

----------------------------------------------------------------------

KEYWORD

    * SUBAREA

    -a WxH

DESCRIPTION

    This swich can only be used if -h swich is specified. It specifies
    how small sub-images the image to be rendered is sub-divided.
    The optimum subarea size depends on the number of servers used
    for rendering and the complexity of the image to be rendered.
    If there is only one or two machines used for rendering, a good
    choice might be 320 by 320. The more servers the smaller the
    smaller the subarea. Also the more the performance of used machines
    varies the smaller the subarea should be.

EXAMPLE

    The following command distributes rendering only to one server: axp150.
    The image is subdivided to 100 by 100 peaces.

    SARE test.prj a 100x100 -h axp150

----------------------------------------------------------------------
