Assessing Opengl for 2D Rendering of Geospatial Data
Total Page:16
File Type:pdf, Size:1020Kb
Assessing OpenGL for 2D rendering of geospatial data by Jared Neil Jacobson 12383806 Submitted in partial fulfilment of the requirements for the degree MSC GEOINFORMATICS in the FACULTY OF NATURAL AND AGRICULTURAL SCIENCES at the University of Pretoria SUPERVISOR: S. Coetzee - Department of Geography, Geoinformatics and Meteorology CO-SUPERVISOR: D.G. Kourie - Department of Computer Science 31 October 2014 - i - DECLARATION I Jared Neil Jacobson declare that the dissertation, which I hereby submit for the degree MSc Geoinformatics at the University of Pretoria, is my own work and has not previously been submitted by me for a degree at this or any other tertiary institution. SIGNATURE_______________________ DATE_____________________________ - ii - ACKNOWLEDGEMENTS I wish to extend my sincere gratitude to the following people and institutions for their contributions to this dissertation: • My supervisor, Professor Serena Coetzee and co-supervisor, Professor Derrick Kourie for their assistance, guidance and encouragement throughout the study; • My family and friends for their faith in my abilities, continuous support and encouragement throughout the study; • The University of Pretoria for affording me the opportunity to study at their institution. - iii - TABLE OF CONTENTS DECLARATION .......................................................................................................................................... II ACKNOWLEDGEMENTS ....................................................................................................................... III 1 INTRODUCTION ................................................................................................................................. 2 1.1 GRAPHIC APIS ............................................................................................................................ 3 1.2 RENDERING ................................................................................................................................ 5 1.3 STATUS QUO: 2D VS. 3D RENDERING OF GEOGRAPHIC DATA ....................................... 7 1.4 RESEARCH MOTIVATION ......................................................................................................... 8 1.5 DISSERTATION OUTLINE ....................................................................................................... 10 2 CPU VS GPU ....................................................................................................................................... 11 2.1 THE CPU AND GPU DATA PROCESSING MODEL ................................................................ 11 2.2 SOFTWARE BASED RENDERING .......................................................................................... 13 2.3 HARDWARE BASED RENDERING ........................................................................................ 15 3 GEOGRAPHIC INFORMATION SYSTEMS .................................................................................... 17 3.1 COMPONENTS OF A GIS ......................................................................................................... 18 3.1.1 Hardware ............................................................................................................................. 18 3.1.2 Software ............................................................................................................................... 24 3.1.3 Data ...................................................................................................................................... 25 3.1.4 People .................................................................................................................................. 28 3.1.5 Methods ............................................................................................................................... 28 3.2 FUNCTIONS OF A GIS .............................................................................................................. 29 3.2.1 Data Collection .................................................................................................................... 29 3.2.2 Data Storage ........................................................................................................................ 30 3.2.3 Manipulation ........................................................................................................................ 31 - iv - 3.2.4 Analysis ............................................................................................................................... 32 3.2.5 Data Presentation ................................................................................................................. 33 4 COORDINATE REFERENCE SYSTEMS ......................................................................................... 34 4.1 COORDINATE REFERENCE SYSTEM TYPES ...................................................................... 35 4.2 GEOGRAPHIC COORDINATE SYSTEMS .............................................................................. 36 4.2.1 Spheroids and Spheres ......................................................................................................... 36 4.2.2 The Shape of the Earth ........................................................................................................ 36 4.2.3 Datums ................................................................................................................................. 37 4.3 PROJECTED COORDINATE SYSTEMS.................................................................................. 38 4.4 WHAT IS A MAP PROJECTION? ............................................................................................. 39 4.5 PROJECTION TYPES ................................................................................................................ 40 4.5.1 Conic Projections ................................................................................................................. 41 4.5.2 Cylindrical Projections ........................................................................................................ 42 4.5.3 Planar Projections ................................................................................................................ 42 4.6 PROJECTION PARAMETERS .................................................................................................. 43 4.7 GEOGRAPHIC TRANSFORMATION ...................................................................................... 44 5 OPENGL ............................................................................................................................................. 45 5.1 HARDWARE STACK FOR OPENGL ....................................................................................... 47 5.1.1 System Memory ................................................................................................................... 47 5.2 GRAPHICS TERMINOLOGY ................................................................................................... 48 5.3 GL STATE ................................................................................................................................... 50 5.4 CONTEXT CREATION .............................................................................................................. 52 5.5 DRAWING TO A WINDOW OR VIEW .................................................................................... 52 5.6 DRAWING WITH OPENTK ...................................................................................................... 53 5.7 VIEWING IN OPENGL .............................................................................................................. 66 6 BENCHMARKING ............................................................................................................................ 69 6.1 INTRODUCTION ....................................................................................................................... 69 6.2 DISK BENCHMARKING .......................................................................................................... 70 6.2.1 Results ................................................................................................................................. 72 - v - 6.3 A SHORT SURVEY INTO EXISTING WINDOWS BASED GRAPHIC APIS ........................ 74 6.3.1 GDI ...................................................................................................................................... 74 6.3.2 GDI+ .................................................................................................................................... 76 6.3.3 Direct2D .............................................................................................................................. 76 6.3.4 DirectX ................................................................................................................................ 76 6.3.5 OpenGL ............................................................................................................................... 77 6.4 IMPLEMENTING A BENCHMARKING APPLICATION ....................................................... 77 6.5 BENCHMARK APPLICATION DESIGN.................................................................................. 80 6.5.1 ILayer Interface ................................................................................................................... 81 6.5.2 Using the API benchmark application ................................................................................