Exploiting Level
Exploiting Level- -of of- -Detail Perception Detail Perception
Nearby viewers Nearby viewers
expect full graphical expect full graphical detailsdetails
accurate structure, position, orientationaccurate structure, position, orientation
update rate update rate →→local frame ratelocal frame rate
Distant viewers Distant viewers
can tolerate can tolerate lesslessgraphical graphical detailsdetails
less accurate structure, position, orientationless accurate structure, position, orientation
User’s focus is typically nearby User’s focus is typically nearby
Many inaccuracies cannot even be detected on a fine Many inaccuracies cannot even be detected on a fine- - resolution display
resolution display
A
Multiple
Multiple- -Channel Architecture Channel Architecture
Multiple independent data channels for each entity Multiple independent data channels for each entity
Low-Low-resolution channelresolution channel (
(xx, , yy)) ((xx, , yy)) High
High--resolution channelresolution channel
High High--frequency,frequency, highhigh--bandwidthbandwidth information information Low Low--frequencyfrequency,, low low--bandwidthbandwidth information information
⇒The overall bandwidth ⇒
The overall bandwidth requirements are reduced requirements are reduced
Implementation Examples Implementation Examples
Client Client- -server server
each transmission identifies its channeleach transmission identifies its channel
server dispatches data from channels to clientsserver dispatches data from channels to clients
Multicast group for each region Multicast group for each region
assign multiple assign multiple addressesaddressesfor each regionfor each region
~~one group provides all of the entities’ highone group provides all of the entities’ high--resolution channels,resolution channels, another group provides all of the entities’ low
another group provides all of the entities’ low--resolution channelsresolution channels
Multicast group for each entity Multicast group for each entity
assign multiple assign multiple addressesaddressesfor each entityfor each entity
Different reliabilities to each channel Different reliabilities to each channel
lowlow--frequency updates are frequency updates are importantimportant
~~lost packets can have a significant impactlost packets can have a significant impact
Selecting the Channels to Provide Selecting the Channels to Provide
How many channels to provide for an entity? How many channels to provide for an entity?
more channels: better service for subscribers more channels: better service for subscribers
each channel imposes a cost (bandwidth and each channel imposes a cost (bandwidth and computational)
computational)
To satisfy the To satisfy the trade trade- -off off, three channels for each entity , three channels for each entity is typically needed
is typically needed
channels channels provide order provide order- -of of- -magnitude differences in magnitude differences in
~~structural and positional accuracystructural and positional accuracy
~~packet ratepacket rate Rigid
Rigid--body channelbody channel Approximate
Approximate--body channelbody channel Full
Full--body channelbody channel Far
Far--range viewersrange viewers Mid
Mid--range viewersrange viewers Near
Near--range viewersrange viewers
Rigid
Rigid- -Body Channel Body Channel
Demands the least bandwidth and computation Demands the least bandwidth and computation
Represents the entity as a rigid body Represents the entity as a rigid body
Ignores changes in the entity’s structure Ignores changes in the entity’s structure
Update types: Update types:
positionposition
orientationorientation
structurestructure
Approximate
Approximate- -Body Channel Body Channel
More frequent position and orientation updates More frequent position and orientation updates
Hosts can render a rough approximation of the entity’s Hosts can render a rough approximation of the entity’s dynamic structure
dynamic structure
appendages and other articulated partsappendages and other articulated parts
Provided information is entity Provided information is entity- -specific specific
correspondscorrespondsto the dominant changes of the structureto the dominant changes of the structure
Common Approximations Common Approximations
Radial lengthRadial length
motion towards and away from a motion towards and away from a centre point
centre point
update packets include the update packets include the current radius current radius
Articulation vectorArticulation vector
the current direction of the the current direction of the appendage
appendage
models a rotating turret, arms and models a rotating turret, arms and legs
legs
Local coLocal co--ordinate system pointsordinate system points
subset of the entity’s significant subset of the entity’s significant vertices relative to the entity’s vertices relative to the entity’s local co
local co--ordinate systemordinate system
the entity is composed of the entity is composed of multiple components multiple components
Radius Radius
Full- Full -Body Channel Body Channel
Highest level of detail Highest level of detail
High bandwidth and computational requirements High bandwidth and computational requirements
viewerviewercan subscribe to a limited number of full-can subscribe to a limited number of full-body body channelschannels
Frequent transmissions Frequent transmissions
Position and orientation Position and orientation
Accurate structure information Accurate structure information
Exploiting Temporal Perception Exploiting Temporal Perception
Render the entity in an accurate location Render the entity in an accurate location — — albeit slightly out- albeit slightly out - of of- -date date
As long as the local user does not interact, small temporal As long as the local user does not interact, small temporal inaccuracies
inaccuracies can be can be allowed allowed
Advantages Advantages: :
worksworkson on WANs WANs having great latencyhaving great latency
cancanenhance packet aggregationenhance packet aggregation
cancanenhance dead reckoningenhance dead reckoning
Active and Passive Entities Active and Passive Entities
An active entityAn active entity
takes actions on its owntakes actions on its own
generates updatesgenerates updates
human participants, computerhuman participants, computer-- controlled entities controlled entities
cannot be predicted typicallycannot be predicted typically
rendered using state updates rendered using state updates adjusted for the latency adjusted for the latency
A passive entityA passive entity
reacts to events from the reacts to events from the environment, does not generate environment, does not generate its own actions
its own actions
inanimate objects (e.g., rocks, inanimate objects (e.g., rocks, balls, books)
balls, books)
active entities interact with active entities interact with passive entities passive entities
rendered according to the latency rendered according to the latency of its nearest active entity of its nearest active entity
reactsreactsinstantaneously to instantaneously to the the actions
actionsof of a nearbya nearbyactive entityactive entity
Example: Pong Example: Pong
Two active entities: Two active entities:
paddles paddles
movement unpredictable movement unpredictable
One passive entity: ball One passive entity: ball
movement predictable movement predictable
Latency of Latency of d d seconds seconds d d
View of
View of the Blue the Blue Player Player
View
View of the of the Red Player Red Player Pong: Pong: A Summary A Summary
Each player sees a different representation of Each player sees a different representation of the same the same playing playing field
field
The ball accelerates as it approaches the local player’s paddle The ball accelerates as it approaches the local player’s paddle
The ball decelerates as it approaches the remote player’s The ball decelerates as it approaches the remote player’s paddle
paddle
The ball’s rendered position alternates between The ball’s rendered position alternates between
the current timethe current time
~~meaningful interaction for local playermeaningful interaction for local player
a past time referencea past time reference
~
~network latencynetwork latency
~~observing meaningful interaction for remote observing meaningful interaction for remote playerplayer
3½ 3 ½- -Dimensional Playing Field Dimensional Playing Field
Represent each player’s perception as a four Represent each player’s perception as a four- - dimensional
dimensional co co- -ordinate ordinate system ( system (x
x,, y
y,, z
z,, t
t))
xx, , yy, , zz: the spatial position relative to the local : the spatial position relative to the local player’s current position
player’s current position
~~local player at (local player at (0, 0, 00, 0, 0))
tt: the time associated with rendered information : the time associated with rendered information from that position
from that position
~~local player rendered at current time: local player rendered at current time: t t = 0= 0
~
~opposing player: opposing player: t t = −= −dd
(0, 0, 0 (0, 0, 0))
d d
Co- Co -ordinate ordinate Systems Systems
t t = 0= 0
t = −t = −dd
Blue Player Blue Player
t t = −= −dd
t t = 0= 0
Red Player Red Player
Properties of the Co
Properties of the Co- -ordinate System ordinate System
The coThe co--ordinate system is defined ordinate system is defined independently for each player independently for each player
Depends on the player’s current Depends on the player’s current position and the delay of arriving position and the delay of arriving information
information
Changes dynamically as the player Changes dynamically as the player moves or as the network properties moves or as the network properties change
change
Defines how a passive object Defines how a passive object should be rendered should be rendered
Each user perceives all collisions Each user perceives all collisions correctly
correctly
Objects that approach the local Objects that approach the local user are rendered in the user’s user are rendered in the user’s timetime
Smooth movementSmooth movement
Generalizing the Local Temporal Contour Generalizing the Local Temporal Contour
Limitations: Limitations:
players are capable of moving along a single axis onlyplayers are capable of moving along a single axis only
supports twosupports twoactive objects onlyactive objects only
Generalization to a 4D Generalization to a 4D co co- -ordinate ordinate system system requires preserving requires preserving for the local user:
for the local user:
interactinginteractingnaturally withnaturally withpassive objects passive objects in vicinityin vicinity
seeingseeingremote interactions remote interactions (passive(passive--toto--passive,passive,passivepassive--toto--active)active)
Local Temporal Contour Local Temporal Contour
The local user at ( The local user at (0, 0, 0 0, 0, 0) )
Each active object is Each active object is assigned a assigned a t
tvalue value corresponding
corresponding to its latency to its latency
Interpolate Interpolate the contour the contour over over all active objects including all active objects including local
local
Contour defines a suitable Contour defines a suitable t
tvalue for each spatial point value for each spatial point
local local
t t y yx x
Limitations Limitations
Varying latency can cause entities to (unnaturally) jump Varying latency can cause entities to (unnaturally) jump forward or backward in time
forward or backward in time
use use averagedaveragedlatency to dampen the effectlatency to dampen the effect
What if an update What if an update packet is packet is delayed
delayed considerably? considerably?
predict entity’s past position, dead reckoningpredict entity’s past position, dead reckoning
Computational requirements Computational requirements
compute compute the contourthe contourusing only the nearest active entitiesusing only the nearest active entities
§6.4 Enhancing the System Architecture
§6.4 Enhancing the System Architecture
Change the network software architecture Change the network software architecture
Basic structures: client Basic structures: client- -server and peer server and peer- -to to- -peer peer
Augment and combine basic structures Augment and combine basic structures
server clustersserver clusters
~~partition clients across multiple serverspartition clients across multiple servers
~
~partition the NVE across multiple serverspartition the NVE across multiple servers
server hierarchiesserver hierarchies
peerpeer--server systemsserver systems
M
M HH BB TT PP
Traditional Client
Traditional Client- -Server Server
Server may act as Server may act as
broadcast reflectorbroadcast reflector
filtering reflectorfiltering reflector
packet aggregation serverpacket aggregation server
Scalability problems Scalability problems
all traffic all traffic goes throughgoes throughthe the server
server
⇒⇒Server clusters
Server clusters
SS CC
CC CC C C
C C C
C CC
C C C C
CC C C CC C
C
C C
Partitioning Clients
Partitioning Clients across across Multiple Servers Multiple Servers
The servers exchange control The servers exchange control messages among themselves messages among themselves
inform the interestsinform the interestsof their of their clients
clients
Reduces the workload on each Reduces the workload on each server
server
Incurs a greater Incurs a greater latency latency
The total The total processing and processing and bandwidth requirements are bandwidth requirements are greater
greater
S S S
S SS
S S C
C
C C C C CC
C C C
C CC
C C C C
C C
C C C C C
C
CC
Partitioning the NVE
Partitioning the NVE across across Multiple Servers Multiple Servers
Each server manages clients Each server manages clients located within a certain region located within a certain region
Client communicates with Client communicates with different serves as it moves different serves as it moves
Eliminates a lot of network trafficEliminates a lot of network traffic
Requires Requires advancedadvancedconfigurationconfiguration
Is Is a regiona regionvisible from another visible from another region?
region?
AggregationAggregationservers are servers are a speciala special case of NVE server partitioning case of NVE server partitioning CC CC
CC C C
CC C C
CC S
S SS
S
S SS
Server Hierarchies Server Hierarchies
Servers themselves Servers themselves act asact asclientsclients
Packet fromPacket froman upstreaman upstreamserver:server:
deliver to deliver to the interestedthe interested downstream clients downstream clients
Packet from Packet from a downstreama downstreamclient:client:
deliver to deliver to the interestedthe interested downstream clients downstream clients
if other regions are interested in if other regions are interested in the
the packetpacketthen then deliver itdeliver itto the to the upstream
upstreamserverserver CC CC
CC C C
CC C C
CC S
S SS
S
S SS
SS S S
S S