lance arsenault john kelso ron kriz virginia tech blacksburg, virginia

45
Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia www.diverse.vt.edu

Upload: melvyn-casey

Post on 28-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

Lance ArsenaultJohn KelsoRon Kriz

Virginia TechBlacksburg, Virginiawww.diverse.vt.edu

Page 2: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

The only thing you should say before giving a demo is “watch

this”…

Page 3: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

The DIVERSE group

Lance Arsenault• Assistant research professor, Virginia Tech

dept. of Engineering, Science and Mechanics

John Kelso• Research associate, Virginia Tech’s

University Visualization and Animation Group

Ron Kriz• Associate professor, Virginia Tech dept. of

Engineering, Science and Mechanics

Page 4: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

evicendependentirtualnvironments-econfigurable,calable,xtensible

Page 5: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

Motivation

Toolkits and libraries exist, but most have at least one of these problems:• follow the “center of the universe” paradigm• are very expensive• are proprietary• can’t be extended or modified

Page 6: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

Who uses or supports DIVERSE?

US Navy:• 3d target-acquisition visualization for submarines• Dynamic ship-crane project

Lockheed-Martin:• Extending DIVERSE with collaborative tools.

NIST:• Haptic device for probing data set densities

Page 7: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

Overview

• C++ API

• Free, Open source• LGPL libraries, GPL applications

• SGI IRIX and GNU/Linux• Support for all three IRIX binary types

Page 8: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

Goals

Modular• Only use the parts you need

Flexible• Easy to reconfigure and extend

Same program works on all hardware• No changes to application

Page 9: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

We always tried to keep this in mind…

Stay out of the user’s way• They know better than we do how to do their

job

Augment instead of replace• Build on existing packages, don’t reinvent

new ones

Works by default• Lowest-common-denominator defaults work

anywhere

Page 10: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

Two separate packages

DTK- the DIVERSE ToolKit• Contains classes not related to graphics• A standalone package in its own right

dgiPf- the DIVERSE graphics interface for OpenGL Performer™ • Built using DTK and Performer

Page 11: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

DTK DIVERSE ToolKit

Library• C++ classes used to build everything else

Server• Manager process

Services• Interfaces to hardware devices or virtual surrogates

Clients• Programs that control and interact with the server

Page 12: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

DTK

Library of C++ classes provide:• Remote shared memory• Data queuing• Utilities, such as an affine matrix class• Dynamically Shared Object (DSO) loading:

• Small separately compiled programs• Reconfiguration with recompiling

• Loaded at run-time• Configurations can be changed while program is

running

Page 13: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

DTK

Server• Manages services, memory, queues • Run as a regular process or as a true Unix daemon• Lightweight select server• Multiple simultaneous copies can run using different

ports

Page 14: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

DTK

Services• Usually DSOs (shared libraries loaded in run-time)• Can be loaded and unloaded without restarting server• Each service interfaces to a specific device• Devices can be real hardware or software emulations

Page 15: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

DTK

Clients• Take the form of installed application

programs- examples:• Control and query server

• Start/stop on specified port• Load/unload services

• Connect to remote shared memory of other hosts• Read and write data from remote shared memory• Write remote shared memory to Unix System V

shared memory in VRCO trackd™ compatible format

Page 16: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf DIVERSE Graphics Interface for

PerformerUses DTK and Performer to provide:• Configuration via DSOs• Display-independent graphics• Coordinate systems and scenegraph• Viewing frusta and stereo parallax• Generic input devices• Navigation• New Performer node types

Page 17: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Configuration via DSOs:• Used to specify:

• Graphics configurations• Available input devices• Navigation techniques• Interaction techniques• Minor modifications- tweak files

• DSOs can load other DSOs, so groups can be created

Page 18: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Configuration via DSOs, continued:• Application can define default set

• “works by default”

• Default can be overridden by user• “stay out of the user’s way”

Page 19: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Display-independent graphics• Same program runs on systems from a

CAVE™ to a GNU/Linux laptop without modification• Display configurations are usually DSOs

• Doesn’t prevent display-dependent programs from being written if desired

Page 20: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Display-independent graphics, continued• Simulator- allows programs to simulate an

immersive environment on a desktop• Virtual head (locator) and wand (valuator and buttons)

• Can be displayed and positioned• Useful as immersive development/debugging tool

• Can jump outside of ether world and look back in• Loaded as a DSO

• CAVE Simulator• Objects displayed at physically correct size in

