WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

14
URBAN WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2

description

 Quadtree ◦ Splitting rule: number of buildings ◦ Leaf cells store building data  Geometry  Collision geometry  Segments for horizon culling (building tops)  Each cell can be requested separately

Transcript of WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Page 1: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

URBANWP4: Efficient visualisation and streaming

Tasks 4.1 + 4.2

Page 2: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Efficient visualization and streaming◦ Problem: huge datasets

Guarantee interactive framerates Data transfer from servers

Status◦ Interactive City Viewer demo

Both on desktop and Mobile (iPhone) systems Streaming data from server Using TeleAtlas 3D city data Horizon Culling

WP4: Task 4.1

Page 3: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Quadtree◦ Splitting rule: number of buildings◦ Leaf cells store building data

Geometry Collision geometry Segments for horizon culling (building tops)

Each cell can be requested separately

3D Building Data structure

Page 4: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Paris◦ Geometry: 1.4 GB◦ Collision geometry: 89 MB◦ Texture Atlas: 5 texture atlas files (2048x2048)

106 MB (.dds format with mipmap levels)◦ Segments: 40 MB

Barcelona◦ Geometry: 600 MB◦ Collision geometry: 31 MB◦ Texture Atlas: 4 texture atlas files (2048x2048)

87 MB (.dds format with mipmap levels)◦ Segments: 14 MB

Example data sizes

Page 5: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Texture Atlas Example

Page 6: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Interactive City Viewer (Desktop)

Page 7: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Interactive City Viewer (iPod)

Page 8: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Horizon Culling Results

1 15 29 43 57 71 85 99 11312714115516918319721122523925326728129530932333701020304050607080

Framerate

Horizon OFFHorizon ON

1 15 29 43 57 71 85 99 1131271411551691831972112252392532672812953093233370

100000

200000

300000

400000

500000

600000

Triangle Count

Horizon OFFHorizon ON

Page 9: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

“A Flexible and Extensible Architecture for Visibility Culling”

Miquel À. Rújula, Jeroen Dierckx, Tom Jehaes, Peter Quax, Wim Lamotte and Pere A. Palmer

Conference on Computer Game Design and Technology

Paper Accepted for GDTW 2008

Page 10: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Further experimentation with different splitting strategies for building the quadtree◦ Important factors: render performance, download size per cell,

segment count, … Experiment with different strategies for building the

texture atlas◦ One for the whole city <-> one for each cell

Build on previous experience with LoD solutions◦ Combinations of traditional 3D models with image-based and

procedurally generated models Leverage the existing quadtree data model for LoD

◦ Parent nodes store a lower resolution version of the merged children

Procedurally generated data?

WP4: Task 4.1 planning

Page 11: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Interaction framework◦ Flexible interaction specification

Status◦ Scripting completely integrated into the existing

framework◦ Application interaction is defined by writing

scripts◦ Visual world editor preliminary version

WP4: Task 4.2

Page 12: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Scripting Example-- Key bindingsfunction onKeyPressed(event)

if event.key == Keyboard.KC_1 thenbillboard1.URL = “controls.swf"

elseif event.key == Keyboard.KC_2 thenbillboard1.URL = "http://www.youtube.com/v/lcCAh-j_Kvg&hl=en&fs=1&rel=0&autoplay=1"

elseif event.key == Keyboard.KC_3 thenbillboard1.URL =

"http://www.youtube.com/v/8BGbOpm9dyk&hl=en&fs=1&rel=0&autoplay=1"

elseif event.key == Keyboard.KC_3 thenbillboard1.URL = "http://japonyol.net/maps/swf/slider.swf"

endend

listener = InputManager:createKeyboardListener()listener.keyPressed = onKeyPressed

-- Create the demo billboardsettings = BillboardSettings()settings.sceneMgr = Application:getCamera().sceneManagersettings.mesh = "../../data/Ogre/meshes/billboards/wall-billboard.mesh"settings.subMesh = 2settings.zoomTime = 0.5settings.width = 800settings.height = 600

settings.startURL = “controls.swf"settings.position = OgreVector3(-48, 2, -61)billboard1 = BillboardManager:createBillboard(1, settings)

Page 13: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Visual World Editor (WYSIWYG)

Page 14: WP4: Efficient visualisation and streaming Tasks 4.1 + 4.2.

Integration into a webbrowser◦ ActiveX, Firefox plugin, …

WorldEditor◦ Flexible interaction specification

Flow diagrams? Services: synchronize with SMIT Service examples

◦ Targeted advertising Based on user profile, previous interests, …

◦ Accounting Number of viewers, number of clicks, …

WP4: Task 4.2 planning