Presentation is loading. Please wait.

Presentation is loading. Please wait.

DIVERSE Lance Arsenault John Kelso Center for Visualization and Virtual Environments Virginia Tech, Blacksburg, VA

Similar presentations

Presentation on theme: "DIVERSE Lance Arsenault John Kelso Center for Visualization and Virtual Environments Virginia Tech, Blacksburg, VA"— Presentation transcript:

1 DIVERSE Lance Arsenault John Kelso Center for Visualization and Virtual Environments Virginia Tech, Blacksburg, VA

2 Outline flashy demos15 overview: goals, description, design45 participatory demos, code revealed!60 do some programming60

3 flashy demos

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

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!

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: “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

Download ppt "DIVERSE Lance Arsenault John Kelso Center for Visualization and Virtual Environments Virginia Tech, Blacksburg, VA"

Similar presentations

Ads by Google