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...
Main Author: | |
---|---|
Other Authors: | |
Language: | en |
Published: |
University of Pretoria
2015
|
Subjects: | |
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 |