FOSS4G-Asia 2024

On the performance of distributed rendering system for 3DWebGIS application on ultra-high-resolution display
12-16, 16:55–17:15 (Asia/Bangkok), Room34-1104

Introduction

With the spread of IoT and the increasing resolution of observation sensors, the total amount of geospatial information data is increasing exponentially daily. On the other hand, the increase in resolution of display devices used to analyze and visualize these data is reaching its limit due to various physical constraints. The maximum resolution of commercially available display devices is 8K; 4K or 5K is considered the upper limit for desktop use.
Using the OS's multi-display function or a tiled display driver provided by the GPU manufacturer, it is possible to create a display environment with an even larger area and higher resolution. However, the middleware provided by the GPU manufacturer currently has a maximum resolution limitation of 16K [1], which is the maximum resolution that can be achieved on a single PC.
However, even if these mechanisms are used to create an ultra-high-resolution display environment, it is only possible to render data within the web browser's heap memory limit in the case of WebGIS applications. For example, the 3DWebGIS viewer provided by the Tokyo Digital Twin Project [2] cannot render 3DTiles [3] building data for all 23 wards of Tokyo at once (textured building data is used for areas provided with texture).
In this paper, we introduce ChOWDER, a web-based tiled display driver that enables distributed rendering of 3DWebGIS content across multiple web browsers, as a solution to the above problems and report the results of memory load balancing experiments using ChOWDER for distributed rendering.

Proposal of a distributed rendering method for 3DWebGIS

One possible solution to the above problems is to distribute the display of one WebGIS content across multiple PCs (multiple web browsers). This makes it possible to display a WebGIS at a resolution that exceeds the upper limit of a single PC (web browser) and distributes the memory load required to display the content across each PC (web browser).
The scalable display system ChOWDER[4][5], jointly developed by RIKEN Center for Computational Science and Kyushu University, is an open-source tiled display driver that can create an ultra-high-resolution pixel space by arranging multiple displays that display a web browser in full-screen mode in tiles. It also supports distributed rendering of 3DWebGIS.
This function uses iTowns[6], an open-source 3DWebGIS, as middleware. iTowns uses Three.js as a WebGL rendering library, and Three.js has an API that can offset the view frustum[7].
The view frustum must be split appropriately to split and display 3D content on multiple display devices. ChOWDER uses the view frustum offset API of Three.js to split a single iTowns content into multiple view frustums, enabling multiple web browsers to split and render 3DWebGIS content [8].
However, at the time of the previous report [8], when iTowns executed a 3DTiles load command, it loaded all the data without judging whether it was inside or outside the view frustum range, so distributed rendering did not improve memory utilization efficiency. Since then, the 3DTiles load process was improved in iTowns Release 2.42.0; in this paper, we measured the amount of heap memory consumed by each browser when iTowns content was distributed and rendered using ChOWDER on multiple web browsers and confirmed the memory load distribution achieved by this method.

Experimental procedures and results

The experimental data used was the textured building data for Chiyoda, Minato, and Chuo wards in Tokyo, from the 3DTiles data distributed by the PLATEAU project [9] of the Ministry of Land, Infrastructure, Transport and Tourism of Japan.
The experiment first displayed the 3DTiles building data for the above three wards in full screen on a single 4K resolution display using iTowns on ChOWDER. The heap memory size of the web browser at this time was 268MB.
Next, the same content was displayed on a ChOWDER distributed display consisting of four 4K displays arranged in two horizontal and two vertical rows. Each display had a full-screen web browser. The heap memory sizes of each web browser were 133MB, 188MB, 68.3MB, and 37.7MB.
Finally, we conducted an experiment using nine 4K displays arranged in three rows and three columns. The heap memory sizes of each web browser were 66.8MB, 122MB, 140MB, 84.3MB, 87.2MB, 56.9MB, 41.2MB, 38.4MB, and 33.6MB.
From these experimental results, it can be said that distributed rendering of 3DWebGIS using ChOWDER achieves memory load balancing.
During distributed rendering, the heap memory size of each web browser is different because the amount of 3DTiles data contained in each responsible drawing area is different. Also, the total heap memory size of all browsers is larger than when rendering in a single browser because iTowns loads 3DTiles data that is wider than its view frustum, and data loading in overlapping areas occurs during distributed rendering.

Future work and conclusion

In this experiment, we measured the web browser's heap memory, but did not measure GPU memory consumption. However, because 3DWebGIS uses WebGL for rendering, we believe that a more precise evaluation can be made by measuring GPU memory consumption as well.
In addition, since distributing rendering across more web browsers is expected to further distribute memory load, we plan to conduct experiments by increasing the number of distributed displays.
In this paper, we have shown the limitations of current 3DWebGIS when the data to be displayed increases, and proposed a distributed rendering method as a means to solve this problem, and introduced the view frustum offset API of Three.js, iTowns, a 3DWebGIS to which it can be applied, and ChOWDER, a web-based tiled display driver that incorporates them, as a means to realize this method. Furthermore, we have presented the results of an experiment that shows that memory load distribution is achieved by distributed rendering using these and demonstrated that this method is one solution to the increase in data to be displayed in 3DWebGIS.

References

[1] Limitations. About NVIDIA Mosaic. https://www.nvidia.com/content/Control-Panel-Help/vLatest/en-us/mergedProjects/nvwks/SLI_Mosaic_Mode.htm Accessed July 29, 2024.

[2] Tokyo Digital Twin Project. https://info.tokyo-digitaltwin.metro.tokyo.lg.jp/ Accessed July 29, 2024.

[3] 3DTiles. The open specification for 3D data. https://cesium.com/why-cesium/3d-tiles/ Accessed July 29, 2024.

[4] Kawanabe, T., Nonaka, J., Hatta, K., & Ono, K. (2018, September). ChOWDER: an adaptive tiled display wall driver for dynamic remote collaboration. In International Conference on Cooperative Design, Visualization and Engineering (pp. 11-15). Cham: Springer International Publishing.

[5] ChOWDER GitHub repository. https://github.com/SIPupstreamDesign/ChOWDER Accessed July 29, 2024.

[6] iTowns (in French). https://www.itowns-project.org/ Accessed July 29, 2024.

[7] three.js API Reference. https://threejs.org/docs/#api/en/cameras/PerspectiveCamera.setViewOffset Accessed July 29, 2024.

[8] Kawanabe, T., Hatta, K., & Ono, K. (2020, September). ChOWDER: A New Approach for Viewing 3D Web GIS on Ultra-High-Resolution Scalable Display. In 2020 IEEE International Conference on Cluster Computing (CLUSTER) (pp. 412-413). IEEE.

[9] Project PLATEAU portal site (in Japanese). https://www.geospatial.jp/ckan/dataset/plateau Accessed July 29, 2024.

See also: