Special Course on Networked Virtual Environments February 13, 2004 Jouni Smed 1
Single Single-
- Thread NVE
Thread NVE
Compute State Changes Compute State Changes from Inputs from Inputs Read Network Read Network Compute State Changes Compute State Changes from Net Reads from Net Reads Computational Computational Modelling Modelling Post State Changes Post State Changes to Network to Network Generate New Generate New Picture Picture Read Input Read Input Devices Devices Initialization Initialization
Event Loop Event Loop
Multiple Subsystems, Multiple Threads Multiple Subsystems, Multiple Threads
Post State Post State Changes Changes Net Write Net Write Subsystem Subsystem Generate Generate New Picture New Picture Display Display Subsystem Subsystem Read Network Read Network Compute State Compute State Changes from Changes from Net Reads Net Reads Net Read Net Read Subsystem Subsystem Read Input Read Input Devices Devices Compute State Compute State Changes from Changes from Inputs Inputs Input Input Subsystem Subsystem Modelling Modelling Subsystem Subsystem
Shared Shared Memory Memory
Computational Computational Modelling Modelling
Real Real-
- Time Rendering
Time Rendering
- Key problem: limitations in the performance of graphics
Key problem: limitations in the performance of graphics hardware hardware
- frames per second
frames per second
- polygons per second
polygons per second
- Polygon
Polygon culling culling
- Level
Level-
- of
- f-
- detail
detail processing processing
Polygon Culling Polygon Culling
- Reduce the number of processed polygons
Reduce the number of processed polygons
- determine which polygons do not need to be drawn
determine which polygons do not need to be drawn
- A wealth of research and methods exists
A wealth of research and methods exists
- Assumes that the underlying 3D model remains quite static
Assumes that the underlying 3D model remains quite static
- changes in the model
changes in the model ⇒ ⇒ changes in the culling data structures changes in the culling data structures
Draw all polygons Draw all polygons Culling Culling Draw visible polygons Draw visible polygons Time Time
? ?
Culling Tree Culling Tree
Room 1,1; Room 1,1; BV BV
Virtual World Virtual World Bounding Volume (BV) Bounding Volume (BV) Floor 1; BV Floor 1; BV Floor 2; BV Floor 2; BV Floor 3; BV Floor 3; BV Room 1,2; Room 1,2; BV BV Room 1,1; Room 1,1; BV BV View View Volume Volume
Potentially Visible Potentially Visible Sets (PVSs) Sets (PVSs) of
- f Polygons
Polygons
Room 1 Room 1 Room 2 Room 2 Room 3 Room 3 y y = 1 = 1 y y = 2 = 2 x x = 1 = 1 y y = 1 = 1 x x = 1 = 1 Room Room 2 2 Room 3 Room 3 Room 1 Room 1 Binary space partitioning Binary space partitioning tree tree PVS PVS PVS PVS PVS PVS