OpenGL Data Visualization Cookbook
eBook - ePub

OpenGL Data Visualization Cookbook

Raymond C. H. Lo, William C. Y. Lo

Share book
  1. 298 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

OpenGL Data Visualization Cookbook

Raymond C. H. Lo, William C. Y. Lo

Book details
Book preview
Table of contents
Citations

About This Book

Over 35 hands-on recipes to create impressive, stunning visuals for a wide range of real-time, interactive applications using OpenGL

About This Book

  • Get acquainted with a set of fundamental OpenGL primitives and concepts that enable users to create stunning visuals of arbitrarily complex 2D and 3D datasets for many common applications
  • Explore interactive, real-time visualization of large 2D and 3D datasets or models, including the use of more advanced techniques such as stereoscopic 3D rendering.
  • Create stunning visuals on the latest platforms including mobile phones and state-of-the-art wearable computing devices

Who This Book Is For

This book is aimed at anyone interested in creating impressive data visualization tools using modern graphics hardware. Whether you are a developer, engineer, or scientist, if you are interested in exploring the power of OpenGL for data visualization, this book is for you. While familiarity with C/C++ is recommended, no previous experience with OpenGL is assumed.

What You Will Learn

  • Install, compile, and integrate the OpenGL pipeline into your own project
  • Create interactive applications using GLFW to handle user inputs and the Android Sensor framework to detect gestures and motions on mobile devices
  • Use OpenGL primitives to plot 2-D datasets such as time series dynamically
  • Render complex 3D volumetric datasets with techniques such as data slicers and multiple viewpoint projection
  • Render images, videos, and point cloud data from 3D range-sensing cameras using the OpenGL Shading Language (GLSL)
  • Develop video see-through augmented reality applications on mobile devices with OpenGL ES 3.0 and OpenCV
  • Visualize 3D models with meshes and surfaces using stereoscopic 3D technology

In Detail

OpenGL is a great multi-platform, cross-language, and hardware-accelerated graphics interface for visualizing large 2D and 3D datasets. Data visualization has become increasingly challenging using conventional approaches as datasets become larger and larger, especially with the Big Data evolution. From a mobile device to a sophisticated high-performance computing cluster, OpenGL libraries provide developers with an easy-to-use interface to create stunning visuals in 3D in real time for a wide range of interactive applications.

This book provides a series of easy-to-follow, hands-on tutorials to create appealing OpenGL-based visualization tools with minimal development time. We will first illustrate how to quickly set up the development environment in Windows, Mac OS X, and Linux. Next, we will demonstrate how to visualize data for a wide range of applications using OpenGL, starting from simple 2D datasets to increasingly complex 3D datasets with more advanced techniques. Each chapter addresses different visualization problems encountered in real life and introduces the relevant OpenGL features and libraries in a modular fashion.

By the end of this book, you will be equipped with the essential skills to develop a wide range of impressive OpenGL-based applications for your unique data visualization needs, on platforms ranging from conventional computers to the latest mobile/wearable devices.

Style and approach

This is an easy-to-follow, comprehensive Cookbook showing readers how to create a variety of real-time, interactive data visualization tools. Each topic is explained in a step-by-step format. A range of hot topics is included, including stereoscopic 3D rendering and data visualization on mobile/wearable platforms.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is OpenGL Data Visualization Cookbook an online PDF/ePUB?
Yes, you can access OpenGL Data Visualization Cookbook by Raymond C. H. Lo, William C. Y. Lo in PDF and/or ePUB format, as well as other popular books in Computer Science & Data Visualisation. We have over one million books available in our catalogue for you to explore.

Information

Year
2015
ISBN
9781782169727
Edition
1

OpenGL Data Visualization Cookbook


Table of Contents

OpenGL Data Visualization Cookbook
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Sections
Getting ready
How to do it...
How it works...
There's more...
See also
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. Getting Started with OpenGL
Introduction
Setting up a Windows-based development platform
Installing Visual Studio 2013
Getting ready
How to do it...
Installing CMake in Windows
Getting ready
How to do it

Setting up a Mac-based development platform
Installing Xcode and command-line tools
Getting ready
How to do it...
See also
Installing MacPorts and CMake
Getting ready
How to do it...
Setting up a Linux-based development platform
Getting ready
How to do it

How it works

See also
Installing the GLFW library in Windows
Getting ready
How to do it...
Installing the GLFW library in Mac OS X and Linux
Getting ready
How to do it...
How it works...
Creating your first OpenGL application with GLFW
Getting ready
How to do it...
How it works...
Compiling and running your first OpenGL application in Windows
Getting ready
How to do it...
Compiling and running your first OpenGL application in Mac OS X or Linux
Getting ready
How to do it...
2. OpenGL Primitives and 2D Data Visualization
Introduction
OpenGL primitives
Drawing points
Getting ready
How to do it

