Bin/manta

From Manta Wiki
Jump to: navigation, search

Introduction

bin/manta is a highly flexible frontend that supports almost all manta features and allows them to be configured from the command line. That said, there isn't a way to run a particularly sophisticated GUI from the bin/manta program. If you expect to actually interact with the camera or scene, try using the bin/dm_demo program instead.

Usage

Building

bin/manta cannot be removed from the build.

Basic Options

Command Line Specifications

bin/manta command line options use the Manta Specification Format used by many interfaces in the repository. Since the options are specified on the command line it is necessary to place quotes around the option string so that the shell does not try to parse the parenthesis.

For example:

[abe@fisher build-fisher]$ bin/manta -camera pinhole( ... )
Badly placed ()'s.

Use quotes instead:

[abe@fisher build-fisher]$ bin/manta -camera "pinhole( ... )"

It is not necessary to use quotes around a manta specification in other places, such as a text input file or a dialog box.

This is a subset of the available command line options and parameters. For a complete list issue:

bin/manta -help

-np

Specify the number of processors to use for rendering.

This might be different then the total number of processors used by manta. For example, most user interfaces run in a separate thread, this thread might be assigned to an additional processor. The initial manta thread will parse these options, do a small amount of other setup, then create np additional threads, start them and wait until they terminate.

For best performance the number of rendering threads should be less then the total number of processors on the system. The threads should be placed on processors that are not likely to perform operating system, X window or other system tasks.

bin/manta -np 126

-res

Specify framebuffer resolution. Must be specified in NxM format.

bin/manta -res 1440x710

-camera

Specify a camera to use. All manta camera are required to parse -eye, -lookat and -up options and do something useful with them. This allows the same view point to be used for a pinhole camera or a stereo pinhole camera.

bin/manta -camera "pinhole( -eye 240.287 21.8104 279.014  \
                            -lookat 152.979 -0.442494 238.861 \
                            -up -0.296261 -0.0637321 0.952978 \
                            -fov 60 )"

pinhole camera

pinhole( -eye x y z -lookat x y z -up x y z -fov x)

Specify the eye point, look at point, and up direction as well as the field of view. All parameters are required in the specification.

The default pinhole camera uses the following values (set for the default sphere/plane scene):

pinhole(-eye 3 3 2 -lookat 0 0 0.3 -up 0 0 1 -fov 60 )

stereo pinhole camera

stereo( -eye x y z -lookat x y z -up x y z -fov x -focus x -distance x)

focus specifies the distance in scene units to the focal point of the two eyes. distance specifies the space in scene units between the eye points.

-imagedisplay

This option specifies the image display stage of the Manta pipeline. If you do not wish to display an image (for a benchmark) use -imagedisplay null

opengl

Output to an X window using GLX. Used in conjunction with the default "X" ui option.

bin/manta -imagedisplay "opengl( -thread 2 )"

-displayProc or -thread may be used to change the thread which posts images to the GLX context.

file

Output the frame buffer in a .tga file. This is extremely expensive.

file( <filenameprefix> )

-ui

Specifiy that a user interface thread should be started. More than one user interface may be active at a single time. The primary responsibility of the user interface thread is to send transactions to Manta which change its state. For example a X user interface might be use at the same time as an automator such as the camera path automator.

Each -ui specification on the command line creates a thread in addition to any created by the -np option.

X

There are no options for the X window ui interface. This creates a single X window with very basic camera motion capability.

The camera motion is implemented using a trackball with a fixed center of rotation.

Commands are registered for the following keys:

Keymapping:
b                   next bookmark
B                   add bookmark
c                   output camera
d                   increase maxDepth by one
D                   decrease maxDepth by one
h                   print help message to stderr
k                   add knot
K                   write knots
p                   increase/decrease number of processors
P                   increase/decrease number of processors
q                   quit after this frame, press again to immediately quit
r                   reset path
t                   time profile display
Control-t           time profile scale increase
Control-T           time profile scale decrease
v                   autoview
space               animate path
Escape              quit after this frame, press again to immediately quit
question            print help message to stderr
Shift-mouse3        change field of view
mouse3              dolly to/from lookat
mouse4              dolly to/from lookat
mouse5              dolly to/from lookat
mouse1              rotate
mouse2              translate
Control-mouse1      Debug ray
Shift-mouse1        Debug SSE ray

camerapath

The camera path automator runs in a separate thread and sends camera update transactions to Manta at a specified interval. Camera position are obtained by following a Catmull-Rom spline. This functionality is useful for automatic demos and benchmarking.

camerapath( -file name.txt -warmup frames -channel n -sync n -delta_t s -delta_time s -behavior exit|loop -interval m n )

-file is the only required option.

-file name.txt File name to read control directives from.

-warmup frames Number of frames to wait before starting the path.

-channel n Manta channel to apply camera transactions to. (default 0)

-sync n Number of transactions to send before synchronizing with rendering threads. This option causes the automator to output performance measures after synchronizing.

-delta_t s Spline parameter increment between transactions.

-delta_time s Minimum delay in seconds between transactions.

-behavior exit|loop Specify that the automator should either loop or cause Manta to exit at the end of the path. If the option is not specified the automator thread will exit but Manta will continue rendering.

-interval m n Only use control points m to n inclusive.


See Camera path automator for more information.

-imagetraverser

-pixelsampler

-imagetype

-bench

-stereo

Specify that the default channel should support stereo.

Note you must not only use this option but also specify a stereo camera and an imagetraverser that will work with stereo. Currently the default tiled image traverser will do.

Hardware support for stereo is also required.

Using the stereo pinhole camera:

bin/manta -camera "stereo( ... )" -stereo

Example Invocation