3D-Geoapplikationen...3D Tiles b3dm (Batched 3D Model) heterogene 3D-Modelle z.B. für verschiedene...

Post on 26-Aug-2020

8 views 0 download

Transcript of 3D-Geoapplikationen...3D Tiles b3dm (Batched 3D Model) heterogene 3D-Modelle z.B. für verschiedene...

 

3D-Geoapplikationen3D-Geoapplikationenim Browserim Browser

Überblick & ErfahrungenÜberblick & Erfahrungen

Michael Holthausen & Daniel Koch, terrestris GmbH & Co. KG

FOSSGIS 2019, Dresden, 14.03.2019

GliederungGliederungÜber…Was sind 3D-Geoapplikationen?Technische LösungenDatenformate & SchnittstellenVergleich von Bibliotheken

M. Sc. GeographieAnwendungsentwickler@terrestris

Michael HolthausenMichael Holthausen

holthausen@terrestris.de@mholthausen

M. Sc. GeographieLead developer @terrestrisKernentwickler react-geoKernentwickler SHOGun

Daniel KochDaniel Koch

koch@terrestris.de@dnlkoch

OpenSource GIS aus BonnEntwicklung, Projekte &Support/SchulungBeratung, Planung,Implementierung & Wartung

terrestristerrestris

info@terrestris.de@terrestris

@terrestrisde

terrestris.de

Was sind 3D-Was sind 3D-Geoapplikationen?Geoapplikationen?

We live in a 3D world. People move,think, and experience in three dimensions

Eine EinführungEine EinführungViele Medieninhalte liegen in 3D vor, werden aberauf �achen Bildschirmen präsentiertAnimations�lme werden aus computergenerierten3D-Bildern erstelltOnline-Kartendienste lassen uns die Welt in 3Derkunden

Ursprung bereits in den 1960er JahrenUmspannt viele Bereiche des Alltags

VoraussetzungenVoraussetzungenfrüher:früher:

Und heute?Und heute?3D-fähige Hardware in jedem Computer undmobilen Endgerätuniversell verfügbar & kostenlos:

Google Chrome AnwendungGoogle Chrome Anwendung"100,000 Stars""100,000 Stars"

Browserbasierte 3D-Simulation unserer stellarenNachbarn in der Milchstraße

Wissenschaftliche Genauigkeit der Daten kann nichtgarantiert werden

HTML5 Elemente wie WebGL, CSS3D und WebAudio

Take a tour.

?

"100,000 Stars", Google Data Arts Team

Anwendung im RaumAnwendung im RaumDarstellung von texturierten Gebäuden oderObjekten

Darstellung von Geländemodellen

Visualisierung von geologischenUntergrundschichten einer bestimmten Region

Einbindung von Orthofotos

u. v. a. m.

Technische LösungenTechnische Lösungen

ZieleZieleLevel of Detail (LOD)Übertragung als Stream

ClientseitigClientseitig

Hardwarebeschleunigtes 3D-Rendering mitJavaScriptBasiert auf der bewährten Gra�k-API OpenGLAlle DesktopbrowserDie meisten mobilen Browser

Transformationen, Übergänge undbenutzerde�nierte FilterHardwarebeschleunigte 3D-Rendering- undAnimationsfunktionenAlle Desktop- & mobilen Browser

2D-Gra�ken auf der Ober�äche eines DOM-Elements (Canvas)zusätzliche JavaScript Bibliotheken rendern 3D-EffekteAlternative zu WebGL oder CSS3 3D

Welche Technologie?Welche Technologie?Was soll mit der Anwendung abgebildet werden?Welche Plattformen sollen unterstützt werden?Welche Performance soll erreicht werden?Wie hoch soll der der Grad der Interaktivität sein(messen, bewegen, navigieren)?u. v. a. m.

ServerkomponentenServerkomponenten

GeoServerGeoServerW3DS (Web 3D Service)WVS (Web View Service)

Beide Dienste sind deprecated undwerden nicht weiter entwickelt

3D City DB3D City DBKostenlose Geodatenbank zumSpeichern, Darstellen und Verwaltenvon virtuellen 3D-StadtmodellenImplementiert den CityGML-StandardProduktive und kommerzielle Nutzungseit mehr als 14 JahrenDirekter Export in den Formaten KML,COLLADA und glTF

Datenformate &Datenformate &SchnittstellenSchnittstellen

OGC StandardsOGC Standards

