Windows Support Australia

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Tuesday, 24 September 2013

A widget library for large scale displays and immersive environments

Posted on 15:38 by Unknown

An example of widgets rendered to a cube texture
In CAVE2, most omegalib applications display a user interface using the 3D menu system. On menus, it is possible to create a variety of standard controls like buttons, sliders, sub-menus etc. Internally, the menu system makes use of the omegalib widget library, which is part of omegaToolkit. This library is designed to support rendering of 2D widgets on large scale, cluster-driven displays. Since we want to support stereo displays, the widget library supports 3D rendering: Widget containers can draw themselves to arbitrary surfaces in the scene. That's how the menu system 3D mode works, but you can do the same with your own widgets, using the Container3DSettings class. Container output planes can also be attached to scene nodes, using the Container3DSettings.node  property. For instance, you can attach a 3D mode container to the default camera, to implement a 3D heads-up display. Or you can attach it to a movable object in the scene, to create a floating 3D label that follows the object. The Text3D class can be used for simple text-only labels, but the widget library gives you a lot more flexibility with your label design, and the kinds of data you can put on it. If you need more control over the output surface, you can also grab the container output texture directly and use it as a 3D object texture. See https://github.com/uic-evl/omegalib/blob/master/examples/python/uitotexture.py for an example of this.

Of course the widget library can be used to draw classic 2D interfaces. The ohelloWidgets C++ demo shows how to use the widget toolkit for 2D drawing. It also shows how to create custom widgets using OpenGL.
Widgets, widgets everywhere!
In order to support very different devices like your laptop, OmegaDesk, touch walls and CAVE2, the widget library accepts a variety of input sources to control interaction. Like the rest of omegalib, input handling is based on omicron, making it possible to interact with widgets using mouse pointers, SAGE pointers, touch screens, gamepads, tracked wands etc. In particular, widgets support both pointer-based and gamepad-based interaction. An interface can be used with a mouse or navigated with a game controller d-pad. The interaction mode (and a bunch of other properties of the widget library) can be specified in the omegalib configuration file.

When using gamepad navigation, the widget library does most of the work for you. For instance, putting widgets in a vertical layout container, will automatically set up navigation so that pressing the up/down buttons on a gamepad will move widget selection up and down. The same happens for horizontal containers. For free-layouts, or for navigation between containers, you can explicitly `link` widgets together to tell omegalib how interface navigation should work. This is done using the Widgets setPrevHorizontalWidget, setPrevVerticalWidget, setNextHorizontalWidget  and setNextVerticalWidget methods. The menuColumns example shows how to use custom navigation to create a multi-column menu.
Read More
Posted in omegalib | No comments

Saturday, 7 September 2013

Omegalib 4.2 released!

Posted on 14:53 by Unknown

This version greatly improves the speed of user-centered stereo tracking in cluster installations. The Equalizer/omegalib interface and rendering code has also been simplified. Porthole is now included as a separate module. The flipbookPlayer module has also been moved from the apps repository to the omegalib core repository. To support multi-view interaction, omegalib 4.2 also introduces ray-based wand event filtering: multiple applications can be controlled using the same wand device. Only the application currently pointed at receives input. Multi-view interaction is implemented in a new module (**mvi**).
breaking change: the overridePanopticStereo function has been removed due to its confusing name. The same function can now be controlled by doing getDisplayConfig.panopticStereoEnabled = True / False

Major Changes

omega
  • removed obsolete Equalizer statistics output
  • added New statistics display in Console overlay
  • Render passes get sorted by priority
  • added SceneNode.rotate(Quaternion) python method.
  • fixes to event handling and rendering on non-planar configurations.
  • added querySceneRay flags (see https://github.com/uic-evl/omegalib/wiki/Scene-management#queryscenerayvector3-origin-vector3-dir-callback-flags)
  • added Event.isFlagSet to python API
  • added PixelData pixel access python API (getPixel[R,G,B,A] and setPixel functions)
  • Degree unit functions for node orientation (Issue #57)
Porthole
  • Porthole improved and moved to a separate module
  • Added touch / drag event forwarding
  • Added callbacks for client connection and camera creation
  • Added portholeBasic.py python demo
cyclops
  • AnimatedObject.setCurrentModelIndex in python (Issue #50)
Misc
  • Started working on a multiview interaction (mvi) module.
Read More
Posted in CAVE2, omegali | No comments
Newer Posts Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • Omegalib 4.2 released!
    This version greatly improves the speed of user-centered stereo tracking in cluster installations. The Equalizer/omegalib interface and re...
  • Distributed Sum on a 2D mesh using MPI
    For a recent class project, we had to implement an algorithm to sum an array of integers on a computer cluster. This problem is one of the e...
  • Google Chrome vulnerable to carpet-bombing flaw
    Google Chrome vulnerable to carpet-bombing flaw Google’s shiny new Web browser is vulnerable to a carpet-bombing vulnerability that could ex...
  • A New CAVE2 Trailer
    This video shows some of the applications we are running on our brand new CAVE2 hybrid reality system.
  • ENDURANCE Final Update
    Work on the ENDURANCE project has ended. The final data products consisted in an updated bathymetry model for the entire west lake bonney, u...
  • Using Kinect for 3D video capture
    (Thanks for the link, Jakub)
  • CAVE2 on TIME online: Using 3D Worlds to Visualize Data
    "Take a walk through a human  brain ? Fly over the surface of Mars? Computer scientists at the University of Illinois at Chicago are pu...
  • Website Update: Atomz
    A new section has been added to the website: 24Hour Games The 24H Games project is an experiment in gameplay design and developement. Its ma...
  • Tech Meeting Updates
    omegalib / CAVE2 improved few things with cylindrical config support now changing a couple of parameters (start angle, number of tiles) it i...
  • How to Prototype a Game in Under 7 Days: Tips and Tricks from 4 Grad Students Who Made Over 50 Games in 1 Semester
    Some days ago I stumbled upon an interesting article on rapid game prototyping. Read the original article here . Some of the guidelines th...

Categories

  • 3D
  • CAVE2
  • Edanarion
  • ENDURANCE
  • Flash
  • Game Heuristics
  • Games
  • HCI
  • Hydroviz
  • MotoGP08
  • MPI
  • News
  • Nintendo DS
  • OmegaDesk
  • omegali
  • omegalib
  • Papervision
  • QbViz
  • Tech Meeting
  • Visualization
  • VR

Blog Archive

  • ▼  2013 (31)
    • ►  November (2)
    • ►  October (2)
    • ▼  September (2)
      • A widget library for large scale displays and imme...
      • Omegalib 4.2 released!
    • ►  August (1)
    • ►  June (4)
    • ►  May (3)
    • ►  April (4)
    • ►  March (6)
    • ►  February (4)
    • ►  January (3)
  • ►  2012 (8)
    • ►  December (3)
    • ►  November (2)
    • ►  August (3)
  • ►  2011 (2)
    • ►  November (1)
    • ►  January (1)
  • ►  2010 (4)
    • ►  November (1)
    • ►  February (1)
    • ►  January (2)
  • ►  2009 (5)
    • ►  September (1)
    • ►  June (1)
    • ►  April (1)
    • ►  March (1)
    • ►  January (1)
  • ►  2008 (22)
    • ►  December (1)
    • ►  October (4)
    • ►  September (6)
    • ►  June (2)
    • ►  May (3)
    • ►  April (1)
    • ►  March (2)
    • ►  January (3)
  • ►  2007 (16)
    • ►  December (2)
    • ►  November (3)
    • ►  October (4)
    • ►  September (7)
Powered by Blogger.

About Me

Unknown
View my complete profile