46
Christoph Anthes Roland Landertshamer Developing VR Applications Developing VR Applications with the with the inVRs inVRs Framework Framework at IEEE VR’10 at IEEE VR’10 Part I – Introduction Part I – Introduction

Developing VR Applications with the inVRs Framework at IEEE VR’10 Part I – Introduction

  • Upload
    jadzia

  • View
    25

  • Download
    1

Embed Size (px)

DESCRIPTION

Developing VR Applications with the inVRs Framework at IEEE VR’10 Part I – Introduction. Overview. Introduction System Core User Database World Database Event Manager Transformation Manager Interfaces Input Interface Output Interface Modules Navigation Interaction Network Outlook - PowerPoint PPT Presentation

Citation preview

Page 1: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

Christoph Anthes Roland Landertshamer

Developing VR ApplicationsDeveloping VR Applicationswith the with the inVRsinVRs Framework Framework

at IEEE VR’10at IEEE VR’10

Part I – IntroductionPart I – Introduction

Page 2: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

2

OverviewOverview

• IntroductionIntroduction• System CoreSystem Core

– User DatabaseUser Database

– World DatabaseWorld Database

– Event ManagerEvent Manager

– Transformation ManagerTransformation Manager

• InterfacesInterfaces– Input InterfaceInput Interface

– Output InterfaceOutput Interface

• ModulesModules– NavigationNavigation

– InteractionInteraction

– NetworkNetwork

• OutlookOutlook• AcknowledgementsAcknowledgements

Page 3: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

3

Introduction andIntroduction andArchitecture OverviewArchitecture Overview

Page 4: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

4

IntroductionIntroduction

• inVRsinVRs ((iinteractive nteractive nnetworked etworked VVirtual irtual RReality eality ssystem)ystem)– PronouncedPronounced

– C++ application framework for Networked Virtual Environments (NVEs)C++ application framework for Networked Virtual Environments (NVEs)

• Publicly available under www.invrs.org (under LGPL)Publicly available under www.invrs.org (under LGPL)– Uses Trac system for distribution Uses Trac system for distribution

• Alternatively latest stable release as zipAlternatively latest stable release as zip

• Windows binary available as wellWindows binary available as well

– Available for Linux, Windows, Mac OS X, and maybe IRIXAvailable for Linux, Windows, Mac OS X, and maybe IRIX

• Variety of out-of-the-box FeaturesVariety of out-of-the-box Features– Network communication supporting close coupled collaborationNetwork communication supporting close coupled collaboration

– Clear definition for navigation and interaction (with many techniques provided)Clear definition for navigation and interaction (with many techniques provided)

– Designed for reusability of developed componentsDesigned for reusability of developed components

– Easy-to-use configuration for immersive devicesEasy-to-use configuration for immersive devices

Page 5: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

5

IntroductionIntroduction

• Documentation available on Trac SystemDocumentation available on Trac System– Several publications (BiBTeX files)Several publications (BiBTeX files)

– Tutorial examplesTutorial examples

– Medieval Town Tutorial and Going Immersive TutorialMedieval Town Tutorial and Going Immersive Tutorial

– Programmers’ Guide (coming soon)Programmers’ Guide (coming soon)

