CDN$ 83.97
Only 2 left in stock (more on the way).
Ships from and sold by
Gift-wrap available.
3D Engine Design for Virt... has been added to your Cart
Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

3D Engine Design for Virtual Globes Hardcover – Jun 24 2011

See all 2 formats and editions Hide other formats and editions
Amazon Price New from Used from
Kindle Edition
"Please retry"
"Please retry"
CDN$ 83.97
CDN$ 83.97 CDN$ 104.75

Product Details

Product Description


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š

About the Author

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.

Inside This Book (Learn More)
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

Customer Reviews

There are no customer reviews yet on
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on (beta) 4 reviews
7 of 7 people found the following review helpful
Wow! These guys know their stuff! Dec 24 2012
By Robert Smith - Published on
Format: Hardcover Verified Purchase
If you don't want to read my short novel below, just buy the book!

As a lifelong amateur astronomer and software engineer, with 3D graphics simulation being my hobby, I always wanted to write a 3D simulation allowing a user to fly around the solar system and buzz the canyons of our rocky planets or navigate through the rings of Saturn.

But even with many years of OpenGL programming, I had no idea how to achieve what I have conceived in my head (check out the Outtera website to get an idea, absolutely stunning!).

3D Engine Design for Virtual Globes is just what I needed. The book presents a complete API for rendering globes, massive amounts of terrain, vector data (GIS) and the techniques required for a seamless and smooth transition from orbit down to your front yard.

The API is called OpenGlobe and it is built on top of OpenTK which facilitates writing OpenGL programs with C#/.Net (yeah!).

To end on a good note, I’ll mention the con’s first:

I can’t praise this book enough for finally making this topic clear to me. With that said, be forewarned: The OpenGlobe API is not a plug-n-play solar system/planetary simulator. Literally all of the example programs demonstrate their purpose in isolation to the example. For example, the globe rendering examples render a single globe in its own space. If you want to render several planets, you will need to rip out the globe rendering example code and roll your own multi-planet solar system.

This also means there is no scene management. But the authors do gloss over multi-frustum rendering for large volume scenes that cover distances from one meter to 100,000,000 meters or more.

A bit frustrating is how some techniques are covered in detail and at the end you are told “but there is a better way…” Immediately following, most of the “better ways” are covered but in a lot of cases you are instead referred to a source in the bibliography (which is the best graphics bibliography I have ever seen!).

Now the good stuff!

An Abstract Rendering Engine
OpenGL programmers know how difficult and error prone managing the OpenGL state can be. This book begins by presenting an abstract render engine and implements it in OpenGL. This render engine hides the complexity of managing OpenGL state. You don’t need to remember to restore the previous states after you draw an object. The render engine shadows the OpenGL state and takes care of the details for you.

Writing OpenGL code with this rendering engine is an absolute joy!

Note that the OpenGL core profile is used in the engine. This means you need to write your own vertex and fragment shaders to put anything on the screen. There are myriad shaders provided with all of the samples. If you don’t know GLSL, you might as well pick up a copy of the orange book (OpenGL Shading Language) as well.

Globe Rendering
Several methods for rendering globes are presented with projects that demonstrate each. The pro’s and con’s are clearly explained. Picking the method you’ll want to use is the hardest decision.

Massive Terrain
The last 4 chapters of the book concentrate on terrain rendering techniques. If you have ever wondered how a game or simulation renders hundreds of miles of detailed terrain, all is revealed here. Especially enlightening are the web services that retrieve data and terrain tiles from NASA and ESRI servers as you move through your scene.

There are two chapters that cover precision and the problems caused by floating point round off errors and artifacts caused by depth buffer z-fighting. These issues are addressed in detail with several different solutions (yes, the code for the solutions is provided!).

Part three of the book has two chapters covering vector data which really boils down to drawing lines and polygons. Where globe and terrain rendering is concerned, this means maps. If you have ever done any GIS programming (I worked on GIS software projects at UPS for 8 years) you will love the ESRI Shapefile reader/renderer.

Billboards are covered and a great texture atlas is provided in the API. The texture atlas makes rendering billboards a breeze.

Yes, you can write multi-threaded OpenGL code. And this chapter shows you how. The appendix covers a message queue used heavily in a multi-threaded program.

Lastly, I have exchanged several emails with the authors. They are prompt and very helpful in their replies. As busy as they are, the individual attention is greatly appreciated. They are currently working on a WebGL Virtual Globe and Map Engine called “Cesium.” Check it out!
3 of 3 people found the following review helpful
nearly perfect, probably a classic Nov. 16 2012
By nonoptimalrobot - Published on
Format: Hardcover Verified Purchase
Ring and Cozzi have taken a poorly covered branch of real-time graphics research and slammed down a massive piece of bedrock from which all other entries are likely to stand upon. Their approach is slightly slanted towards virtual globes as maps for the display of information and not virtual globes as worlds for interactive exploration. For this reason some of the design approaches are awkwardly positioned against the massive infrastructures of high-end commercial game engines. The issues surrounding lighting, shadows and atmospherics are simply not given any serious design considerations. This is a book that's more about data management and less about rendering. For most of us that's actually a good thing but I'm sure a few readers may be a bit disappointed.
1 of 1 people found the following review helpful
Great Book May 19 2014
Format: Hardcover Verified Purchase
Great Book. Beginning with mathematics concepts and go up to build a complete earth with mesh, textures, etc.
The only thing i dislike is the sample code is written in C#.
Full of Great Things Sept. 10 2014
By Chronovore - Published on
Format: Hardcover Verified Purchase
An excellent read on the topic. The C# companion code is well laid out and easy to follow. A lot of great topics crammed into this book.