Author Archive for Cozzi

ADN Code Exchange

If you're developing using Insight3D or any of our components, I'm sure you've come across our developer network: ADN. One area of ADN that is gaining momentum is the Code Exchange, where AGI users and employees share code samples. Recently, I posted two Insight3D examples. A Point in Polygon Test example that shows how to determine if a point on the globe is inside a polygon on the globe. The other example, Drawing Shapes on the Globe, shows how to allow the user to draw polylines and polygons on the globe similar to 3D object editing in STK.

Here's a few screen shots:

Point in Polygon Test:

Drawing Shapes on the Globe:

SIGGRAPH 2010 Follow-Up

AGI had a great presence at SIGGRAPH this year.

You can check out a few of our videos presented at the Dailies on YouTube:

The Fate of the Apollo 13 Crew
Might Have Been Much Different Than Originally Thought

US Airways Flight 1549:
Hudson River Crash Animation With Flight Data

Satellite Collision Visualization:
Technically Accurate Depictions of Debris Breakup and Evolution

Also, I updated the page on our poster, GPU Ray Casting of Virtual Globes, to include the actual poster (2200x2200) in addition to the abstract, video, etc.


If you've read any of my previous posts about SIGGRAPH (2008, 2009), it's pretty obvious that it is my favorite conference of the year (except, of course, for our user's conference). This year, SIGGRAPH is particularly exciting because AGIers are presenting in three different areas:

  • SIGGRAPH Dailies! - Kel Elkins and Branden Coker, members of our production team, are presenting some great AGI videos:

    • The Fate of the Apollo 13 Crew Might Have Been Much Different Than Originally Thought
    • US Airways Flight 1549: Hudson River Crash Animation With Flight Data
    • Satellite Collision Visualization: Technically Accurate Depictions of Debris Breakup and Evolution
    • MADCAT: Graphical All-on-all Conjunction Assessment for Objects in Outer Space

    SIGGRAPH Dallies! is new to SIGGRAPH this year. It is an hour and a half of 60-90 second videos with live commentary from the presenter - a format similar to the popular Technical Papers Fast Forward session. If my numbers are correct, AGI is presenting 4 of the 38 videos, second to only Pixar and Disney, and tied with Texas A&M University. I'm happy to see that the SIGGRAPH community is so interested in our videos.

  • Birds of a Feather - Deron is giving a talk on Insight3D at the Computer Graphics for Simulation BOF. If you're interested in how AGI products can be used in simulations, don't miss it!
  • Posters - I am presenting our poster: GPU Ray Casting of Virtual Globes. This is a next generation rendering technique for ellipsoids - check it out if you like the details behind 3D rendering.


Virtual Globe and Terrain Rendering

Our team has learned a lot while developing Insight3D and the 3D capabilities in STK. Designing a 3D engine that meets the precision and performance requirements for these types of applications is challenging, to say the least. It takes a carefully designed engine to do things like visualize immense amounts of imagery and terrain, and precisely render a massive world.

Deron and I realized that not much has been written about this type of 3D engine, at least not all in the same place, so we decided to start writing a book on the topic: Virtual Globe and Terrain Rendering. This isn't a book on Insight3D or STK specifically but rather a best practices guide for designing and implementing 3D engines for virtual globes, GIS, simulations, etc - all things we've learned by working on Insight3D and STK. If you're interested in this kind of stuff, check out the book's blog as we continue to work on the manuscript and example code.

I should mention that our book is not directly affiliated with AGI. Although, since AGI is such an awesome employer, they are very encouraging about our book project and allowed us to mention it on this blog.

New in AGI Components 2010 r4

We've just released AGI Components 2010 r4.  New Insight3D features include the cylinder triangulator, which computes cylinders for visualization with the solid primitive.

Download r4 from ADN.

GPU Ray Casting of Virtual Globes

Exciting news - our poster GPU Ray Casting of Virtual Globes was accepted to SIGGRAPH 2010.

This was a collaborative effort between the aerospace guys on the DGL team and our 3D team.  We hope these types of next generation rendering algorithms make their way into Insight3D.

Short Abstract: Our work presents a GPU ray casting approach to rendering the ellipsoidal surface of virtual globes that provides an infinite level of geometric detail at frame rates competitive with traditional tessellation and rasterization approaches. This work has application in areas including globe rendering for geographic information systems and video games.


A shaded, ray casted globe correctly interacting with rasterized billboards.  Upper Right: Viewport-aligned ellipsoid bounding polygon.  Ray hits are cyan and misses are gray.  Raster data from Natural Earth and icons from Yusuke Kamiyamane.

New in AGI Components 2010 r1

The first AGI Components release for 2010 is now available on ADN.  This release includes the solid primitive:  a new primitive for visualizing solids such as ellipsoids and boxes, as shown below.


A new overview, available in our online help, explains how to use the solid primitive, including using visual cues such as the white silhouette edge and removal of back facing lines shown above.  The polyline and point batch primitive now have an optional outline with a unique size, color, and translucency.  This small feature adds a nice visual cue:


Download AGI Components 2010 r1 from ADN and give these new features a try.

How to Orient a Model

In this entry, I'll explain how to orient a model primitive using its ReferenceFrame and Orientation properties.  We'll go through two examples.  The first one orients a launch pad model on the ground:


The second example orients a satellite model in orbit:



New in AGI Components 2009 r7: Primitives in any Reference Frame

I'm excited to announce that we just released 2009 r7, which includes the ability to define primitives in any reference frame.  Previously, primitives could only be defined in a central body's fixed or inertial frame.   Now, instead of converting from the reference frame of your data to the primitive's reference frame, you can just set the primitive's ReferenceFrame property to the same reference frame of your data.  Doing this is almost always more efficient and easier to code!  What's even better is if the reference frame varies with time, the primitive will move during animation automatically.



SIGGRAPH 2009 Trip Report

Siggraph2009Once again, SIGGRAPH was jam packed with the latest in computer graphics.  For the areas we're interested in, this year seemed a little more incremental than last year, probably because last year had big announcements, including Larrabee and OpenGL 3.  Nonetheless, we were exposed to plenty of ideas that will help us keep the technology underlying Insight3D on the cutting edge.  I'll hit the highlights in this post.

We tend to spend most of our time in SIGGRAPH courses.  This year, my favorite one was Advances in Real-Time Rendering.   Wolfgang Engel gave a good talk on deferred shading and light pre-pass.  Deferred shading showed up just about everywhere at SIGGRAPH this year, and rightfully so, since it is such a cool technique.  Currently, Insight3D uses so-called forward shading to allow support for a wide array of video cards.