– Doxygen (http://doxygen.invrs.org/)Doxygen (http://doxygen.invrs.org/)

• LibrariesLibraries– RequiredRequired

• OpenSG v1.8 (http://www.opensg.org/)OpenSG v1.8 (http://www.opensg.org/)

• GMTL distributed with source (http://ggt.sourceforge.net)GMTL distributed with source (http://ggt.sourceforge.net)

• IrrXML distributed with source (http://www.ambiera.com/irrxml/)IrrXML distributed with source (http://www.ambiera.com/irrxml/)

• CMake (http://www.cmake.org/)CMake (http://www.cmake.org/)

– OptionalOptional

• OpenAL and ALUT (http://www.openal.org/)OpenAL and ALUT (http://www.openal.org/)

• ODE (http://www.ode.org/)ODE (http://www.ode.org/)

• trackD (with CAVELib), VRPN (http://www.cs.unc.edu/Research/vrpn/)trackD (with CAVELib), VRPN (http://www.cs.unc.edu/Research/vrpn/)

Page 6: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

6

IntroductionIntroduction

• Where to position Where to position inVRsinVRs in the development approaches for VR in the development approaches for VR applicationsapplications– Graphical Editors (using software components)Graphical Editors (using software components)

• (e.g. VirTools, Quest3D)(e.g. VirTools, Quest3D)

– VR systems incorporating scripting languages VR systems incorporating scripting languages

• (e.g. DIVE, ALICE, AVOCADO) (e.g. DIVE, ALICE, AVOCADO)

– Application Frameworks Application Frameworks

• (e.g. VRJuggler, instantreality)(e.g. VRJuggler, instantreality)

– Scene Graphs Scene Graphs

• (e.g. OpenSG, OpenSceneGraph)(e.g. OpenSG, OpenSceneGraph)

– Full development from scratch via C or C++Full development from scratch via C or C++

• OpenGL presents comparably high effort for new development of VR OpenGL presents comparably high effort for new development of VR applicationsapplications

Page 7: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

7

IntroductionIntroduction

• Application AreasApplication Areas

Safety TrainingSafety Training Collaborative WorkCollaborative Work EntertainmentEntertainment

ArtArt Scientific VisualizationScientific Visualization

Architecture VisualizationArchitecture Visualization Product PresentationProduct Presentation

EducationEducation

World LayoutWorld Layout

Page 8: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

8

IntroductionIntroduction

• inVRsinVRs consists of the following components consists of the following components– Interfaces (designed for flexible extension)Interfaces (designed for flexible extension)

– Modules (designed as plug-ins for exchangeability, modularity)Modules (designed as plug-ins for exchangeability, modularity)

– System Core (not to be changed in structure, provides many extensible, System Core (not to be changed in structure, provides many extensible, exchangeable sub-components)exchangeable sub-components)

• Communication in the diagram happens typically top-downCommunication in the diagram happens typically top-down

Page 9: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

9

System CoreSystem Core

Page 10: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

10

System CoreSystem Core

• Acts as glue Acts as glue – Internally between communication units and database unitsInternally between communication units and database units

– Externally to interfaces and modulesExternally to interfaces and modules

• Core functionality Core functionality – Data types Data types

– Configuration handling (parsing and updating of XML configuration)Configuration handling (parsing and updating of XML configuration)

– Logging (used for profiling application parts)Logging (used for profiling application parts)

– Timer (common timer for all Timer (common timer for all inVRsinVRs components) components)

– Interfaces (interfaces to modules and other Interfaces (interfaces to modules and other inVRsinVRs components) components)

– ID management (unique ID handling)ID management (unique ID handling)

– Application base (used for simplification of the development process)Application base (used for simplification of the development process)

• Contains subcomponents for database handling and message handlingContains subcomponents for database handling and message handling– User and world database are used for VE storageUser and world database are used for VE storage

– Event and transformation manager are used for communicationEvent and transformation manager are used for communication

Page 11: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

11

System CoreSystem Core--

User DatabaseUser Database

Page 12: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

12

System Core - User DatabaseSystem Core - User Database

• Stores information about usersStores information about users– Local userLocal user

– Remote usersRemote users

• Settings for user dependent application behavior Settings for user dependent application behavior – User RepresentationUser Representation

– Cursor RepresentationCursor Representation

– User TransformationUser Transformation

– Cursor TransformationCursor Transformation

• Coordinate SystemsCoordinate Systems1.1. Origin of the VEOrigin of the VE

2.2. Navigated transformationNavigated transformation

3.3. User transformationUser transformation

4.4. Hand transformationHand transformation

5.5. Head transformationHead transformation

Page 13: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

13

System Core - User DatabaseSystem Core - User Database

• Different models for representation are availableDifferent models for representation are available

• User RepresentationUser Representation– Simple AvatarSimple Avatar

• Simple textured geometry not articulatedSimple textured geometry not articulated

– Avatara AvatarAvatara Avatar

• Use of mesh skinning for animationsUse of mesh skinning for animations

• Separate control of head, back and handSeparate control of head, back and hand

• More detail in More detail in Going Immersive TutorialGoing Immersive Tutorial

• Cursor RepresentationCursor Representation– Simple CursorSimple Cursor

• Basic textured geometry displayed at cursor positionBasic textured geometry displayed at cursor position

– Interaction CursorInteraction Cursor

• Illustrates the state of interaction (idle, selection, manipulation)Illustrates the state of interaction (idle, selection, manipulation)

• Implemented by switching through three different graphical representationsImplemented by switching through three different graphical representations

Page 14: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

14

System Core - User DatabaseSystem Core - User Database

• Different models for user and cursor behavior are availableDifferent models for user and cursor behavior are available

• User TransformationUser Transformation– Defines the user transformationsDefines the user transformations

– Has to be modified e.g. if tracking systems are usedHas to be modified e.g. if tracking systems are used

• Cursor TransformationCursor Transformation– Defines behavior of the user cursorDefines behavior of the user cursor

– Might have to be altered to implement specific interaction techniqueMight have to be altered to implement specific interaction technique

– Models are available forModels are available for

• Virtual HandVirtual Hand

• HOMERHOMER

Page 15: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

15

System CoreSystem Core--

World DatabaseWorld Database

Page 16: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

16

System Core - World DatabaseSystem Core - World Database

• Keeps information about the objects of the virtual worldKeeps information about the objects of the virtual world

• Initially designed to partition the VEInitially designed to partition the VE– Partitioning idea relates to network scalability conceptsPartitioning idea relates to network scalability concepts

– Supports as well frustum culling of the underlying scene graphSupports as well frustum culling of the underlying scene graph

– Partitioning concept ideal for 2D layout of the scenes, usable in 3D applications Partitioning concept ideal for 2D layout of the scenes, usable in 3D applications as wellas well

• Important objects for structuringImportant objects for structuring– Entities and entity typesEntities and entity types

• Objects in a VE and their typeObjects in a VE and their type

– TilesTiles

• Element used to partition the VEElement used to partition the VE

– Environment and environment layoutEnvironment and environment layout

• Describes a local coordinate system and the layout of several coordinate Describes a local coordinate system and the layout of several coordinate systemssystems

Page 17: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

17

System Core - World DatabaseSystem Core - World Database

• World Database - Scene Graph RepresentationWorld Database - Scene Graph Representation– Data is stored inside STL vectorsData is stored inside STL vectors

– Mapping of object IDs via hash tables for improved seek performanceMapping of object IDs via hash tables for improved seek performance

– IDs stored in ID poolsIDs stored in ID pools

Page 18: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

18

System CoreSystem Core--

Event ManagerEvent Manager

Page 19: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

19

System Core - Event ManagerSystem Core - Event Manager

• Used for handling and distribution of discrete eventsUsed for handling and distribution of discrete events– Handles discrete communicationHandles discrete communication

– Components can register via piping mechanism to the event managerComponents can register via piping mechanism to the event manager

– Events are generated by componentsEvents are generated by components

– Sent to an event pipe in the event managerSent to an event pipe in the event manager

– They can be filtered in the pipe (partially implemented)They can be filtered in the pipe (partially implemented)

– Events are stored in event queuesEvents are stored in event queues

– Receiving components poll their queuesReceiving components poll their queues

– Events are executed inside the componentsEvents are executed inside the components

– Depending on the visibility level (LOCAL, REMOTE, GLOBAL) of the Depending on the visibility level (LOCAL, REMOTE, GLOBAL) of the messages they are sent to the network module (if available) and are distributed messages they are sent to the network module (if available) and are distributed in a reliable manner (typically via TCP)in a reliable manner (typically via TCP)

Page 20: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

20

System Core - Event ManagerSystem Core - Event Manager

• Conceptual ApproachConceptual Approach

Page 21: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

21

System CoreSystem Core--

Transformation ManagerTransformation Manager

Page 22: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

22

System Core - Transformation ManagerSystem Core - Transformation Manager

• Used for handling and distribution transformation dataUsed for handling and distribution transformation data– Handles continuous flow of transformation data packetsHandles continuous flow of transformation data packets

– Transformation MatricesTransformation Matrices

• Common type of data in VEs besides events are transformation matrices Common type of data in VEs besides events are transformation matrices (navigation, object manipulation)(navigation, object manipulation)

• Vast amount of transformations are present because of the use of position Vast amount of transformations are present because of the use of position tracking devicestracking devices

• Transmission not necessarily reliableTransmission not necessarily reliable

– Manager has several pipes with source and destinationManager has several pipes with source and destination

– Every object which is to be transformed in the VE gets it‘s own pipe which is Every object which is to be transformed in the VE gets it‘s own pipe which is opened at the start of the transformationopened at the start of the transformation

– Transformations are applied typically on the database of the VE and are (if Transformations are applied typically on the database of the VE and are (if available) partially transferred via the network module in an unreliable manneravailable) partially transferred via the network module in an unreliable manner

• Each pipe can have an arbitrary amount of stagesEach pipe can have an arbitrary amount of stages– Each stage contains one transformation modifierEach stage contains one transformation modifier

– The pipe stages are predefined at application setupThe pipe stages are predefined at application setup

• Once per frame all pipe stages on each pipe are computedOnce per frame all pipe stages on each pipe are computed

Page 23: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

23

System Core - Transformation ManagerSystem Core - Transformation Manager

• Pipe stages contain transformation modifiers which are set up by the Pipe stages contain transformation modifiers which are set up by the application developerapplication developer

• If more than one transformation pipe exists for a single object the If more than one transformation pipe exists for a single object the transformations are processed to one resulting transformationtransformations are processed to one resulting transformation– Implemented as a merger modifierImplemented as a merger modifier

• Transformation ModifiersTransformation Modifiers– Various modules can influence the transformation pipes via the modifiersVarious modules can influence the transformation pipes via the modifiers

• Network, interaction, navigation, physics, collision detection, …Network, interaction, navigation, physics, collision detection, …

• Pipe Stages – Different types of modifiers can be appliedPipe Stages – Different types of modifiers can be applied– ModifiersModifiers

• Modify pipe content, can write values to other Modify pipe content, can write values to other inVRsinVRs components components– WritersWriters

• Write values to other Write values to other inVRsinVRs components, do not modify pipe content components, do not modify pipe content– MergersMergers

• Used to merge pipes Used to merge pipes – InterruptersInterrupters

• Pipes have to be interrupted after mergingPipes have to be interrupted after merging

Page 24: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

24

System Core - Transformation ManagerSystem Core - Transformation Manager

• Transformation Manager – Program FlowTransformation Manager – Program Flow

Page 25: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

25

InterfacesInterfaces--

Input InterfaceInput Interface

Page 26: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

26

Interfaces - Input InterfaceInterfaces - Input Interface

• Input InterfaceInput Interface– Used for the abstraction of input devicesUsed for the abstraction of input devices

– Important since it is not often possible to develop on the VR installation and in Important since it is not often possible to develop on the VR installation and in case of Networked Virtual Environment seldom similar installations are case of Networked Virtual Environment seldom similar installations are interconnectedinterconnected

– Low-level device drivers or high-level libraries can be used for gathering inputLow-level device drivers or high-level libraries can be used for gathering input

Page 27: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

27

Interfaces - Input InterfaceInterfaces - Input Interface

• Input InterfaceInput Interface– Data of the input devices is exposed in a unified form (buttons, sensors, axes) Data of the input devices is exposed in a unified form (buttons, sensors, axes)

as an abstract controlleras an abstract controller

– This abstract controller can be accessed by This abstract controller can be accessed by inVRsinVRs components like modules or components like modules or core componentscore components

Page 28: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

28

InterfacesInterfaces--

Output InterfaceOutput Interface

Page 29: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

29

Interfaces - Output InterfaceInterfaces - Output Interface

• Output InterfaceOutput Interface– Used for the abstraction of output devicesUsed for the abstraction of output devices

– Interface to common scene graphs (OpenSG, OpenSceneGraph) and audio Interface to common scene graphs (OpenSG, OpenSceneGraph) and audio library (only partially implemented yet)library (only partially implemented yet)

– Use of OpenSG allows easy rendering on arbitrary multi-display installationsUse of OpenSG allows easy rendering on arbitrary multi-display installations

Page 30: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

30

ModulesModules--

NavigationNavigation

Page 31: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

31

Modules - NavigationModules - Navigation

• Navigation Module – ArchitectureNavigation Module – Architecture– Transformation results from speed, direction and orientationTransformation results from speed, direction and orientation

– These three components are individually configurableThese three components are individually configurable

Page 32: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

32

ModulesModules--

InteractionInteraction

Page 33: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

33

Modules - InteractionModules - Interaction

• Interaction ModuleInteraction Module– Different interaction techniques exist e.g.Different interaction techniques exist e.g.

• Virtual Hand (aka Natural Interaction)Virtual Hand (aka Natural Interaction)– Most common interaction technique in VRMost common interaction technique in VR– Direct mapping of cursor transformation for selection and manipulationDirect mapping of cursor transformation for selection and manipulation

• HOMERHOMER– Combination of ray-casting for selection und Virtual Hand for manipulation at Combination of ray-casting for selection und Virtual Hand for manipulation at

distancedistance

• GoGoGoGo– Non-Linear scaling of distance vector between user sensors for Non-Linear scaling of distance vector between user sensors for

determination of the cursor transformationdetermination of the cursor transformation

– Interactions techniques can be split up into individual reusable components Interactions techniques can be split up into individual reusable components for different parts of the interactionfor different parts of the interaction

Page 34: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

34

Modules - InteractionModules - Interaction

• Interaction Module is implemented as an automatonInteraction Module is implemented as an automaton– Input alphabet Input alphabet Σ Σ defined through components of abstract controller and defined through components of abstract controller and

system statessystem states

– q = {qq = {q00 (Idle), q (Idle), q11 (Selection), q (Selection), q22 (Manipulation)} (Manipulation)}

– Transition functions Transition functions δ δ defined through components of interaction techniquesdefined through components of interaction techniques

– Begin and end state = qBegin and end state = q00

Page 35: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

35

Modules - InteractionModules - Interaction

• Collaborative interaction from a scene graph perspectiveCollaborative interaction from a scene graph perspective

– Collaborative interaction allows concurrent manipulation of an object through Collaborative interaction allows concurrent manipulation of an object through several users at the same attribute (typically transformation matrix)several users at the same attribute (typically transformation matrix)

– Having more than one parent nodes in a scene graph (if allowed) lead to Having more than one parent nodes in a scene graph (if allowed) lead to multiple rendering of an objectmultiple rendering of an object

– Transformation changes initiated by different sources, which refer to the Transformation changes initiated by different sources, which refer to the same object are detected as a conflict an resolved with the help of the same object are detected as a conflict an resolved with the help of the transformation managertransformation manager

Page 36: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

36

ModulesModules--

NetworkNetwork

Page 37: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

37

Modules - NetworkModules - Network

• Network ModuleNetwork Module– General problem with network solutions is their ambivalenceGeneral problem with network solutions is their ambivalence

• Thus the Thus the inVRsinVRs network module is designed for exchangeability network module is designed for exchangeability

– Consists of two layersConsists of two layers

• High-Level: general interface to the frameworkHigh-Level: general interface to the framework

• Low-Level: implementation of network communication and topologyLow-Level: implementation of network communication and topology

– Different implementations of the low-level layer existDifferent implementations of the low-level layer exist

• Separation of the virtual world on different servers (e.g. via Grid Separation of the virtual world on different servers (e.g. via Grid computing)computing)

• Standard implementation of the network module uses peer-to-peer Standard implementation of the network module uses peer-to-peer communication and topologycommunication and topology

– Typically events are distributed via TCP (reliable) and transformation data is Typically events are distributed via TCP (reliable) and transformation data is distributed via UDP (unreliable but fast)distributed via UDP (unreliable but fast)

Page 38: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

38

OutlookOutlook

Page 39: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

39

OutlookOutlook

Physics ModulePhysics Module Joint InteractionJoint Interaction AvatarsAvatars

3D Menus3D Menus Particle System WrapperParticle System Wrapper

Collision MapsCollision Maps CAVE Scene ManagerCAVE Scene Manager

Height MapsHeight Maps

Free Form Deformation ModuleFree Form Deformation Module

• Additional ToolsAdditional Tools

Page 40: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

40

OutlookOutlook

• Novel conceptsNovel concepts– Clear distinction in the area of communication patternsClear distinction in the area of communication patterns

– Events and transformations are handled independentlyEvents and transformations are handled independently

– Transformation management allows for concurrent object manipulationTransformation management allows for concurrent object manipulation

– Composeable and clearly defined interaction and navigationComposeable and clearly defined interaction and navigation

– Automatic data distribution mechanism Automatic data distribution mechanism

• Next slide sets Next slide sets – Medieval Town TutorialMedieval Town Tutorial

– Going Immersive TutorialGoing Immersive Tutorial

Page 41: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

41

AcknowledgementsAcknowledgements

• ContributorsContributors– Architecture and Main DevelopmentArchitecture and Main Development

Christoph Anthes, Helmut Bressler, Roland Landertshamer, Marina LengerChristoph Anthes, Helmut Bressler, Roland Landertshamer, Marina Lenger

– ToolsTools

Helmut Garstenauer, Martin Garstenauer, Adrian Haffegee, Marlene Helmut Garstenauer, Martin Garstenauer, Adrian Haffegee, Marlene Hochrieser, Roland Hopferwieser, Robert Owen, Stephan Reiter, Thomas Hochrieser, Roland Hopferwieser, Robert Owen, Stephan Reiter, Thomas Weberndorfer, Christian Wressnegger, Johannes ZarlWeberndorfer, Christian Wressnegger, Johannes Zarl

Page 42: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

Questions ?Questions ?

Page 43: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

43

BibliographyBibliography

• Christoph AnthesChristoph AnthesA Collaborative Interaction Framework for Networked Virtual Environments. A Collaborative Interaction Framework for Networked Virtual Environments. PhD PhD Thesis at Institute of Graphics and Parallel Processing at JKU Linz, Austria, August 2009.Thesis at Institute of Graphics and Parallel Processing at JKU Linz, Austria, August 2009.

• Christoph Anthes, Philipp Aumayr, Clemens Birklbauer, Roland Hackl, Marlene Hochrieser, Christoph Anthes, Philipp Aumayr, Clemens Birklbauer, Roland Hackl, Marlene Hochrieser, Roland Hopferwieser, Simon Opelt, Christoph Payrhuber, Mika Satomi, Stefan Simmer, Roland Hopferwieser, Simon Opelt, Christoph Payrhuber, Mika Satomi, Stefan Simmer, Georg Stevenson, Roland Landertshamer, Bernhard Lehner, Marina Lenger, Martin Georg Stevenson, Roland Landertshamer, Bernhard Lehner, Marina Lenger, Martin Lenzelbauer, Clemens Mock, and Alexander Wilhelm.Lenzelbauer, Clemens Mock, and Alexander Wilhelm.Space Trash – Development of a Networked Immersive Virtual Reality Installation. Space Trash – Development of a Networked Immersive Virtual Reality Installation. Technical Report at Institute of Graphics and Parallel Processing, Johannes Kepler Technical Report at Institute of Graphics and Parallel Processing, Johannes Kepler University Linz, June 2009. University Linz, June 2009.

• Christoph Anthes, Mika Satomi, Alexander Wilhelm, Christa Sommerer, and Jens Volkert. Christoph Anthes, Mika Satomi, Alexander Wilhelm, Christa Sommerer, and Jens Volkert. Space Trash – An Interactive Networked Virtual Reality Installation. Space Trash – An Interactive Networked Virtual Reality Installation. In Proceedings of In Proceedings of thethe 11th Virtual Reality International Conference (VRIC ’09) 11th Virtual Reality International Conference (VRIC ’09), pages 107-118, Laval, France, , pages 107-118, Laval, France, April 2009. April 2009.

• Christoph Anthes, Mika Satomi, Alexander Wilhelm, Christa Sommerer, and Jens Volkert. Christoph Anthes, Mika Satomi, Alexander Wilhelm, Christa Sommerer, and Jens Volkert. Design and Setup of Space Trash – A Collaborative Virtual Reality Installation using Design and Setup of Space Trash – A Collaborative Virtual Reality Installation using Physical Interfaces. IPhysical Interfaces. Installation description in Proceedings of thenstallation description in Proceedings of the 11th Virtual Reality 11th Virtual Reality International Conference (VRIC ’09) ReVolutionInternational Conference (VRIC ’09) ReVolution, pages 355-362, Laval, France, April 2009. , pages 355-362, Laval, France, April 2009.

Page 44: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

44

BibliographyBibliography

• Christoph Anthes, Roland Landertshamer, Helmut Bressler, and Jens Volkert.Christoph Anthes, Roland Landertshamer, Helmut Bressler, and Jens Volkert.Developing VR Applications for the Grid. Developing VR Applications for the Grid. In In 1st International Workshop on Real–Time 1st International Workshop on Real–Time Online Interactive Applications (ROIA) on the GRIDOnline Interactive Applications (ROIA) on the GRID at the 14th International Euro-Par at the 14th International Euro-Par Conference European Conference on Parallel and Distributed Computing (Euro-Par ’08), Conference European Conference on Parallel and Distributed Computing (Euro-Par ’08), pages 343–351, Las Palmas de Gran Canaria, Spain, August 2008. pages 343–351, Las Palmas de Gran Canaria, Spain, August 2008.

• Eva Pajorová, Ladislav Hluchý, and Christoph Anthes.Eva Pajorová, Ladislav Hluchý, and Christoph Anthes.3D Geovisualization Service for Grid-oriented applications of Natural Disasters.3D Geovisualization Service for Grid-oriented applications of Natural Disasters.Poster in the 16th International Conference in Central Europe on Computer Graphics, Poster in the 16th International Conference in Central Europe on Computer Graphics, Visualization and Computer Vision (WSCG '08), Plzen, Czech Republic, February 2008. Visualization and Computer Vision (WSCG '08), Plzen, Czech Republic, February 2008.

• Christoph Anthes, Alexander Wilhelm, Roland Landertshamer, Helmut Bressler, and Jens Christoph Anthes, Alexander Wilhelm, Roland Landertshamer, Helmut Bressler, and Jens Volkert.Volkert.Net’O’Drom – An Example for the Development of Networked Immersive VR Net’O’Drom – An Example for the Development of Networked Immersive VR Applications. Applications. In International Conference on Computational Science (ICCS '07), pages In International Conference on Computational Science (ICCS '07), pages 752-759, Beijing, China, May 2007. 752-759, Beijing, China, May 2007.

• Christoph Anthes, Roland Landertshamer, and Jens Volkert.Christoph Anthes, Roland Landertshamer, and Jens Volkert.Physically-Based Interaction for Networked Virtual Environments. Physically-Based Interaction for Networked Virtual Environments. In International In International Conference on Computational Science (ICCS '07), pages 776-783, Beijing, China, May Conference on Computational Science (ICCS '07), pages 776-783, Beijing, China, May 2007. 2007.

Page 45: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

45

BibliographyBibliography

• Christoph Anthes, Roland Landertshamer, Helmut Bressler, and Jens Volkert.Christoph Anthes, Roland Landertshamer, Helmut Bressler, and Jens Volkert.Managing Transformations and Events in Networked Virtual Environments. Managing Transformations and Events in Networked Virtual Environments. In ACM In ACM Multimedia Modeling (MMM '07), pages 722-729, Singapore, January 2007.Multimedia Modeling (MMM '07), pages 722-729, Singapore, January 2007.

• Helmut Bressler, Roland Landertshamer, Christoph Anthes, and Jens Volkert.Helmut Bressler, Roland Landertshamer, Christoph Anthes, and Jens Volkert.An efficient Physics Engine for Virtual Worlds.An efficient Physics Engine for Virtual Worlds. In In medi@terramedi@terra, pages 152-158, Athens, , pages 152-158, Athens, Greece, October 2006.Greece, October 2006.

• Christoph Anthes and Jens Volkert.Christoph Anthes and Jens Volkert.inVRs - A Framework for Building Interactive Networked Virtual Reality Systems. inVRs - A Framework for Building Interactive Networked Virtual Reality Systems. In In International Conference on High Performance Computing and Communications (HPCC International Conference on High Performance Computing and Communications (HPCC '06)'06), pages 894-904, Munich, Germany, September 2006. , pages 894-904, Munich, Germany, September 2006.

• Christoph Anthes, Adrian Haffegee, Paul Heinzlreiter, and Jens Volkert.Christoph Anthes, Adrian Haffegee, Paul Heinzlreiter, and Jens Volkert.A Scalable Network Architecture for Closely Coupled Collaboration. A Scalable Network Architecture for Closely Coupled Collaboration. In In Journal of Journal of Computing and InformaticsComputing and Informatics, 24(1):31-51, August 2005. , 24(1):31-51, August 2005.

• Christoph Anthes and Jens Volkert.Christoph Anthes and Jens Volkert.A Toolbox Supporting Collaboration in Networked Virtual Environments.A Toolbox Supporting Collaboration in Networked Virtual Environments. In In International Conference on Computational Science (ICCS '05)International Conference on Computational Science (ICCS '05), pages 383-390, Atlanta, , pages 383-390, Atlanta, GA, USA, May 2005. GA, USA, May 2005.

Page 46: Developing VR Applications with the  inVRs  Framework at IEEE VR’10 Part I – Introduction

20.03.10 Developing VR Applications with the inVRs Framework

46

BibliographyBibliography

• Adrian Haffegee, Ronan Jamieson, Christoph Anthes, and Vassil N. Alexandrov.Adrian Haffegee, Ronan Jamieson, Christoph Anthes, and Vassil N. Alexandrov.Tools For Collaborative VR Application Development. Tools For Collaborative VR Application Development. In In International Conference on International Conference on Computational Science (ICCS '05)Computational Science (ICCS '05), pages 350-358, Atlanta, GA, USA, May 2005., pages 350-358, Atlanta, GA, USA, May 2005.

• Christoph Anthes, Paul Heinzlreiter, Adrian Haffegee, and Jens Volkert.Christoph Anthes, Paul Heinzlreiter, Adrian Haffegee, and Jens Volkert.Message Traffic in a Distributed Virtual Environment for Close-coupled Collaboration.Message Traffic in a Distributed Virtual Environment for Close-coupled Collaboration. In In Parallel and Distributed Computing and Systems (PDCS '04)Parallel and Distributed Computing and Systems (PDCS '04), pages 484-490, San , pages 484-490, San Francisco, CA, USA, September 2004. Francisco, CA, USA, September 2004.

• Christoph Anthes, Paul Heinzlreiter, Gerhard Kurka, and Jens Volkert.Christoph Anthes, Paul Heinzlreiter, Gerhard Kurka, and Jens Volkert.Navigation models for a flexible, multi-mode VR Navigation Framework. Navigation models for a flexible, multi-mode VR Navigation Framework. In In ACM ACM SIGGRAPH International Conference on Virtual Reality Continuum and its Applications in SIGGRAPH International Conference on Virtual Reality Continuum and its Applications in Industry (VRCAI '04)Industry (VRCAI '04), pages 476-479, Singapore, June 2004. , pages 476-479, Singapore, June 2004.

• Christoph Anthes, Paul Heinzlreiter, and Jens Volkert.Christoph Anthes, Paul Heinzlreiter, and Jens Volkert.An adaptive Network Architecture for Close-coupled Collaboration in Distributed An adaptive Network Architecture for Close-coupled Collaboration in Distributed Virtual Environments. Virtual Environments. In In ACM SIGGRAPH International Conference on Virtual Reality ACM SIGGRAPH International Conference on Virtual Reality Continuum and its Applications in Industry (VRCAI '04)Continuum and its Applications in Industry (VRCAI '04), pages 382-385, Singapore, June , pages 382-385, Singapore, June 2004. 2004.