3DPS (3D Portrayal Service)3DPS (3D Portrayal Service)Seit 2017 OGC StandardGroße Menge raumbezogener 3D-Daten im WebKeine De�nition eines bestimmten FormatesStellt ein Framework bereit zur Bestimmung derInteroperabilität

Seit 2008 OGC StandardOffenes Datenmodell und XML-basiertes FormatSpeicherung und Austausch von virtuellen 3D-StadtmodellenGemeinsame De�nition der grundlegendenBestandteile eines 3D-StadtmodellsCityJSON: kompakte Beschreibung von CityGMLDaten

I3S (Indexed 3D Scene Layers)I3S (Indexed 3D Scene Layers)Seit 2017 OGC StandardSpezi�kation für Speicherung und Übertragung vonheterogenen 3D (Geo-)DatenUnterstützung von diversen 3D Datentypen (3DObjekte, Punktwolken, etc.)Scene Layer (Container für Daten)Scene Service (REST API) vs. Scene Layer Package(SLPK)

Web3D ConsortiumWeb3D Consortium

X3D (Extensible 3D Graphics)X3D (Extensible 3D Graphics)Ersetzt das Vorgängerformat VRML (Virtual RealityModelling Language)Standard für 3D-Gra�ken im WebKompatibel mit anderen Standards (DOM, XML)Szenen werden direkt in das HTML-MarkupgeschriebenBevorstehendes Upgrade auf Version 4

Beispiel einer 3D-Box mit X3DBeispiel einer 3D-Box mit X3D<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "http://www.web3d.org/specifications/x3d-3.3.dtd"> <X3D profile='Interchange' version='3.3' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' http://www.web3d.org/specifications/x3d-3.3.xsd '> <head> <meta name='title' content='Box.x3d'/> <meta name='description' content='Simple Box shape used as test scene for GeoInline/Inline loading and unloading.'/> </head> <Scene> <Transform translation='-1.0 0.0 0.0'> <Shape> <Appearance> <Material diffuseColor='0.0 1.0 0.0'/> </Appearance> <Box/> </Shape> </Transform> </Scene> </X3D>

X3D Beispiel (Box)

Bisher ohne StandardisierungBisher ohne Standardisierung

CZML (Cesium Language)CZML (Cesium Language)JSON basiertes FormatPunkte, Flächen, Modelle und andere gra�scheGrundelementeBeschreibung einer raumzeitlich-dynamischengra�schen SzeneEf�zientes Streaming & einfach zu parsenHauptsächlich zur Anzeige im Browser überCesiumJS

Beispiel zur PositionierungBeispiel zur Positionierungeines Punktes mit CZMLeines Punktes mit CZML

