FreeWRL welcome graphic


Home

Download
Install
Extend

Use

Conformance
Examples
Contact

      

FreeWRL/FreeX3D Use Page


Navigation Modes

This section shows what keys/mouse movements are used to navigate. Navigation mode types can be set via the NavigationInfo node in your X3D program; if no NavigationInfo node is present, the system defaults to the EXAMINE mode.

Note that an active KeySensor or StringSensor will intercept key presses and releases.

Navigation mode can be set via pulldown menus, or via specific keypresses; see below.

EXAMINE Mode

  • Mouse Button 1 controls rotation; left/right mouse movement controls rotation around Y axis; up/down movement controls movement around X axis.

  • Mouse Button 3 zooms model in/out. On Apple computers with one button mice, press and hold the "control" key, and use your mouse.

WALK Mode

  • Mouse Button 1 Controls movement; moving the mouse up/down makes you walk forward/backward; moving the mouse left/right turns you left/right in the model.

  • Mouse Button 3 moves you up/down (changes your height above the ground). On Apple computers with one button mice, press and hold the "control" key, and use your mouse.

FLY Mode

This is all keyboard based. It gives infinite control over your movement in a 3D world; it does take some time to get used to, but once mastered, it is a pleasure to use.

There are two keymappings: one from the game Descent, using keys on the keyboard, and (currently on Linux only), a mapping using the keypad.

All motion is controlled by 12 keys, two for each of your 6 degrees of freedom (3 translations, 3 rotations).

The keymap in this mode is:

  • '8'/'k' (or, 'Keypad Down'/Keypad Up' on linux systems) rotation down/up

  • 'u'/'o' (or, 'Keypad Left'/Keypad Right' on linux systems) rotation left/right

  • '7'/'9' (or, 'Keypad 7'/Keypad 9' on linux systems) rotation about the Z axis

  • 'a'/'z' (or, 'Keypad 0'/Keypad %' on linux systems) translation forwards/backwards

  • 'j'/'l' (or, 'Keypad arrow left'/Keypad arrow right' on linux systems) translation left/right

  • 'p'/';' (or, 'Keypad arrow up'/Keypad arrow down' on linux systems) translation up/down

It may take a while to get used to the FLY navigation mode but it is the only one with full freedom of motion currently.

EXFLY Mode

It takes input from the file /tmp/inpdev: this file contains x,y,z and Quaternion-based rotation information, and puts the viewpoint there.

Send an email and ask for more detailed info; this mode is used only for simple control of navigation by use of external programs; there are better ways of doing this, by using the EAI classes in one of the supported programming languages.


Non-Navigation Key Mappings

This section shows what keys are used to change the behaviour of FreeWRL.

In addition to the keys described in the Fly section above, there are some keys which work in all the modes:

  • 'd' Switch to the Fly (Keyboard input) navigation mode

  • 'f' Switch to the Fly (External Sensor input) navigation mode

  • 'e' Switch to the Examine navigation mode

  • 'w' Switch to the Walk navigation mode

  • 'v' Go to the next viewpoint in the scene

  • 'b' Go to the previous viewpoint in the scene

  • '/' Print out the position and orientation of the current viewpoint in the current Viewpoint node's local coordinate system.

  • 'h' (or, NumLock on linux keypad) Toggle the headlight on or off.

  • 'c' Toggle collision detection on or off.

  • 'q' Quit the browser

Commmand Line Options

--version
Prints out the current FreeWRL version.

--fullscreen
Forces FreeWRL to run in fullscreen mode if possible. Note that if your graphics drivers have an alternate way to enable fullscreen rendering it may be best to use that way instead. The fullscreen flag will not enable hardware acceleration if it has not already been enabled. (see also --big option)

--big
Forces FreeWRL to run in 800x600 mode. See also --fullscreen option

--geo[metry] geom
Set the initial window geometry with the usual X window format string.

--eai host:port
The browser will try to connect to the socket at host:port to obtain an EAI connection. This option is mostly for internal use by the EAI libraries.

--server
FreeWRL will behave as a server : it spawns a child browser, prints its PID on STDOUT and exits. The child then reloads the url given on the command line upon receipt of a SIGUSR1 signal.

--sig
Reload the URL given on the command line upon receipt of a SIGUSR1 signal.


Commmand Line Options - Stereovision

For each of shutter, anaglyph and sidebyside stereovision modes the --eyedist, --screendist and --stereo numbers are used to place left and right viewpoints in-scene. The 2D screen cursor defaults to the right viewport alignment which accomodates the dominant eye preference for most people.

--shutter
Forces FreeWRL to start in shutterglas stereo mode via GLX_STEREO in attributs of glXChooseVisual. This needs software and hardware like XIG DX Platiuum Xserver on a Linux PC with 3DRelevator shutterglasses or IRIX on a SGI Indigo2 Impact with crystal eyes shutterglasses. On some SGI machines, you need to switch to a stereo capable visual as root with setmon/xsetmon and then restart the X Server.

If GL_STEREO is not available on your machine the view mode defaults to flutter which alternates between left and right every few seconds in a regular window, used for testing.

--anaglyph LR
Renders stereovision using different colors for left and right eye. You need color filters or special anaglyph eyewear to view stereoscopically. L and R are each one of R,G,B,C,M,A (red,green,blue,cyan,magenta,amber/yellow) and the most usual combinations are --anaglyph RG or --anaglyph RB. The current version of --anaglyph does not render textures.

--sidebyside
Renders stereovision in 2 viewports in the same window. To view stereoscopically, stretch the window to be twice your physical eyebase or a few mm less. If you wear eyeglasses just put your glasses against the screen and stretch the window till each lens is centered in a viewport. Then aim your eyes to be parallel so each one is looking at a different viewport. To help, hold a card or your hand halfway between your face and the screen in such a way it blocks the opposite viewport for each eye. If you have a mirror stereoscopy you can stretch the window to match the eyebase of that.

--eyedist number
Stereovision In-scene eyebase - disance between the eyes of the avatar, defaults to .06.

--screendist number
Stereovision toe-in distance - in-scene distance from avatar to closest point where stereo viewpoint vectors converge, default 0.8.

--stereo number
Stereovision toe-in multiplier - Range 0.0 - 1.0 : 0= no toe-in 1=maximum toe in (cross at screendist), default 0.4.

Info

This project is managed by John A. Stewart.

Please send bug reports to freewrl-09 --at-- rogers.com including the word ``freewrl'' on the subject line will make sure that I'll notice it. Also, see the FreeWRL home page at http://www.crc.ca/FreeWRL.

There is absolutely no warranty, express or implied for this software. For details on the conditions of use, see the FreeWRL distribution.

FreeWRL is Copyright (C) 1998, 1999...2009 Tuomas J. Lukka, John Stewart and others.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.

You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

DISCLAIMER: All information and programs presented on these pages is presented strictly on an as-is basis without an explicit or implicit warranty or guarantee of any kind, not even for fitness for any particular purpose. The FreeWRL logo is based on the Linux Penguin logo by Larry Ewing. All trademarks are owned by their respective owners.

SourceForge.net Logo