Download presentation
Presentation is loading. Please wait.
Published byQuentin McKenzie Modified over 9 years ago
1
DIVERSE Lance Arsenault John Kelso Center for Visualization and Virtual Environments Virginia Tech, Blacksburg, VA www.diverse.vt.edu
2
Outline flashy demos15 overview: goals, description, design45 participatory demos, code revealed!60 do some programming60
3
flashy demos www.diverse.vt.edu
4
overview DIVERSE: Device Independent Virtual Environments Reconfigurable Scalable Extensible
5
overview: goals free/open source modular flexible extensible
6
overview: goals works by default stay out of the user’s way augments instead of replaces easy to use, reconfigure, extend
7
overview: description C++ API SGI IRIX and GNU/Linux –supports all 3 IRIX binary types
8
overview: design DTK- DIVERSE ToolKit dgiPf- DIVERSE interface to Performer
9
overview: design: DTK server library client
10
overview: design: DTK remote shared memory hardware services DSOs
11
overview: design: dgiPf uses Performer, DTK generic input interface reconfigure without recompiling using –environment variables –DSOs –tweak files
12
overview: design: dgiPf structures Performer classes provides scenegraph symmetric/asymmetric frusta stereo new pfNode types
13
overview: design: dgiPf:classes dgiPf dgiPfAugment dgiPfDisplay dgiPfInput
14
overview: design: dgiPf:classes dgiPf –single instance –entry point into system –factory of other objects –loads DSO dgiPfAugment objects
15
overview: design: dgiPf:classes dgiPfAugment –adds functionality without program modification –four entry points- return value tells dgiPf how to proceed: prePfConfig postPfConfig prePfApp postPfApp
16
overview: design: dgiPf:classes dgiPfDisplay –single instance –sets up scenegraph –DIVERSE to world coordinates, meters –creates and updates frusta, stereo parallax and viewpoint –creates and manages dgiPfPipe objects
17
overview: design: dgiPf:scenegraph 3015650103
18
overview: design: dgiPf:coordinates
19
dgiPfDisplay nested structure dgiPfDisplay –dgiPfPipe dgiPfWin –dgiPfScreen »pfChannal
20
overview: design: dgiPf:classes dgiPfPipe –one instance per pfPipe –each object creates and manages dgiPfPwin objects
21
overview: design: dgiPf:classes dgiPfPwin –one instance per pfPipeWindow –each object creates and manages dgiPfScreen objects –stereo or mono
22
overview: design: dgiPf:classes dgiPfScreen –each object creates and manages pfChannels one per screen if mono window two if stereo window –symmetric or asymmetric viewing frustum
23
overview: design: dgiPf:classes dgiPfScreen –symmetric frustum fixed size base moves with user’s view and position typically desktop or non-immersive specified by Performer fov and aspect
24
overview: design: dgiPf:classes dgiPfScreen –asymmetric frustum base is at a fixed position shape changes with view typically head-tracked or immersive specified by a center, height, width and hpr
25
overview: design: dgiPf:classes VT CAVE configuration: 3 pipes 3 windows 5 screens 9 channels
26
overview: design: dgiPf:classes dgiPfRecord –used by input –single instance –circular queue –each item an event record –all input devices in each event record
27
overview: design: dgiPf:classes dgiPfInput –client of dgiPfRecord –generic devices –polled or queued –local or remote –actual or virtual –devices identified by segment name
28
overview: design: dgiPf:classes dgiPfInput –generic devices locator valuator button keyboard
29
overview: design: dgiPf:classes dgiPfInput –polled or queued- application can specify polled –reads data asynchronously –typical example: tracker, valuator queued –circular –typical example: keyboard, button
30
overview: design: dgiPf:classes dgiPfInput –local or remote application unaware of source –actual or virtual data from hardware or calculations
31
overview: design: dgiPf:classes dgiPfInput –identified by segment name ex: head –any segment name can map to any device –new segments can be created as needed
32
overview: design: dgiPf: dgiPf-config installation information current defaults portable code better Makefiles
33
overview: design: dgiPf: DSOs separately compiled dgiPfAugment objects specify which to use at runtime cumulative effect general- can insert any code uses DSOs for display, input, dynamics
34
overview: design: dgiPf: DSOs display DSOs unloaded after dgiPfPostConfig “base” or “modifier”
35
overview: design: dgiPf: DSOs base display DSOs number and attributes of dgiPfDisplay, dgiPfPipe, dgiPfPwin, dgiPfScreen objects examples –simpleDisplay –vtCaveDisplay –wallDisplay –hyperDisplay
36
overview: design: dgiPf: DSOs modifier display DSOs modifies attributes of objects described by base display DSO examples –stereoDisplayMod –monoDisplayMod –queryDisplayMod
37
overview: design: dgiPf: DSOs input DSOs not unloaded called each frame provide queued and polled input data
38
overview: design: dgiPf: DSOs input DSOs real or virtual devices navigators examples –keyboardInput –caveSimInput –pfTrackballNav –wandJoystickNav
39
overview: design: dgiPf: tweakfiles global configuration changes text-editable default path and files like “.ini” files: [section name] key = value
40
real soon now... dgiGl –augments OpenGL –support for more platforms hooks to other tools, packages –VRPN, VTK, VRCO trackd
41
real soon now... device support –Intersense tracker –Phantom haptic –MOOG motion base
42
real soon now... immersive emulators –persona apps –diversifly interaction tools –menus, buttons, sliders, etc. –based on flkt
43
real soon now... Xwand –Mouse emulation by wand or other immersive input device head’s up displays “collaborative” methods –awareness tools
44
participatory demos, code revealed! www.diverse.vt.edu
45
do some programming dgipf-config is your friend try: dgiPf-config dgiPf-config --about dgiPf-config --env dgiPf-config --dso-files dgiPf-config --dso-dir
46
do some programming application development cycle: edit (vi, emacs, nedit) ……. hello.C compile…………………... make run ………………………... hello
47
do some programming example programs in directories below: share/dgiPf/examples under directory given by: dgiPf-config --root
48
do some programming Programmer’s Guide in: html/dgiPf/dgiPf_Prog_Guide.html under directory given by: dgiPf-config --root or online at: http://www/diverse.vt.edu/dgiPf/ “man” pages are also installed
49
do some programming repeat with a different DSO: setenv DSO_FILES hyperDisplay:caveSimInput hello -or- set d = `dgiPf-config --default-dso-files` # note- back-quote! setenv DSO_FILES $d:caveSimInput hello
50
do some programming DSO: edit and “make” generic.C to run from the generic directory: setenv DSO_FILES simpleDisplay:generic../hello/hello
51
do some programming DSO: to run from the helloWorld directory: set p = `dgiPf-config --default-dso-path` setenv DSO_PATH $PWD:$p cd../helloWorld hello
52
do some programming tweak file: edit ~/.dgiPfrc [dgiPfPwin] fov=30 then rerun any program
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.