simulator

Page 21: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Three coordinate systems:• dgiPf

• normalized [ -1.0 1.0 ]• ether

• fixed model units • like 19th century physics

• world• navigated model units

• ether + current navigational transformation

As a world moves through the ether it takes its frame of reference along with it

Page 22: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

dgiPf coordinate cube

Page 23: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Immersive systems can specify coordinates in physical units• Models are displayed with correct physical

size regardless of immersive display size

A meter stick should appear to be a meter long

Page 24: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

default scenegraph

Page 25: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Viewing frusta• Symmetric

• Typically desktop• Base of frusta moves with user’s view

• Asymmetric• Typically immersive• Base of frusta is fixed• Point moves with view• Always perpendicular to base

Page 26: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Stereo parallax• Automatically generates correctly positioned

stereo pairs based on view position, interoccular distance and orientation.

• Symmetric frusta can also specify a convergence factor

Page 27: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Generic input devices• Locator- a position and orientation• Valuator- an array of continuous values• Button- a 32 bit mask• Keyboard- returns “X” key codes• Pointer- returns normalized cursor position

within a window

Page 28: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Input devices, continued• Real or virtual

• Application unaware of data’s hardware

• Local or remote• Application unaware of data’s source

Page 29: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Input devices, continued• Any device can be polled or queued

• Polled- reads latest value• Typically used for continuous data, such as

locators, valuators and pointers• Queued- all values are save in a circular queue

• Typically used for discrete data, such as buttons and keyboards

Page 30: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Navigation• Navigation technique can be encapsulated in

a DSO• Use mouse when on desktop• Use wand and joystick when in CAVE

• Independent of and transparent to, application• By loading a navigation DSO, navigation can be

added to a static application

Page 31: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Navigation, continued• Multiple navigators can be loaded

• Can switch between them to:• Change interaction technique• Change position in the world (portal effect)

• Navigation based on the dgiPfTransform class:• Provides affine transformation on a scenegraph

node which can be placed anywhere in scenegraph

Page 32: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

C++ classes:• dgiPf• dgiPfAugment• dgiPfDisplay

Page 33: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

C++ classes: dgiPf• Single instance (singleton)• Application’s entry point into dgiPf system• Factory of other objects• Loads DSOs in form of dgiPfAugment objects

Page 34: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

C++ classes: dgiPfAugment• Adds functionality without program

modification• Four entry points, invoked by dgiPf object

• Before and after pfConfig• Before and after pfFrame

• return values tell dgiPf how to proceed

Page 35: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

C++ classes: dgiPfAugment• dgiPf DSOs are objects based on this class, or

classes derived from this class• Example of classes based on dgiPfAugment:

• dgiPfInput• dgiPfNav• dgiPfTransform• dgiPfTweakFile

Page 36: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

C++ classes: dgiPfDisplay• Singleton created by dgiPf object• Creates scenegraph• Sets up coordinate systems• Usually configured by DSO

Page 37: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

C++ classes: dgiPfDisplay, continued• Manages frusta, parallax and views• Factory of other objects based on

configuration• Structures Performer classes

Page 38: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

C++ classes: dgiPfDisplay, continued

Page 39: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

New Performer nodes• Data-driven programming as opposed to

object-oriented methods. Examples include:• dgiPfDCS

• Update a node’s transformation by modifying a variable

• dgiPfToggle• Change a node’s visibility by modifying a bit-

mask

Page 40: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Distribution includes examples:• Several dozen small programs to illustrate

specific features of dgiPf• Written so they can easily be moved and

modified

Page 41: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

dgiPf

Diversifly: a dgiPf application• Loads and navigates through model files• No programming required

Page 42: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

Future directions

dgiPf• head’s up displays (summer 2001)• hooks to VTK (summer 2001)• more navigation and simulation techniques

(summer 2001)

Page 43: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

Future directions

DTK• collaborative tools (fall 2001)• motion queuing (fall 2001)• new devices

• Phantom haptic device (fall 2001)• Xwand (summer 2001)• PocketPC (summer 2001)

Page 44: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001

Want to know more?

Visit www.diverse.vt.edu and• Download and try it out• Read the friendly manuals

Contact:

Lance Arsenault ([email protected])

John Kelso ([email protected])

Ron Kriz ([email protected])

Page 45: Lance Arsenault John Kelso Ron Kriz Virginia Tech Blacksburg, Virginia

www.diverse.vt.edu

April 18, 2001