Developing 3-D Analyst Enhancements Using OpenGL
Abstract: ArcGIS provides users with powerful tools to create advanced 3-D mapping
applications. These tools include the ArcObjects Application Program Interfaces (APIs),
as well as a complete set of ActiveX controls. Notwithstanding all of its power and
versatility, ArcGIS still suffers from some limitations with regard to the rendering of
complex 3-D graphics. Fortunately, the ArcObjects 3-D Analyst architecture provides a
means to address these limitations by providing an "entry point" in its 3-D controls into
which developers can plug custom, OpenGL-based graphic rendering components. This
allows for easy integration of high-speed, OpenGL components into existing ArcGIS
architecture components.
The approach outlined above has been taken with prodigious success by CTC in
development of the TOC 3-D Program for the U.S. Army Project Manager, Ground
Combat Command and Control (PM GCC2). The TOC 3-D Program is an early adopter
and integrator of the ArcGIS 9.0-based Commercial/Joint Mapping Toolkit (C/JMTK)
within its developed software products.
Introduction
With the advent of its 9.0 release, the ArcGIS 3-D Analyst extension has introduced
greatly improved 3-D visualization capabilities. While these 3-D visualization
capabilities are significant and extensive, there are times when the developer may need to
extend the rendering provided by the 3-D Analyst. Examples of such extensions include
sensor cones, track lines, as well as many other highly specialized graphic objects that are
not necessarily supported by the 3-D Analyst solution “out of the box.”
Fortunately, ArcGIS products are built to be extended, and 3-D Analyst is no exception.
ArcGIS provides mechanisms to extend the object model, User Interface, display, and
also provides many other ways to seamlessly integrate functionality into the ArcGIS
environment.
In particular, 3-D Analyst provides the developer with the means to extend the rendering
capabilities of its products and to perform highly customized rendering. One such
method to enhance and extend 3-D Analyst is by using custom OpenGL rendering.
This paper explores the mechanics of integrating OpenGL-based custom rendering
solutions into 3-D Analyst. This paper first provides useful background information on
3-D Analyst, OpenGL, and other topics. Next, the paper explores various aspects of
OpenGL development in further detail. Then, methods for integrating OpenGL and
3-D Analyst are shown. Finally, these techniques are shown together and demonstrated
using several sample and real world applications.
This paper explores OpenGL capabilities primarily in the context of the premier
3-D Analyst product, ArcGlobe. Therefore, while 3-D Analyst includes several different
products, for the purposes of this paper, 3-D Analyst refers primarily to the capabilities
provided by ArcGlobe. In this paper, the terms 3-D Analyst and ArcGlobe are often used
interchangeably. However, it is important to note that the approach outlined will also
work with other 3-D Analyst products, such as ArcScene. Additionally, this paper
assumes some comfort and familiarity with the following concepts: ArcGIS 3-D Analyst,
3-D graphics/visualization, and general computer programming.