1st Edition

3D Engine Design for Virtual Globes

By Patrick Cozzi, Kevin Ring Copyright 2011
    516 Pages
    by A K Peters/CRC Press

    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

    Introduction

    FUNDAMENTALS
    Math Foundations
    Renderer Design
    Globe Rendering

    PRECISION
    Vertex Transform Precision
    Depth Buffer Precision

    VECTOR DATA
    Vector Data and Polylines
    Polygons
    Billboards
    Exploiting Parallelism in Resource Preparation

    TERRAIN
    Terrain Basics
    Massive Terrain Rendering
    Geometry Clipmapping
    Chunked LOD

    Appendix: Implementing a Message Queue

    Biography

    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š