{ "id": "point", "availability":"2012-08-04T16:00:00Z/2012-08-04T16:05:00Z", "position": { "epoch": "2012-08-04T16:00:00Z", "cartographicDegrees": [ 0, -70, 20, 150000, 100, -80, 44, 150000, 200, -90, 18, 150000, 300, -98, 52, 150000 ] }, "point": { "color": { "rgba": [255, 255, 255, 128]

},

Seit 2016 OGC Community Standard, auf dem Wegzum OGC StandardKonzipiert für das Streaming und Rendern von 3D-Inhalten auf einen GlobusPhotogrammetrie, 3D-Gebäude, BIM/CAD(Bauwerksdatenmodellierung) und PunktwolkenDe�niert eigene Binärfomate für das StreamingStyling-Spezi�kationen

3D Tiles3D Tilesb3dm (Batched 3D Model)

heterogene 3D-Modellez.B. für verschiedene Gebäude in einer Stadt

i3dm (Instanced 3D Model)ef�zientes Streaming und Rendern einer großenAnzahl von Modellen mit geringfügigenAbweichungen

3D Tiles3D Tilespnts (Point Cloud)

ef�zientes Streaming von Punktwolken zur 3D-Visualisierung

cmpt (Composite)�exibles Streaming kombinierter, heterogenerDatensätzez.B. aus b3dm- und i3dm-Modellen

3D Tiles3D TilesHierarchical Level of Detail (HLOD)

zur optimalen Wiedergabe räumlicher Daten

JPEG of 3DKonzipiert für das Streaming und Rendern von 3D-Inhalten auf einen GlobusBesteht aus:

Einer JSON Datei (.gltf), Szenenbeschreibung &Verweis auf externe DateienBinärdateien (.bin), Geometrie- undAnimationsdatenBilddateien (.jpg, .png, usw.), Texturen

Vergleich vonVergleich vonBibliothekenBibliotheken

three.jsthree.jsthree.js / examples

webgl

animation / clothanimation / keyframesanimation / skinning / blendinganimation / skinning / morphanimation / multiplecameracamera / arraycamera / cinematiccamera / logarithmicdepthbufferclippingclipping / advancedclipping / intersectiondecalsdepth / textureeffects / anaglypheffects / asciieffects / parallaxbarriereffects / peppersghosteffects / stereoframebuffer / texturegeometriesgeometries / parametri

Type to filter x

three.js - webgl terrain raycasting demo

View source

three.js Beispiel

x3domx3dom

Model: Puget SoundDataSet: 4096 x 4096 PixelPoints: 16.777.261 (~16.5 Mio.)

Rendering speed: 0 fpsCurrently drawn points: 0.0

Description:

This 3D model is rendered by the X3DOM -BVHRefiner

node which refines and loads hierarchical datadynamically corresponding to the view point.

3D-Model Statistics:

Rendering Statistics:

Information

Parameters

x3dom Beispiel

CesiumJSCesiumJS

(https://cesium.com/) Data attribution

83 1987 1991 1995 1999 2003 2007 2011 2015

+

-

2016 Wildfires(11 forest fires)

History of Wildfire Severity(Click on a cylinder to view details)

Wildfires from 1984 to 2016

Display Options

Show non-forest (e.g., shrubland)fires

Show cumulative fire events

Timeline playback[Running @ 3.00 seconds per year]

Use buttons for playback control

Spacebar toggles play/pause

Predominant Burn Severity

High Moderate Low

Color corresponds with largest burnseverity assessment area

Area of Fire Boundary

Small

Med

Large

Cylinder base area is proportional to fireboundary acreage

CesiumJS Beispiel (History of Wild�re Severity, oregonhowl.org)

CesiumJS 3D TilesCesiumJS 3D Tiles

// A demo of interactive 3D Tiles styling

// Styling language Documentation: https://gi

// Building data courtesy of NYC OpenData po

var viewer = new Cesium.Viewer('cesiumContain

terrainProvider: Cesium.createWorldTerrai

});

viewer.scene.globe.depthTestAgainstTerrain =

// Set the initial camera view to look at Man

var initialPosition = Cesium.Cartesian3.fromD

var initialOrientation = new Cesium.HeadingPi

viewer.scene.camera.setView({

destination: initialPosition,

orientation: initialOrientation,

endTransform: Cesium.Matrix4.IDENTITY

});

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

JavaScript code HTML body & CSS

Data attributionData attributionApr 9 201913:46:21 UTC

1x

0 UTC Apr 10 2019 00:00:00 UTC Apr 10 2019 12:00:0

Color By Height

Cesium 1.56.1

3D Models 3D Models Coloring 3D Tiles BIM 3D Tiles Clipping Planes 3D Tiles Feature Picking 3D Til

Showcases New in 1.56.1 Tutorials 3D Tiles Post Processing Beginner ion Assets Geometries DataSources CZML

Gallery Console

New Run (F8) Suggest (Ctrl-Space) Info Save As Share

Import Gist Open in New Window View as Thumbnail Search Gallery

CesiumJS Beispiel (3D Tiles)

https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/#c=rVhtT+M4EP4rFlqpqVTyniZlWe5YurpF2jdBdafVdj+4iUmtdezKdlp6iP9+4yQNKRSusORDSZyZeR57nnHGOA46RRkpBBJXiHJNJE41XRIUjNGEMqKQ0mtGeT7ljoMu63vEMM9LnBM0FmlZEK6xpoIfobnWC3XkODnV83Jmp6JwTjlma01TzP6SeDGnqTrnqRNkh9pEd7QkxCmwAmBHLUhKr8DUBHMuO7jvS8oyA5xhjVEqSqmJWhvKX76foa8LwsfmxUJIjVlNA1isVivP5uvUzsXSUVQTJxNUa4dyqik2s1SGyKwJbi9gRlO+xBItKVkRid4hTlbojChaFvbf1ZjVS6vHMwGTppzI3gDdTDmCC6YgYeibFEuaEXm0cUwlwZr8IyTLJrWJ1Z/y2/7bKQe0KqqtUsKJnTMxI3ZGFno+IUqf5mCrdOMEbLQsSeVlUkE00nOC6skwlOICclcxR1ogJsQvhDX6jPkca415PbHG+puA5YBFhpgNyTNslpRiHthXUhRjkkNilHUYh7brJYkXuH7iun6YDFDo2sOR54VBEMRemPjeAMVRYKbTQfgq6UYW28v4kWCz2N+oTucXgrEtON+z/TiJR0mc+KMgCaIBOoSxIAxGbhS5SeyHQ4BzbTf2hqPIGwG1URJ6UYXeXcp6OWxFtMmb1aQog1WlvBHrvbUY1CbijvjRjsk0VoRnE4m5uhKyaBP9GWtJr0P7fPzhy+R88r1NMqTrk8BZlS8j2I3iFKqKgGi7XrvmaXvB6j/BeFK/tG5QKVmLeS74BVFQECmpVvJUgc15ZkVx6PXR7YN1WUha0Er6Ns4yq0FsaZ4JJmSH3wwrkiHIIVCnEsFPPjdsr0qeVrlNjcP79cfqhdVva6GZl9k8yOPzMTVONskxVxXuCHVG6lGeVTlSR+jH9itz/ei9uamZ3aKTdyhwXSjKnsxn2ApBQa7RpxFN1O/9HPyvu9+6W57rgy8Izou8vXy9jm8MuN4QAvhuuJdz1Pr6fghu/hB+gmQ/0lHrGxnIwDW47p6kW19T3l4MuEm8H+V2tiPj6YKn9+hKmd2rtffjAYpGAATW28adx9v6tlLx7WMKXTfaZFCfuswIqEXIzFQ52SHUT43V70s1I1ew/6sHYt3wuIB9DhvF9mR9Z7252by77fc6sxy8gv7voVbZce3Yq4QxPajiWr1FKReM9PrTg8eS+2icbhhJspfE8La4CNg/8xdx8bph1oQxsXpJGHeLDqPFi8i43SDpGvPHgzQF0FrPWFlD/m4BZFTBFz4lyHwBEDbtWVZg+WuH/seN6avpHz1Qa8sGpL+5t5Yk9a1OIQieN5UwQLvqA4Yrl0PoCEZeHMeRX334Tdpidzj0w/6TNYSeKCL0aBVt6EJ2TZPhGtm36colXj+lkPvOblIlu6DX1j2tDlC3kAbI6jofVs5JHzl1lPA5kOF9SNNX8Q7iHYUdoID1PNTj2tjdqsjVHFrtPaqgw7KuhJZkS7qL1SX2WwWzgsMJFEkv6EF/13w8OLSLO6rlCwxfkJxcv1JnA8qbHliS5B+uFxYQ6NvQdGvrEvpGnkNCDA3Qfh/9gbo7ihH+qA/O29u4GfZgOXbM+XIuVtC2sXVn3nl1DoEuc465aQ5QQeBRmUV42NfN4Qjzem2dMnRgO+g0D1WfdZ/5JWxcKRwGGTHd6UQINsPyM+Gl9aM9ZF1rE6lO6vs1qin2Nt07V4SR1JhspnLHvk3D3cTeNgwAv3OOuwex6RmeC3LXa+wFs9manwtzt6XvBWM0jSpRPxeoUw1PIX0E6bwgM9uK6wD8rE8nDzM35QeDg+NKiye1+Z+0MP8DMCcky7YdTYoFfFLgmD8r01+g21Qp43jsbJyOM7pENHsHm9f2sX56gFKGlYI3VyVjl/RfMj04OXbAfsuNieo4+3VJJMNrYzL3Tj7Vg7ZtHzvw+NBL18ruRPwP

ZusammenfassungZusammenfassungthree.js x3dom CesiumJS

Beispiele/Tutorials ✔ ✔ ✔

Dokumentation &API

✔ ✔ ✔

SupportCommunity

✔ ◯ ✔

Updates ✔ ◯ ✔

Raumbezug ❌ ❌ ✔

ZusammenfassungZusammenfassungErhöhte Aktivitäten im Kontext der Web-Visualisierung von 3D-Inhalten erkennbarViele unterschiedliche (standardisierte)DatenformateTeils schwer oder nicht untereinander austauschbarAlle Bibliotheken arbeiten ohne zusätzliche Plugins(WebGL)

Vielen DankVielen Dank

Fragen &Fragen &Anmerkungen?Anmerkungen?

Impressum

ImpressumImpressumAutorenAutoren

Michael Holthausen terrestris GmbH & Co. KG

Kölnstr. 99

53111 Bonn

holthausen@terrestris.de

Daniel Koch

koch@terrestris.de

LizenzLizenz

Diese Folien sind unter veröffentlicht.

, ,

CC BY-SA

Vortragsfolien PDF-Version git repository