Supported with code examples and the authors’ real-world experience, this book offers the first guide to engine design and rendering algorithms for virtual globe applications like Google Earth and NASA World Wind. The content is also useful for general graphics and games, especially planet and massive-world engines. With pragmatic advice throughout, it is essential reading for practitioners, researchers, and hobbyists in these areas, and can be used as a text for a special topics course in computer graphics.
Topics covered include:
- Rendering globes, planet-sized terrain, and vector data
- Multithread resource management
- Out-of-core algorithms
- Shader-based renderer design
Table of Contents
Vertex Transform Precision
Depth Buffer Precision
Vector Data and Polylines
Exploiting Parallelism in Resource Preparation
Massive Terrain Rendering
Appendix: Implementing a Message Queue
Patrick Cozzi is a senior software developer on the 3D team at Analytical Graphics, Inc. (AGI). He is a contributor to SIGGRAPH and the Game Engine Gems series. Before joining AGI, he worked on storage systems in IBM’s Extreme Blue internship program at the Almaden Research Lab, interned with IBM’s z/VM operating system team, and interned with the chipset validation group at Intel. He earned a master’s degree in computer and information science from the University of Pennsylvania and a bachelor’s degree in computer science from Pennsylvania State University.
Kevin Ring is the lead architect of AGI Components at Analytical Graphics, Inc. In his software development career, he has worked on a wide range of software systems, from class libraries to web applications to 3D game engines to interplanetary spacecraft trajectory design systems. He earned a bachelor’s degree in computer science from Rensselaer Polytechnic Institute.
3D Engine Design for Virtual Globes provides a fine guide to engine design and algorithms for virtual globe applications such as Google Earth … packed with formulas and details on simulations, visualization and GIS applications … a winner for any technical collection.
—Midwest Book Review, November 2011
What the authors actually do is build a very nice, modern, OpenGL rendering engine. … the code content is quite digestible and easy to follow, and we can imagine eager readers swarming the book’s website in order to download the entire codebase. Asides from the very usable 3D engine provided, one can also find oodles of interesting discussions on how to solve Depth Buffer precision-related problems and how to deal with the limited coordinate precision afforded by the float representation … we must issue bonus points for dealing with multi-threading head on … We’d also recommend that one should play with all the "Try this" challenges in the book, they’re good fun … both the beginner and the more experienced practitioner has something in store hidden between the black covers.
—Alex Voicu, Beyond3D, October 2011
3D Engine Design for Virtual Globes presents invaluable practical knowledge for building interactive 3D worlds and serves as a great reference for the different rendering algorithms and their tradeoffs. You will find a copy at my desk.
—Quarup Barreirinhas, Google Earth Software Engineer
This is a long overdue book covering techniques essential for the design and implementation of virtual globe engines and for high-fidelity planetary scale terrain rendering applications. Written by experienced developers with a consistent and very practical approach, the book provides a comprehensive evaluation of modern algorithms and techniques for terrain and vector data rendering, 3D engine design, multithreading, and much more. I definitely recommend it to everyone implementing or interested in the methods used in virtual globes, simulations, large-scale visualizations, and GIS applications.
—Brano Kemen, Outerra
This book is must-have literature for all software developers building virtual worlds. Based on the experience of its authors, this book covers all essential aspects of terrain rendering: mathematical background, geographic information systems basics, information about how to handle massive datasets, precise rendering, multithreading, and some state-of-the-art algorithms. It is richly illustrated with pictures and code, using a modern fully shader-based approach with OpenGL 3.3 core profile and C#.
—Aleksandar Dimitrijević, University of Niš