Assessing OpenGL for 2D rendering of geospatial data

The purpose of this study was to investigate the suitability of using the OpenGL and OpenCL graphics application programming interfaces (APIs), to increase the speed at which 2D vector geographic information could be rendered. The research focused on rendering APIs available to the Windows operati...

Full description

Bibliographic Details
Main Author: Jacobson, Jared Neil
Other Authors: Coetzee, Serena Martha
Language:en
Published: University of Pretoria 2015
Subjects:
2D
GIS
Online Access:http://hdl.handle.net/2263/45917
Jacobson, JN 2014, Assessing OpenGL for 2D rendering of geospatial data, MSc Dissertation, University of Pretoria, Pretoria, viewed yymmdd <http://hdl.handle.net/2263/45917>
id ndltd-netd.ac.za-oai-union.ndltd.org-up-oai-repository.up.ac.za-2263-45917
record_format oai_dc
collection NDLTD
language en
sources NDLTD
topic UCTD
2D
OpenGL
Rendering
GIS
Hardware Acceleration
spellingShingle UCTD
2D
OpenGL
Rendering
GIS
Hardware Acceleration
Jacobson, Jared Neil
Assessing OpenGL for 2D rendering of geospatial data
description The purpose of this study was to investigate the suitability of using the OpenGL and OpenCL graphics application programming interfaces (APIs), to increase the speed at which 2D vector geographic information could be rendered. The research focused on rendering APIs available to the Windows operating system. In order to determine the suitability of OpenGL for efficiently rendering geographic data, this dissertation looked at how software and hardware based rendering performed. The results were then compared to that of the different rendering APIs. In order to collect the data necessary to achieve this; an in-depth study of geographic information systems (GIS), geographic coordinate systems, OpenGL and OpenCL was conducted. A simplistic 2D geographic rendering engine was then constructed using a number of graphic APIs which included GDI, GDI+, DirectX, OpenGL and the Direct2D API. The purpose of the developed rendering engine was to provide a tool on which to perform a number of rendering experiments. A large dataset was then rendered via each of the implementations. The processing times as well as image quality were recorded and analysed. This research investigated the potential issues such as acquiring data to be rendered for the API as fast as possible. This was needed to ensure saturation at the API level. Other aspects such as difficulty of implementation as well as implementation differences were examined. Additionally, leveraging the OpenCL API in conjunction with the TopoJSON storage format as a means of data compression was investigated. Compression is beneficial in that to get optimal rendering performance from OpenGL, the graphic data to be rendered needs to reside in the graphics processing unit (GPU) memory bank. More data in GPU memory in turn theoretically provides faster rendering times. The aim was to utilise the extra processing power of the GPU to decode the data and then pass it to the OpenGL API for rendering and display. This was achievable via OpenGL/OpenCL context sharing. The results of the research showed that on average, the OpenGL API provided a significant speedup of between nine and fifteen times that of GDI and GDI+. This means a faster and more performant rendering engine could be built with OpenGL at its core. Additional experiments show that the OpenGL API performed faster than GDI and GDI+ even when a dedicated graphics device is not present. A challenge early in the experiments was related to the supply of data to the graphic API. Disk access is orders of magnitude slower than the rest of the computer system. As such, in order to saturate the different graphics APIs, data had to be loaded into main memory. Using the TopoJSON storage format yielded decent data compression allowing a larger amount of data to be stored on the GPU. However, in an initial experiment, it took longer to process the TopoJSON file into a flat structure that could be utilised by OpenGL than to simply use the actual created objects, process them on the central processing unit (CPU) and then upload them directly to OpenGL. It is left as future work to develop a more efficient algorithm for converting from TopoJSON format to a format that OpenCL can utilise. === Dissertation (MSc)--University of Pretoria, 2014. === tm2015 === Geography, Geoinformatics and Meteorology === MSc === Unrestricted
author2 Coetzee, Serena Martha
author_facet Coetzee, Serena Martha
Jacobson, Jared Neil
author Jacobson, Jared Neil
author_sort Jacobson, Jared Neil
title Assessing OpenGL for 2D rendering of geospatial data
title_short Assessing OpenGL for 2D rendering of geospatial data
title_full Assessing OpenGL for 2D rendering of geospatial data
title_fullStr Assessing OpenGL for 2D rendering of geospatial data
title_full_unstemmed Assessing OpenGL for 2D rendering of geospatial data
title_sort assessing opengl for 2d rendering of geospatial data
publisher University of Pretoria
publishDate 2015
url http://hdl.handle.net/2263/45917
Jacobson, JN 2014, Assessing OpenGL for 2D rendering of geospatial data, MSc Dissertation, University of Pretoria, Pretoria, viewed yymmdd <http://hdl.handle.net/2263/45917>
work_keys_str_mv AT jacobsonjaredneil assessingopenglfor2drenderingofgeospatialdata
_version_ 1719316367378743296
spelling ndltd-netd.ac.za-oai-union.ndltd.org-up-oai-repository.up.ac.za-2263-459172020-06-02T03:18:20Z Assessing OpenGL for 2D rendering of geospatial data Jacobson, Jared Neil Coetzee, Serena Martha Kourie, Derrick G. UCTD 2D OpenGL Rendering GIS Hardware Acceleration The purpose of this study was to investigate the suitability of using the OpenGL and OpenCL graphics application programming interfaces (APIs), to increase the speed at which 2D vector geographic information could be rendered. The research focused on rendering APIs available to the Windows operating system. In order to determine the suitability of OpenGL for efficiently rendering geographic data, this dissertation looked at how software and hardware based rendering performed. The results were then compared to that of the different rendering APIs. In order to collect the data necessary to achieve this; an in-depth study of geographic information systems (GIS), geographic coordinate systems, OpenGL and OpenCL was conducted. A simplistic 2D geographic rendering engine was then constructed using a number of graphic APIs which included GDI, GDI+, DirectX, OpenGL and the Direct2D API. The purpose of the developed rendering engine was to provide a tool on which to perform a number of rendering experiments. A large dataset was then rendered via each of the implementations. The processing times as well as image quality were recorded and analysed. This research investigated the potential issues such as acquiring data to be rendered for the API as fast as possible. This was needed to ensure saturation at the API level. Other aspects such as difficulty of implementation as well as implementation differences were examined. Additionally, leveraging the OpenCL API in conjunction with the TopoJSON storage format as a means of data compression was investigated. Compression is beneficial in that to get optimal rendering performance from OpenGL, the graphic data to be rendered needs to reside in the graphics processing unit (GPU) memory bank. More data in GPU memory in turn theoretically provides faster rendering times. The aim was to utilise the extra processing power of the GPU to decode the data and then pass it to the OpenGL API for rendering and display. This was achievable via OpenGL/OpenCL context sharing. The results of the research showed that on average, the OpenGL API provided a significant speedup of between nine and fifteen times that of GDI and GDI+. This means a faster and more performant rendering engine could be built with OpenGL at its core. Additional experiments show that the OpenGL API performed faster than GDI and GDI+ even when a dedicated graphics device is not present. A challenge early in the experiments was related to the supply of data to the graphic API. Disk access is orders of magnitude slower than the rest of the computer system. As such, in order to saturate the different graphics APIs, data had to be loaded into main memory. Using the TopoJSON storage format yielded decent data compression allowing a larger amount of data to be stored on the GPU. However, in an initial experiment, it took longer to process the TopoJSON file into a flat structure that could be utilised by OpenGL than to simply use the actual created objects, process them on the central processing unit (CPU) and then upload them directly to OpenGL. It is left as future work to develop a more efficient algorithm for converting from TopoJSON format to a format that OpenCL can utilise. Dissertation (MSc)--University of Pretoria, 2014. tm2015 Geography, Geoinformatics and Meteorology MSc Unrestricted 2015-07-02T11:05:57Z 2015-07-02T11:05:57Z 2015/04/16 2014 Dissertation http://hdl.handle.net/2263/45917 Jacobson, JN 2014, Assessing OpenGL for 2D rendering of geospatial data, MSc Dissertation, University of Pretoria, Pretoria, viewed yymmdd <http://hdl.handle.net/2263/45917> A2015 12383806 en © 2015 University of Pretoria. All rights reserved. The copyright in this work vests in the University of Pretoria. No part of this work may be reproduced or transmitted in any form or by any means, without the prior written permission of the University of Pretoria. University of Pretoria