Title: Networked Virtual Environment intern midterm presentation
1Networked Virtual Environmentintern midterm
presentation
Implementation of Seamless MPEG-4 Streaming over
Mobile IP-enabled Wireless LAN
2Contents
- Basic concept of Networked Virtual Environment
- The introduction of IMRC project
- Virtual reality software
- CAVELib
- VR-Juggler
- The existing problem in Net-VE
- Future work
3Basic Concept of Net-VE
- Allow multiple users to interact in real-time
with others around the world - Have several problems related to network
- Consistent distributed information
- Guaranteeing real-time interactivity
- Contending with limited network bandwidth
- Common features of Net-VE
- Shared sense of space, presence and time
- Way to communicate and share
- Interact realistically with other users and with
VE itself
VRE
VRE
Real-time Interaction
Sharedmemory
Sharedmemory
4IMRC Project
5Network Topology of IMRC Project
Real-time Transmission Object Information Update
Signal
VRE Biennale
VRE K-JIST
Shared memory
LoadAdaptor
Shared memory
LoadAdaptor
database
Update
Update
Visitors sculpture data For safety storing
information
6Virtual Reality Software-1
- VR-Juggler Open Source VR application
development framework - Interactive immersive application independently
of the underlying technologies - Base Application Object Interface
- init() called by kernel to initialize any
application data - Application setup its data structure.
- preFrame() called when the system is about to
trigger drawing - Reserved for last-millisecond data update from
device input - intraFrame() excutes in parallel with rendering
method - Performing computation for the next frame
- postFrame() invoked after rendering has
completed but before updates devices and other
internal data - Synchronizing with external networking
7VR-Juggler Kernel Loop Sequence
vjKernel
vjGlApp
vjGlDraw Manager
vjinput Manager
Init()
InitAPI()
apiInit()
VRE
while
preFrame()
draw()
intraFrame()
sync()
Network
postFrame()
Send Data
updateAllData()
8Virtual Reality Software-2
- CAVELib API that provides the cornerstone for
creating robust interactive I3D environment - CAVELib Callbacks
- Display graphics routine to be rendered (called
times per frame) - Passing this function pointer to CAVEDisplay()
- Frame update called exactly once per frame in
each rendering thread - Passing this function pointer to
CAVEFrameFunction() - Initialization called exactly once prior to
CAVEInit() - Passing this function pointer to
CAVEInitApplication() - Data Synchronization
- CAVEMasterDisplay() returns true in exactly one
display thread/process - CAVEDisplayBarrier() the display
threads/processes to block until all of them have
called it
9CAVELib Program Flow
CAVEinit()
Create thread for each display pipe
Init application callback function
Init application callback function
Main process User responsible for This process
Farame update callback function
Farame update callback function
while
Graphics callback function
Graphics callback function
Barrier wait for all display process to finish
rendering all data
Swap buffer
Swap buffer
Update variables (Master thread)
Barrier wait for master process to finish
updating shared data
10Coupling VR-Juggler and CAVELib
- The biggest difference with VR-juggler and
CAVELib - VR-Juggler doesnt have to manage shared memory
with other VR Juggler instances. Thus, memory can
be created as in normal C - Requirement for coupling is common data structure
- Common network interface and data formation are
needed for object transfer - Use some parts of Quanta library
- In general, data formation for object information
Object ID position (x,y,z) additional
information
Predictive data or Synchronization data
11The Existing Problems in NVE
- VR software has similar architecture to handle
shared data in processes or thread. But they
focus only on synchronization between local
processes - Additional factors for networked virtual
environments to be consistent - Different delay
- Different jitter
- Different rendering or processing power
- Although network bandwidth problem is solved,
these factors still remain for distributed
virtual environment - If we consider these factors, it would be needed
to provide other VREs with information like
timestamp - when you should draw this graphic data
- Limitation of waiting for other VREs to avoid
deadlock - These information can be used to calculate
several delays, so it makes adaptive
synchronization delay possible
12Future work
- IMRC Project
- Support the integration of immersive components
by Feb. - Practice VR-Juggler and Quanta library
- Writing network game program which is simple but
scalable and stable by using VR-juggler and
Quanta - Recognize practical problems in Net-VE
- Enhance the performance of the game with adapting
several algorithm