Description
With increasingly detailed digital elevation models (DEMs), it is possible to render 3D terrain with very high resolution. In our weBIGeo project, we explore real-time 3D visualization of big geographic data on the web using the web graphics API WebGPU. There are multiple opportunities how students can enhance our web-based 3D geovis framework:
weBIGeo Student Projects
Currently available topics in the weBIGeo project:
(PR): Ambient occlusion tiles: we are generating overlays from data on-the-fly on the GPU, which are then rendered on top of the surface. For the surface geometry to be understandable for the user, we need shading. In one version of our renderer, Phong shading and ambient occlusion is computed at runtime. However, this can be quite slow. Especially ambient occlusion depends only on the surface geometry and does not change with sun position. The task of this project therefore is to pre-compute ambient occlusion for the entire area of Austria and to provide the result as raster tiles to speed up the rendering and improve the visual quality.
(BA / PR / DA): Snow overlay: one data overlay we are computing is snow cover, which is currently a very simple “simulation” which surface points are covered by snow depending on the surface slope and height. There are several ways how the snow overlay can be improved: First, we can integrate snow height predictions from nowcasting systems to restrict the snow overlay to those regions that currently are actually covered by snow. Second, our geometry-dependent snow “simulation” is currently computed on-the-fly, which has an impact on rendering times. One possible extension is therefore to perform the geometry computations offline and store the results in raster tiles. Finally, there are ample opportunities to improve the appearance of the snow overlay. Depending on the type of student project, one of these sub-projects or a combination can be realized.
(PR): 3D labels: 3D geographic visualization can only work effectively when users can orient themselves. Labels are therefore essential. We have the technical foundation to load vector tiles and render text labels for our WebGL implementation. In this project, this functionality shall be adapted to WebGPU and potentially extended to improve the view-dependent visibility of labels.
Requirements
- Strong interest in (web-based) visualization and rendering
- Very good programming skills
- Experience with graphics programming (OpenGL, Vulkan, WebGL, ...) is a big advantage
- Experience with web technologies (WebGPU, WebAssembly, ...) is also advantagaeous
- A good feeling for creating appealing graphics is a plus
Environment
The weBIGeo project is based on C++ with Emscripten, WebAssembly, Qt, and ImGui. The tech stack is described in more detail in this blog (in German). The project is still ongoing. The code can be found on GitHub. A first (unstable) demo version is also online (a current version of Chrome is required).