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. |