Post on 27-Jan-2015
description
Martin Christen, martin.christen@fhnw.ch Emmanuel Belo emmanuel.belo@camptocamp.com
FHNW – Switzerland Camptocamp SA
Intitute of Geomatics Engineering Geospatial Solutions
3D Web Services And Models For The
Web: Where Do We Stand?
20/09/13 Intitute of Geomatics Engineering
Here maps
20/09/13 Intitute of Geomatics Engineering
Google Maps
20/09/13 Intitute of Geomatics Engineering
OpenWebGlobe : http://swiss3d.openwebglobe.org
20/09/13 Intitute of Geomatics Engineering
What do we want in the Geospatial 3D Web
• 3D scenes
• Aerial imagery and DEM
• Buildings (textured)
• Labels and Markers
• Interaction (navigate, select, popup, measure, etc)
• Large / worldwide perimeter and local precision
• Technology
• Web (no plugin)
• Cross Platforms and Cross Devices
• Open standards, formats and open source
• What’s available?
20/09/13 Intitute of Geomatics Engineering
WebGL!
• Web Graphics Library
• Javascript API for rendering interactive 2D/3D graphics within the webbrowser
• Hardware acceleration using the Graphics Processing Unit (GPU)
• WebGL programs consist of:
• control code written in JavaScript (CPU) and
• shader code that is executed on a computer's GPU
• No Plugin ! Also in IE11!!!
• Mobile device ready : Firefox, Sony Android Browser, Opera
20/09/13 Intitute of Geomatics Engineering
Standardizing and Merging worlds
• Geo: OGC
• 3D Portrayal Services (Proposals: WVS WMS-Like and W3DS WFS-Like)
• KML
• CityGML
• Web: Web3d
• X3D - Extensible 3D Graphics
• Graphics: Khronos Group
• WebGL
• COLLADA – eXchange / interoperability
• glTF - the runtime asset format for WebGL, OpenGL ES, and OpenGL
20/09/13 Intitute of Geomatics Engineering
3D Portrayal Service (3DPS)
Goal: Develop a standard service interface to visualize very large 3D geospatial
databases online via Web-Browser and Mobile Devices
Content delivery includes 3D Scenegraph as well as image based rendering
(Formats: X3D, COLLADA; for web browsers: X3DOM, XML3D, JSON)
20/09/13 Intitute of Geomatics Engineering
Example of 3DPS for a 3D Service running in the Web Browser
20/09/13 Intitute of Geomatics Engineering
OGC - W3DS
• OGC Specification for 3D Scene, WFS like
• Example request:
• http://xyz.org/geoserver/w3ds?
version=0.4&service=w3ds&
request=GetScene&
format=model/x3d+xml&
crs=EPSG:25833&
boundingbox=407255,5866253,483505,5940003&
layers=layername
• Result: X3D file
20/09/13 Intitute of Geomatics Engineering
OGC - W3DS
• OGC Specification for 3D Tiles, WFS like
• Example request:
• http://xyz.org/geoserver/w3ds?
version=0.4&service=w3ds&
request=GetTile&
format=model/x3d+xml&
layer=dem_tiled_3d&
crs=EPSG:25833&
tilelevel=0&
tilerow=5&
tilecol=7&
20/09/13 Intitute of Geomatics Engineering
3D Portrayal SWG (Standards Working Group)
Currently the standard is being finalized
The draft is soon released to public (on GitHub) and open for comments
The OGC standard is scheduled for Q1/2014
20/09/13 Intitute of Geomatics Engineering
Web3D - X3D Geometries
• Basic primitives (Box, Cone Cylinder, Sphere)
–http://x3dom.org/x3dom/example/x3dom_geoPrimitives.xhtml
• IndexedFaceSet (3D shape formed by constructing faces - polygons)
<IndexedFaceSet coordIndex='0 11 12 -1 12 1 0 -1 etc />
–<Coordinate point='0.7000 1.2000 0.0000, 0.6930 1.2177 0.0000, etc />
• Binary Geometry employs several files to store the index and geometry data
directly in the requested precision,
• Image Geometry uses two component files for the position information, one
for each byte.
• BitLOD Geometry uses several chunks to accumulate the full precision,
where each chunk provides a refinement for the position and normal
information.
20/09/13 Intitute of Geomatics Engineering
glTF
20/09/13 Intitute of Geomatics Engineering
Implementations
• PostGIS – stores and export 3D data
• Export X3D data: ST_AsX3D
• Geoserver
• Provides W3DS API (getScene & getTile)
• X3D format supported
• X3dom
• JS API for displaying and interacting with X3D data
• OpenWebGlobe
• Full suite to process and display/interact with 3D in the WEB
20/09/13 Intitute of Geomatics Engineering
Geoserver W3DS/X3D/X3DOM Example
20/09/13 Intitute of Geomatics Engineering
X3dom - Hello World Example
<html>
<head>
<script type="text/javascript" src="x3dom.js"></script>
</head>
<body>
<x3d xmlns="http://www.x3dom.org/x3dom ...>
<scene>
<viewpoint position='0 0 10' ></viewpoint>
<shape>
<appearance>
<material diffuseColor='0.603 0.894 0.909' ></material>
</appearance>
<box DEF='box'></box>
</shape>
</scene>
</x3d>
</body>
</html>
20/09/13 Intitute of Geomatics Engineering
X3DOM – JS Library (http://examples.x3dom.org/BVHRefiner/BVHRefiner.html)
20/09/13 Intitute of Geomatics Engineering
OpenWebGlobe
Helps you to create your own virtual globe applications running plug-in free in a
web browser
Allows the visualization of large scale image, elevation or other geospatial data
OpenSource (MIT License)
20/09/13 Intitute of Geomatics Engineering
http://world.openwebglobe.org
20/09/13 Intitute of Geomatics Engineering
Other (tile based) Data
• Image (2D-Tiles)
• Elevation (3D-Tiles)
• POIs (3D, 3D-Tiles)
• 3D Geometry (3D, 3D-Tiles)
• Image overerlay (2D)
• Point Clouds (3D-Tiles)
• …
20/09/13 Intitute of Geomatics Engineering
Streaming Large amounts of 3D-Geometry -> Standard for 3D Tiles ?
MapData © OpenStreetMap contributors
20/09/13 Intitute of Geomatics Engineering
3D Portrayal Service: Image based Rendering
Image Based Rendering is an option too.
Different image layers are streamed.
The images are rendered on a server (and therefore can be cached in cloud)
20/09/13 Intitute of Geomatics Engineering
Image Based Rendering: Bild-Layer
20/09/13 Intitute of Geomatics Engineering
Advantage of Image Based Rendering
Quelle: Doellner, J., Hagedorn B., Klimke, J. (2012) Server-based rendering of large 3D scenes
for mobile devices using G-buffer cube maps. In Proceedings of the 17th International Conference on 3D Web Technology (Web3D '12)
20/09/13 Intitute of Geomatics Engineering
Another Example where images are essential for "3D"
20/09/13 Intitute of Geomatics Engineering
Conclusion
• Lot’s of standardizing efforts based on real prototypes!
• WebGL tends to be well supported
• Consider
• Dataquantity to be stored and processed in the backend
• Data transfer and streaming with different LODs
• Deliver data for the GPU, avoid CPU processing AND Provide access to
semantics for the CPU
• Web3D implementation have limited encoding possibilities applied to the
geospatial world
• Rendering and data formats are bound, how to preserve interoperability?