3D Web Services And Models For The Web: Where Do We Stand?

27
Martin Christen, [email protected] Emmanuel Belo [email protected] FHNW Switzerland Camptocamp SA Intitute of Geomatics Engineering Geospatial Solutions 3D Web Services And Models For The Web: Where Do We Stand?

description

Theme: Data: presentations focused on data (be it capture, storage, discovery or new data models such as 3D, temporal data, big data). The aim of this talk is to sum up the standardization efforts (OGC and W3C) in defining 3D web services and models, as well as to show existing implementations to support the discussion. In the past years, numerous open source projects have started to display 3D globes and 3D data on the web. Standardizing web services, data format and representation models is, therefore, a very hot topic. There are in particular ongoing efforts on the OGC side as well as on the W3C side. The OGC has released a draft candidate for a 3D web service W3DS, the ISO X3D standard proposes an XML-based file format for representing 3D computer graphics and the W3C is considering adding X3D rendering into HTML5. Other projects implement their own web services and formats. On the implementation side, Geoserver supports W3DS and X3D, the X3DOM library prototypes a possible implementation of X3D HTML5 integration and last but not least, browsers with WebGL support are fully able to handle the representation of 3D data on the client side. The talk is going to detail the mentioned elements, show demonstrations of existing implementations and try to suggest a possible path into the 3D web for the FOSS4G community.

Transcript of 3D Web Services And Models For The Web: Where Do We Stand?

Page 1: 3D Web Services And Models For The Web: Where Do We Stand?

Martin Christen, [email protected] Emmanuel Belo [email protected]

FHNW – Switzerland Camptocamp SA

Intitute of Geomatics Engineering Geospatial Solutions

3D Web Services And Models For The

Web: Where Do We Stand?

Page 2: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

Here maps

Page 3: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

Google Maps

Page 4: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

OpenWebGlobe : http://swiss3d.openwebglobe.org

Page 5: 3D Web Services And Models For The Web: Where Do We Stand?

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?

Page 6: 3D Web Services And Models For The Web: Where Do We Stand?

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

Page 7: 3D Web Services And Models For The Web: Where Do We Stand?

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

Page 8: 3D Web Services And Models For The Web: Where Do We Stand?

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)

Page 9: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

Example of 3DPS for a 3D Service running in the Web Browser

Page 10: 3D Web Services And Models For The Web: Where Do We Stand?

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

Page 11: 3D Web Services And Models For The Web: Where Do We Stand?

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&

Page 12: 3D Web Services And Models For The Web: Where Do We Stand?

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

Page 13: 3D Web Services And Models For The Web: Where Do We Stand?

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.

Page 14: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

glTF

Page 15: 3D Web Services And Models For The Web: Where Do We Stand?

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

Page 16: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

Geoserver W3DS/X3D/X3DOM Example

Page 17: 3D Web Services And Models For The Web: Where Do We Stand?

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>

Page 18: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

X3DOM – JS Library (http://examples.x3dom.org/BVHRefiner/BVHRefiner.html)

Page 19: 3D Web Services And Models For The Web: Where Do We Stand?

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)

Page 20: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

http://world.openwebglobe.org

Page 21: 3D Web Services And Models For The Web: Where Do We Stand?

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)

• …

Page 22: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

Streaming Large amounts of 3D-Geometry -> Standard for 3D Tiles ?

MapData © OpenStreetMap contributors

Page 23: 3D Web Services And Models For The Web: Where Do We Stand?

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)

Page 24: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

Image Based Rendering: Bild-Layer

Page 25: 3D Web Services And Models For The Web: Where Do We Stand?

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)

Page 26: 3D Web Services And Models For The Web: Where Do We Stand?

20/09/13 Intitute of Geomatics Engineering

Another Example where images are essential for "3D"

Page 27: 3D Web Services And Models For The Web: Where Do We Stand?

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?