- 1 Introduction
- 2 Usage
- 2.1 Building
- 2.2 Basic Options
- 2.3 Example Invocation
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.
bin/manta cannot be removed from the build.
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.
[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:
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
Specify framebuffer resolution. Must be specified in NxM format.
bin/manta -res 1440x710
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( -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.
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
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.
Output the frame buffer in a .tga file. This is extremely expensive.
file( <filenameprefix> )
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.
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
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.
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