Setting Tag | Setting Value Type | Setting Description |
enableMultipipe | boolean |
Master toggle for cluster-based multipipe rendering. If true, Vrui will read the following multipipe... settings and configure itself to run in a distributed environment where applications are replicated across cluster nodes and synchronized by sharing input device data and application-specific data streams. This is not the appropriate rendering mode for single-system-image multipipe architectures (such as SGI Onyx/Prism). |
multipipeMaster | string |
Internet host name or dotted-form IP address of the master node in a distributed rendering environment. The master node is the one where users log in and start Vrui applications. Some Vrui settings rely on node indices; the index of the master node is always zero. |
multipipeMasterPort | integer |
Number of the UDP port used for cluster communication on the master node. This port needs to be accessible from the slave nodes, i.e., it must be accepted by any installed firewalls. |
multipipeSlaves | list of strings |
List of the internet host names or dotted-form IP addresses of the slave nodes in a distributed rendering environment. A Vrui application started on the master node will replicate itself onto these slave nodes using the multipipeRemoteCommand. Some Vrui settings rely on node indices; slave nodes are numbered in the order in which they appear in the list, starting at one. |
multipipeMulticastGroup | string |
Internet name or dotted-form IP address of the multicast or broadcast address used for communication from the master node to the slave nodes. Vrui uses a multicast protocol if the given address is a valid IETF multicast address, and uses a broadcast protocol otherwise. All nodes in the cluster must be able to receive UDP packets sent to the multicast/broadcast address. |
multipipeMulticastPort | integer |
Number of the UDP port used for cluster communication on the slave nodes. This port needs to be accessible from the master node, i.e., it must be accepted by any installed firewalls. |
multipipeRemoteCommand | string |
Command used to log in to slave nodes during Vrui application startup. If not specified, this defaults to ssh. |
multipipeConnectionWaitTimeout | number |
|
multipipePingTimeout | number |
Timeout value for cluster crash detection. If a slave node does not receive data from the master for the specified time (in seconds), it sends a ping request to the master. If too many ping requests time out (see next setting), the slave node exits from Vrui. |
multipipePingRetries | integer |
Maximum number of ping requests sent by a slave node before it exits from Vrui (see previous setting). |
multipipeReceiveWaitTimeout | number |
|
multipipeBarrierWaitTimeout | number |
|
inchScale | number |
Defines the physical coordinate unit used to describe the Vrui environment by specifying the length of an inch in physical units. For example, if the used physical units are meters, inchScale is set to 0.0254. |
meterScale | number |
Defines the physical coordinate unit used to describe the Vrui environment by specifying the length of a meter in physical units. Alternative to inchScale setting, see above. For example, if the used physical units are centimeters, meterScale is set to 100.0. |
displayCenter | point |
Defines the center point of the Vrui display environment in physical coordinates. The center point is mostly used by applications to initialize their model coordinates. In general, the display center should be a point that is in the middle of the display space accessible by users, such as the screen center for a single-screen environment or the center point of a CAVE. |
displaySize | number |
Defines an approximate size for the Vrui display environment in physical coordinate units. The display size is mostly used by applications to initialize their model coordinates. |
forwardDirection | vector |
Defines a direction vector in physical coordinates that corresponds to the typical direction a user would face when looking at a Vrui display environment. For single-screen environments it is typically a vector pointing into the screen; in CAVEs, it is typically a vector pointing into the back wall. |
upDirection | vector |
Defines a direction vector in physical coordinates that corresponds to "up," i.e., the opposite direction of local gravity. It is mostly used by Vrui application to initialize their model coordinates such that models appear right side up. |
floorPlane | plane |
Defines a plane in physical coordinates that corresponds to a Vrui display environment's floor. For walk-in environments such as CAVEs or upright display walls it is typically the true floor plane; for desktop-like environments it is typically a plane orthogonal to the "up" direction that is placed a few feet below the screen center. |
glyphSize | number |
Specifies the display size of glyphs such as input device pointers in physical coordinates. |
newInputDevicePosition | point |
Specifies a point in physical coordinates that is used as the initial position for newly created virtual input devices. It is typically identical to the display center, but for single-screen environments, it is typically offset a few inches to be placed in front of the screen to simplify interaction with new virtual input devices. |
inputDeviceAdapterNames | list of strings |
List of names of the input device adapter sections that specify all sources of user input recognized by Vrui applications. |
inputDeviceDataSaver | string |
Name of input device data saver section. If this is a valid section name, Vrui will save the state of all physical input devices to a file on every frame. These files can later be played back by creating a playback input device adapter. Saving input device data can be useful during debugging, to capture a session and play it back later from inside a debugger, or to generate 3D movies of someone using a Vrui application. |
updateContinuously | boolean |
Flag whether to run Vrui's inner loop continuously. If this is set to false, Vrui will only update its (and the application's state) whenever new data arrives from any input devices. This is the most appropriate mode for non-immersive display environments. If set to true, Vrui will update its internal state as fast as possible, regardless of whether new input device data arrived or not. Applications that use animation will typically override this setting to run smooth animations even if no input device events arrive. |
maximumFrameRate | number |
The maximum allowed frame rate for Vrui's main loop. If this parameter is set to a value larger than zero, the Vrui main loop will pad each frame to at least the duration of 1.0/maximFrameRate seconds by blocking before advancing to the next frame. Normally Vrui applications should run as fast as they can to minimize latency; however, some special uses like generating 3D movies by saving input device data (see above) might benefit from a throttled frame rate. |
viewerNames | list of strings |
List of names of viewer sections. Viewers define how 3D models are projected onto a Vrui display environment's screens. The first viewer in the list is considered the main viewer and is treated specially, for example, is used to determine the orientation of pop-up menus. |
screenNames | list of strings |
List of names of screen sections. Together with viewers, screens define how 3D models are projected in a Vrui display environment. |
screenProtectors | list of screen protectors |
|
node<index>WindowNames windowNames | list of strings |
List of names of window sections. Windows are the "glue" that bind viewers to screens and implement the OpenGL-based 3D rendering used by Vrui. In cluster-based distributed display environments, there must be a node<index>WindowNames tag for each cluster node (the master node is always zero; slave nodes are numbered according to their order in the multipipeSlaves list, starting at one). Any nodes with empty window lists will not open any windows, but otherwise fully participate in the Vrui application. This is useful for cluster head nodes with low-powered graphics cards, or for dedicated audio rendering nodes. |
node<index>WindowsMultithreaded windowsMultithreaded | boolean |
Toggles between serial and parallel rendering for multiple windows on the same computer. If any Vrui node has multiple windows and this setting is true, Vrui will use multiple threads, one per window, to render to the windows in parallel. The default mode, if this setting is false, is to render to the windows serially from a single thread. The appropriate mode for single-system-image multipipe systems such as SGI Onyx or Prism is to configure them as a non-distributed environment (enableMultipipe is false), assign one window to each graphics pipe, and render to these windows in parallel. However, if a node has multiple windows but only a single actual graphics card, it is usually better to render in serial since graphics cards are typically not optimized for rapid context switches. |
listenerNames | list of strings |
List of names of listener sections. Listeners define how spatial 3D sound is rendered in a Vrui environment. The first listener in the list is considered the main listener. |
node<index>SoundContextName soundContextName | string |
Name of a sound context section. Sound contexts correspond to audio devices and define how spatial 3D sound is rendered in a Vrui environment. In cluster-based distributed display environments, there must be a node<index>SoundContextName tag for each cluster node that is supposed to render spatial 3D sound using the OpenAL library (the master node is always zero; slave nodes are numbered according to their order in the multipipeSlaves list, starting at one). |
frontplaneDist | number |
Defines the distance in physical units of the OpenGL front clipping plane from the eye points of Vrui viewers. This defines how closely a viewer can approach 3D objects before the objects are clipped away. |
backplaneDist | number |
Defines the distance in physical units of the OpenGL back clipping plane from the eye points of Vrui viewers. This defines how far a 3D object can move into the distance before it is clipped away. |
backgroundColor | color |
Defines the background color used for all windows in a Vrui display environment, unless overridden by Vrui applications. |
ambientLightColor | color |
Defines the ambient color component used in the OpenGL lighting equation. This is the light color used when no other lights are present. It should be kept at fairly low values not to wash out display contrast. |
widgetMaterial | material |
Defines the material properties of 3D GUI widgets such as pop-up menus, dialog windows, etc. |
drawOverlayWidgets | boolean |
Switches whether 3D user interface widgets are drawn in an overlay layer above all other 3D graphics. If disabled (the default), 3D widgets are integrated with other 3D graphics and drawn at the proper depth. If enabled, widgets are still drawn at proper depth, but appear to float above other graphics. This makes the user interface more desktop-like and works well in non-stereo mode, but can cause severe eye strain in stereo modes on the desktop and especially in immersive environments. |
popWidgetsOnScreen | boolean |
If set to true, widgets popped up by Vrui applications will always be aligned with the main screen's plane, unless the application specifies a full widget transformation. This helps with keeping the illusion of a 2D user interface in desktop environemnts. This flag should not be enabled for immersive environments. |
uiSize | number |
Defines a size in physical units used for general layout of 3D GUI widgets, such as border widths, text field margins, etc. |
uiBgColor | color |
|
uiFgColor | color |
|
uiTextFieldBgColor | color |
|
uiTextFieldFgColor | color |
|
uiTitleBarBgColor | color |
|
uiTitleBarFgColor | color |
|
uiFontName | string |
Name of the font used for 3D GUI widgets such as labels, buttons, or text fields. Vrui uses its own texture-based fonts which are installed in the share/GLFonts directory. |
uiFontTextHeight | number |
Defines the height of text for 3D GUI widgets in physical units. |
uiFontAntialiasing | boolean |
Toggles font smoothing for 3D GUI widgets. Should be enabled if text looks "pixellated." |
uiSliderWidth | number |
|
uiSliderHandleColor | color |
|
uiSliderShaftColor | color |
|
tools | string |
Name of tool manager section. The tool manager is responsible for translating low-level input device events such as button presses into higher-level application functions such as navigation. |
vislets | string |
Name of vislet manager section. Vislets are additional rendering modules that can be loaded into arbitrary Vrui applications as plug-ins. |
Setting Tag | Setting Value Type | Setting Description |
buttonKeys | list of key names |
Lists a subset of keyboard keys that are treated just like mouse buttons by the mouse input device adapter. The total number of buttons in each button plane (see modifierKeys setting) is the number of button keys plus the number of actual mouse buttons (see the numButtons setting). |
modifierKeys | list of key names |
Lists the set of modifier keys recognized by the Vrui mouse input device adapter. Modifier keys (and combinations thereof) allow access to several button planes to increase the total number of available buttons. For example, if LeftCtrl and LeftAlt are listed as modifier keys, Vrui will create four button planes (no modifier, LeftCtrl only, LeftAlt only, LeftCtrl+LeftAlt). Buttons are numbered sequentially inside each plane by mouse buttons first and then button keys, and then in order of planes. Planes are ordered according to modifier button combinations in LSB-first binary code. The plane with no modifiers pressed is always zero, and in the preceding example, the (LeftCtrl only) plane is 1, and the (LeftCtrl+LeftAlt) plane is 3.
Note: Any buttons (mouse buttons and/or button keys) that are pressed while the button plane is changed stay pressed until their button plane is selected again. This can be very useful especially in desktop-like environments. |
numButtons | integer |
Defines the number of buttons on the actual mouse device as reported by the windowing system. Is typically 3 in X11-based systems. The total number of buttons in each button plane (see modifierKeys setting) is the number of button keys (see the buttonKeys setting) plus the number of actual mouse buttons. |
fakeMouseCursor | boolean |
Enables a texture-based mouse cursor to be rendered at the position of the mouse input device controlled by the input device adapter. This is useful in situations where the hardware mouse cursor is not available, or is inappropriate, such as in mouse-controlled cluster environments. This setting defaults to false. |
mouseCursorImageFileName | string |
The name of the cursor image file from which to load the fake mouse cursor, if enabled. |
mouseCursorNominalSize | integer |
The nominal size of the mouse cursor which is to be loaded from the cursor image file. Nominal sizes are defined in the cursor file itself, and Vrui selects the most closely matching size from the file. |
mouseCursorSize | size |
Size of the rendered mouse cursor glyph in physical coordinates. The third component of the given value is ignored. |
mouseCursorHotspot | vector |
Offset from the bottom-left corner of the mouse cursor image to the cursor "hotspot," i.e., the position that corresponds to the mouse position. Normalized to lie within [0, 1] in both directions; the third component of the given value is ignored. |
Setting Tag | Setting Value Type | Setting Description |
inputDeviceDataFileName | string |
Name of the input file from which to read input device data. The file must have been created by saving input device data from a previous run of the same Vrui application, in the exact same environment; otherwise, results are undefined. |
fakeMouseCursorDevice | integer |
If set to a valid input device index from the loaded input device file, enables a texture-based mouse cursor to be rendered at the position of the selected input device. This is useful when playing back sessions recorded in mouse-controlled environments, since otherwise the mouse cursor would not show up. |
mouseCursorImageFileName | string |
The name of the cursor image file from which to load the fake mouse cursor, if enabled. |
mouseCursorNominalSize | integer |
The nominal size of the mouse cursor which is to be loaded from the cursor image file. Nominal sizes are defined in the cursor file itself, and Vrui selects the most closely matching size from the file. |
mouseCursorSize | size |
Size of the rendered mouse cursor glyph in physical coordinates. The third component of the given value is ignored. |
mouseCursorHotspot | vector |
Offset from the bottom-left corner of the mouse cursor image to the cursor "hotspot," i.e., the position that corresponds to the mouse position. Normalized to lie within [0, 1] in both directions; the third component of the given value is ignored. |
synchronizePlayback | bool |
When this flag is set to true, the playback input device adapter will synchronize the timing of Vrui application frames with the time stamps stored in its input file. As a result, the playback should run exactly at the same speed as the original recording. |
quitWhenDone | bool |
When this flag is set to true, the playback input device adapter will shut down the Vrui application after reading its entire input file. |
soundFileName | string |
Name of a sound file to be played in synchronization with the input device data. The sound file must have been recorded by the input device data saver in the same session as the input device data file. |
saveMovie | bool |
When this flag is set to true, the playback input device adapter will create a movie by saving a sequence of screen shots from a specified window on the master node, exactly at specified intervals. |
movieFileNameTemplate | string |
Printf-style format string to generate image file names for the screenshots written while generating a movie. The template must contain exactly one integer conversion specifier, of the form %[0-9]*d. |
movieWindowIndex | integer |
The index of the master node window from which to save screenshots for a movie. This integer must be a valid index in the master node's list of windows; saving movie screenshots from a window on a slave node is not yet supported. |
movieFrameRate | number |
Target frame rate for the exported movie. The playback input device adapter will export slices at exactly the specified times to guarantee real-time playback even if Vrui's main loop frame rate varies. Movie frames will point sample the sequence of Vrui frames: short Vrui frames might be skipped and not generate movie frames, and long Vrui frames might generate multiple identical movie frames. |
Setting Tag | Setting Value Type | Setting Description |
viewerName | string |
Name of the viewer associated with this window. |
screenName | string |
Name of the screen associated with this window. |
leftScreenName | string |
Name if the left screen if the window's left and right eye views are displayed on different screens (such as in some head-mounted displays). |
rightScreenName | string |
Name if the right screen if the window's left and right eye views are displayed on different screens (such as in some head-mounted displays). |
protectScreens | boolean |
Flag whether to protect the screens associated with this window from monitored input devices (to prevent users from walking into screens). |
display | string |
Name of the X11 display to use for this window; defaults to the local display defined by the DISPLAY environment variable. |
windowPos | window position |
Initial position of the window on the display in pixel coordinates. |
windowFullscreen | boolean |
Flag whether to initially maximize the window (removing all window decoration and screen borders). |
windowType | enumerant |
- Mono
- Monoscopic window; uses the associated viewer's monoscopic eye position.
- LeftEye
- Left-eye view only; uses the associated viewer's left eye position.
- RightEye
- Right-eye view only; uses the associated viewer's right eye position.
- AnaglyphicStereo
- Stereoscopic rendering using anaglyphic (red/blue color separation) stereo.
- SplitViewportStereo
- Stereoscopic rendering using two separate viewports in the same window, such as side-by-side stereo. The two used viewports can be exactly specified using the leftViewportPos and rightViewportPos settings.
- InterleavedViewportStereo
- Stereoscopic rendering using two interleaved viewports in the same window, for example by using even pixel columns for the left eye, and odd pixel columns for the right eye. This is the stereo mode often supported by commodity stereoscopic displays like 3D DLP televisions, or polarizing flat panel monitors. The interleaving pattern can not yet be specified; it currently defaults to the pattern used by 3D DLP televisions.
- QuadbufferStereo
- Stereoscopic rendering using a quad-buffered visual (also known as "active" stereo). Is only supported by some graphics cards.
|
leftViewportPos | window position |
Position of the viewport used for left-eye views in SplitViewportStereo stereo mode in window coordinates. |
rightViewportPos | window position |
Position of the viewport used for right-eye views in SplitViewportStereo stereo mode in window coordinates. |
autoScreenSize | boolean |
If set to true, instructs the window to query the physical size of its associated X11 screen, and override the configured size of its associated VR screen with the found values. If the X11 server is configured correctly, this will result in accurate physical units in the display window for any connected monitor. |
panningViewport | boolean |
Flag determining the relationship between the display screen containing a window and the Vrui screen describing the window's position in physical space. If this flag is set to false (the default), the associated Vrui screen is always fully mapped to the window's current position and size. If the flag is true, the Vrui screen is considered to map to the display screen containing the window instead. In effect, this means that the window serves as a sliding viewport into the 3D environment as seen through the screen. Moving or resizing a window with a panning viewport will not affect the position or size of the shown model. |
navigate | boolean |
Flag defining the effect of moving or resizing a panning-viewport window on the displayed 3D scene. If this flag is true, moving the window will move the 3D scene, and resizing the window will scale the 3D scene using a "fake" navigation tool. In effect, navigation will make a Vrui window behave almost exactly like a 3D window in desktop-centric applications, but the 3D scene will still be projected from the correct viewpoint to provide, for example, correct stereoscopic rendering. |
toolKillZonePos | window point |
Setting to override the position of the tool kill zone when moving/resizing panning-viewport windows. By default, the position of the tool kill zone is given in physical coordinates and does not move with the window. If this tag is set, the tool kill zone will always stay at the given relative window coordinates. Relative window coordinates map (0, 0) to the lower-left window corner and (1, 1) to the top-right window corner. |
showFps | boolean |
Flag to display the current (filtered) Vrui frame rate in the window. |
showFpsFontName | string |
Name of the font used to display the current frame rate in the window. Vrui uses its own texture-based fonts which are installed in the share/GLFonts directory. |
multisamplingLevel | integer |
Level of OpenGL multisampling to use for the window. Support for this feature, and the available level numbers, are dependent on the model of installed graphics card. |
joinSwapGroup | boolean |
|
swapGroupName | integer |
|
swapBarrierName | integer |
|
Type Name | Description |
boolean |
Logical value; can be set to the literals true or false. |
enumerant |
One out of a fixed set of possible choices, expressed as literals. Allowed literal values are listed in the setting's description. |
key name |
Name of a key on the keyboard, expressed as a literal. Labeled keys have their own names, and the following "special" key names are recognized: Space, Tab, Return, Backspace, Left, Up, Right, Down, PageUp, PageDown, Home, End, Insert, Delete, Num0, Num1, Num2, Num3, Num4, Num5, Num6, Num7, Num8, Num9, Num/, Num*, Num-, Num+, NumEnter, NumSep, LeftShift, RightShift, LeftCtrl, RightCtrl, LeftAlt, RightAlt, LeftMeta, RightMeta, LeftSuper, RightSuper, LeftHyper, RightHyper. |
integer |
Positive or negative integer number. Consists of an optional plus or minus sign, followed by a sequence of at least one decimal digits. |
number |
Positive or negative floating-point number. Consists of an optional plus or minus sign, followed by a sequence of at least one decimal digit defining the number's integer part, and an optional dot followed by a sequence of at least one decimal digits defining the number's fractional part. |
string |
A sequence of characters enclosed in double quotes. Strings support C-style escape sequences using the backslash escape charater; e.g., \t gets translated to a TAB character, \" is a double quote, and \\ is a backslash. If a string only contains letters, digits, underscores, or escape sequences, the quotes are optional. |
list |
A list of values of another arbitrary setting value type. A list is encoded as a pair of parentheses containing a comma-separated list of an arbitrary number of values. |
point |
A point in 3D affine space, encoded as a list of exactly three numbers (x, y, and z components). |
vector |
A vector in 3D affine space, encoded as a list of exactly three numbers (x, y, and z components). |
plane |
An oriented plane (half-space) in 3D affine space, encoded as a vector (non-normalized normal vector) followed by a comma and a number (origin distance in terms of normal vector length). |
tracker state |
A position and orientation in 3D affine space, encoded as a sequence of basic transformations separated by multiplication signs. The basic transformations are:
- translate <translation>
- Translates the coordinate system by the given translation vector.
- rotate <axis>, <angle>
- Rotates the coordinate system around the given non-normalized axis vector, by the given angle number in degrees.
|
orthogonal transformation |
A transformation consisting of any combination of translations, rotations, and uniform scalings, encoded as a sequence of basic transformations separated by multiplication signs. The basic transformations are:
- translate <translation>
- Translates the coordinate system by the given translation vector.
- rotate <axis>, <angle>
- Rotates the coordinate system around its own origin and the given non-normalized axis vector, by the given angle number in degrees.
- scale <factor>
- Scales the coordinate system around its own origin by the scaling factor number.
|
color |
An RGB color with opacity component, encoded as a list of three or four numbers (red, green, blue, and (optional) opacity components, scaled from 0.0 to 1.0). If the opacity component is missing, it is initialized to 1.0. |
material |
An OpenGL material property, encoded as a pair of curly braces containing a sequence of semicolon-terminated component settings. Omitted components are set to the OpenGL default values. The available component settings are:
- Ambient = <ambient color>
- Ambient color of the material.
- Diffuse = <diffuse color>
- Diffuse color of the material.
- AmbientDiffuse = <ambient and diffuse color>
- Ambient and diffuse color of the material.
- Specular = <specular color>
- Specular color of the material.
- Shininess = <shininess>
- Shininess exponent number of the material.
- Emission = <emissive color>
- Emissive color of the material.
|
glyph type |
Type of a 3D icon, encoded as a literal. Available values:
None- No icon.
Cone- A cone with the apex at the origin, oriented along the y axis.
Cube- A cube centered around the origin.
Sphere- A sphere centered around the origin.
Crossball- A cube centered around the origin, with three cylinders oriented along the x, y, and z axes, respectively.
Box- A "wireframe" box composed of oblong rectangles as edges and cubes as vertices.
|
screen protector |
Description of a sphere around an input device that triggers a visual alarm when touching a protected display screen. Encoded as a set of parentheses containing a string (the name of an input device), followed by a comma and a point (the center of the sphere in the device's coordinate system), followed by a comma and a number (the radius of the sphere). |
window point |
A point in 2D window space, encoded as a list of exactly two numbers (x and y components, scaled from 0.0 to 1.0). |
window position |
The position and size of a display window, encoded as a list of exactly two integers (window position in pixels), followed by a comma and a list of exactly two integers (window size in pixels). |
axis value mapper |
Defines a mapping from a device's raw absolute or relative axis values to the range [-1, 1] used by Vrui, using a "broken line" model. Encoded as a list of exactly four numbers: the raw value mapped to -1, a pair of raw values defining a "flat zone" such that all raw values between the first and second are mapped to zero, and the raw value mapped to 1. |
Mapping from a tool valuator to a translational or rotational axis on a navigation tool. Encoded as a pair of parentheses containing an integer (the index of the mapped valuator), followed by a comma and a vector (the rotation axis or translation vector).
axis descriptor |
Mapping from a tool valuator to a translational or rotational axis on a navigation tool. Encoded as a pair of parentheses containing an integer (the index of the mapped valuator), followed by a comma and a vector (the rotation axis or translation vector). |