Abstract

Abstract. The visualization of large-sized 3D geospatial models is a graphics intensive task. With ever increasing size and complexity, more computing resources are needed to attain speed and visual quality. Exploiting the parallelism and the multi-core performance of the Graphics Processing Unit (GPU), a cross-platform 3D viewer is developed based on the Vulkan API and modern C++. The proposed prototype aims at the visualization of a textured 3D mesh of the Cultural Heritage by enabling a multi-threaded rendering pipeline. The rendering workload is distributed across many CPU threads by recording multiple command buffers in parallel and coordinating the host and the GPU rendering phases. To ensure efficient multi-threading behavior and a minimum overhead, synchronization primitives are exploiting for ordering the execution of queues and command buffers. Furthermore, push-constants are used to send uniform data to the GPU and render passes to adapt to the tile-based rendering of the mobile devices. The proposed methodology and technical solution are designed, implemented and tested for Windows, MacOS and Android on Vulkan-compatible GPU hardware by compiling the same codebase. The benchmarking on multiple hardware, architectures and platforms explores the performance improvement for the different approaches compared to one-thread and showcase the potential of the 3D viewer to handle large datasets at no expense of visual quality and geometric fidelity in the absence of high-end technological resources.

Highlights

  • In the fields of photogrammetry and topographic surveying, fast surface modelling techniques, range sensors and computer vision algorithms ensure the geometric fidelity and accuracy of their final products

  • The vertical and oblique aerial images as well as the terrestrial images were oriented through the Structure from Motion (SfM) algorithm and a mesh was generated by the sparse point cloud with the Mult-View Stereo (MVS) technique

  • The tests run for 170 seconds and the recorded performance metrics are reported as average frames per second (FPS) and diagrams with CPU and Graphics Processing Unit (GPU) activity

Read more

Summary

INTRODUCTION

In the fields of photogrammetry and topographic surveying, fast surface modelling techniques, range sensors and computer vision algorithms ensure the geometric fidelity and accuracy of their final products. The deployment of Vulkan and its multithreading capabilities to 3D visualization frameworks optimized for largescale and complex geometry is less consistent Addressing this important deficiency, a cross-platform 3D model viewer with multithreading support is developed based on modern C++ and Vulkan API. The proposed approach to the display of 3D geometry adapts to the implicit tile-based rendering of mobile GPUs, scaling from low-power mobile devices to high-end workstations. It is technologically innovative in terms of Vulkan API utilization, cross-vendor portability and performance.

RELATED WORK
Rendering pipeline
Synchronization and thread management
Tile-based rendering for mobile GPU
Case Study
Multi-threading programming
Multi-platform support
EVALUATION
CONCLUSIONS
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call