How it works

See also
Drawing line segments
Getting ready
How to do it

How it works

Drawing triangles
Getting ready
How to do it

How it works

Creating a 2D plot using primitives
Getting ready
How to do it

How it works

Real-time visualization of time series
Getting ready
How to do it

How it works

2D visualization of 3D/4D datasets
Getting ready
How to do it

How it works

There's more

3. Interactive 3D Data Visualization
Introduction
Setting up a virtual camera for 3D rendering
Getting ready
How to do it...
How it works...
There's more...
Creating a 3D plot with perspective rendering
Getting ready
How to do it...
How it works...
There's more...
Creating an interactive environment with GLFW
Getting ready
How to do it...
How it works...
See also
Rendering a volumetric dataset – MCML simulation
Getting ready
How to do it...
How it works...
There's more...
See also
4. Rendering 2D Images and Videos with Texture Mapping
Introduction
Getting started with modern OpenGL (3.2 or higher)
Getting ready
How to do it...
How it works...
See also
Setting up the GLEW, GLM, SOIL, and OpenCV libraries in Windows
Getting ready
How to do it...
See also
Setting up the GLEW, GLM, SOIL, and OpenCV libraries in Mac OS X/Linux
Getting ready
How to do it...
See also
Creating your first vertex and fragment shader using GLSL
Getting ready
How to do it...
How it works...
Rendering 2D images with texture mapping
Getting ready
How to do it...
How it works...
Real-time video rendering with filters
Getting ready
How to do it...
How it works...
5. Rendering of Point Cloud Data for 3D Range-sensing Cameras
Introduction
Getting started with the Microsoft Kinect (PrimeSense) 3D range-sensing camera
How to do it...
See also
Capturing raw data from depth-sensing cameras
How to do it...
How it works...
OpenGL point cloud rendering with texture mapping and overlays
Getting ready
How to do it...
How it works...
6. Rendering Stereoscopic 3D Models using OpenGL
Introduction
Installing the Open Asset Import Library (Assimp)
How to do it...
See also
Loading the first 3D model in the Wavefront Object (.obj) format
How to do it...
How it works...
Rendering 3D models with points, lines, and triangles
How to do it...
How it works...
See also
Stereoscopic 3D rendering
How to do it...
How it works...
See also
7. An Introduction to Real-time Graphics Rendering on a Mobile Platform using OpenGL ES 3.0
Introduction
Setting up the Android SDK
How to do it...
See also
Setting up the Android Native Development Kit (NDK)
How to do it...
See also
Developing a basic framework to integrate the Android NDK
How to do it...
How it works...
See also
Creating your first Android application with OpenGL ES 3.0
Getting ready
How to do it...
How it works...
See also
8. Interactive Real-time Data Visualization on Mobile Devices
Introduction
Visualizing real-time data from built-in Inertial Measurement Units (IMUs)
Getting ready
How to do it

How it works

See also
Part I – handling multi-touch interface and motion sensor inputs
How to do it

How it works

See also
Part II – interactive, real-time data visualization with mobile GPUs
How to do it

How it works

9. Augmented Reality-based Visualization on Mobile or Wearable Platforms
Introduction
Getting started I: Setting up OpenCV on Android
Getting ready
How to do it...
See also
Getting started II: Accessing the camera live feed using OpenCV
Getting ready
How to do it...
How it works...
Displaying real-time video using texture mapping
Getting ready
How to do it...
How it works...
See also
Augmented reality-based data visualization over real-world scenes
Getting ready
How to do it...
How it works...
See also
Index

OpenGL Data Visualization Cookbook

Copyright © 2015 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: August 2015
Production reference: 1210815
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78216-972-7
www.packtpub.com

Credits

Authors
Raymond C. H. Lo
William C. Y. Lo
Reviewers
Samar Agrawal
Sebastian Eichelbaum
Oscar Ripolles
Qing Zhang
Commissioning Editor
Erol Staveley
Acquisition Editors
Subho Gupta
James Jones
Content Development Editor
Adrian Raposo
Technical Editor
Mohita Vyas
Copy Editor
Stuti Srivastava
Project Coordinator
Kinjal Bari
Proofreader
Safis Editing
Indexer
Tejal Daruwale Soni
Graphics
Sheetal Aute
Jason Monteiro
Production Coordinator
Shantanu N. Zagade
Cover Work
Shan...

Table of contents