AGI Components with Insight3D Alpha 2008 r8
Overview

Overviews introduce core areas of Insight3D and provide code examples. In addition to reading the overviews, run the HowTo application to see code examples in action.

Topic Description
Globe Inlays Inlays are used to render and organize terrain and imagery on a globe. Inlays can be layered and turned on/off based on the viewer's altitude or current animation time. Both JPEG 2000 (.jp2) and AGI's image format (.pdttx) are supported. For terrain, AGI's terrain format (.pdtt) is supported.

Inlays are efficiently drawn using an out-of-core rendering algorithm based on recent computer graphics research.
Primitives Primitives form the building blocks of a 3D scene. Insight3D provides a wide array of primitives, such as simple primitives to draw points and polylines to more advanced primitives for drawing entire models or polygons that conform to terrain. Primitives are optimized for both static and dynamic data, as primitives are commonly positioned and oriented based on computations performed with DGL that change over time. Primitives can be turned on/off based on the viewer's altitude, distance to viewer, pixel size, or current animation time. Composite primitives group primitives together to create hierarchies of primitives for efficient rendering, layering, and aggregation/deaggregation.

Primitives are organized in a bounding volume hierarchy and are efficiently culled using view frustum and horizon culling. Horizon culling is described in our blog. See Introducing Primitives for additional information on optimizations.
Overlays Overlays are used to render objects in 2D screen-space on top of a 3D scene. For example, overlays can be used to display your company's logo, create a heads-up display (HUD), or create a translucent user interface. The texture overlay can render static images, such as a company logo or a UI button, or dynamic images, such as a video feed from a UAV. The panel overlay is used to form hierarchies of overlays, which is useful for creating UI elements, such as toolbars. All overlays support pixel and fractional units, translation, scale, and rotation transformations, and a user defined z-order.
Picking Picking makes 3D applications interactive; allowing users to select and interact with objects in the 3D scene. This overview covers three common uses of picking in Insight3D applications: normal, roll-over, and drill picking. Normal picking is commonly used to zoom to a primitive or bring up a context menu. Roll-over picking is used to select objects or display the cursor's cartographic position over a globe as the mouse moves across the window. Drill picking is used when the same location is clicked or double clicked a second time so the object under the top object can be acted upon.

The picking implementation is based on a new algorithm we developed: Picking using the Depth Buffer.
Camera Insight3D's 3D control automatically provides rotating and zooming in a 3D scene using the mouse. The camera object provides full control over the viewer's position and orientation. When the camera is initialized with DGL's point or vector objects, the camera automatically moves when the point or vector change. The camera also provides higher level methods, such as the ability to view an entire central body or zoom to a rectangular extent on the globe. The camera is used to set view parameters like the field of view, near plane distance, and far plane distance. The camera provides functionality for taking snapshots of the 3D window as well as recording videos.
Imaging Insight3D provides flexible image processing interfaces and built-in conditioners to dynamically perform many image processing tasks, such as adjusting brightness, contrast, and color levels, performing gamma correction, extracting and reordering components, and doing geometric transformations. More generic conditioners, such as the convolution conditioner, can be used to achieve a large number of effects, including sharpening and edge or gradient enhancement. Insight3D supports reading several image formats: BMP, ECW, IMG, JP2, NTF, NITF, PNG, SID, TIF, TIFF, JPG, JPEG, PPM, PGM, CLDS, and TGA. Additionally, an image can be loaded directly from memory. Images can be conditioned and are commonly applied to primitives as textures. Both texture generation and caching, with synchronous and asynchronous reading of images from various sources, including FTP and HTTP, are supported.
Dynamic Images and Projections Insight3D provides interfaces for providing dynamic data to types which normally contain static data. With the dynamic interfaces, users can stream video and other image data into textures and then onto primitives, add visual effects to COLLADA models, project video onto terrain, and translate and transform such projections with time.
Performance Performance is important. This overview describes how to maximize frame rate and the fastest techniques for getting data into Insight3D.