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:

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

More...
Download the latest version of Insight3D, part of AGI Components. Check out what is new and fixed.
Qt is a commonly used cross-platform application development framework. If you are building a Qt application for Windows, you can easily embed Insight3D in your application using the Qt Windows Forms Interop Framework.
More...
At the 2009 AGI User's Conference, we demonstrated new technology that allows Insight3D applications to be deployed over the web. While we are rolling out the new technology, you can still get started building a web application with a version of Insight3D that is available today. Because Insight3D is a .NET library, it is easy to develop and deploy your applications over the web so that they can be run in virtually any web browser on the Windows platform, and even in browser-enabled applications, like Google Earth. In the first part of this blog series, I’ll take you through the basics of getting started developing an Insight3D web application for deployment on your intranet.

More...
Once 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.
More...
Hi, my name is Alex Rybak. I'm currently an intern at AGI, and I have been working on the Insight3D team ever since I started here. I've had an interest in 3D graphics for a while, and working on Insight3D has given me a lot of opportunities to explore that area. Aside from my internship here, I am a full-time student at Drexel University, where I am studying for both a B.S. and an M.S. degree in Computer Science.
Introduction
Display conditions are a very useful Insight3D feature that allow the user to specify when a primitive, globe overlay, or screen overlay is rendered. There are a number of different types of display conditions that can be used, and what's even better is that they can be combined and used together to create fancy rules for when to display an object. In this article, I will show some example uses of display conditions.
To start off, let's say we want to display a circle on the Earth around New York City when the camera is at an altitude of one million meters or less. For this, we assign the AltitudeDisplayCondition (which becomes active when the camera's altitude above the surface is within a specified interval) to a PolyLinePrimitive. Here is the code:
CentralBody earth = CentralBodiesFacet.GetFromContext().GetByName("Earth");
Cartographic newYork = new Cartographic(Trig.DegreesToRadians(-74), Trig.DegreesToRadians(40.75), 0);
SurfaceShapesResult shape = SurfaceShapes.ComputeCircleCartographic(earth, newYork, 10000);
PolylinePrimitive line = new PolylinePrimitive(shape.PolylineType, SetHint.Infrequent);
line.Set(shape.Positions);
line.Color = Color.White;
AltitudeDisplayCondition condition = new AltitudeDisplayCondition(0, 1000000);
line.DisplayCondition = condition;
SceneManager.Primitives.Add(line);
As you can see in the images below, the circle is visible only when the camera is below this altitude.


More...
This is the first of a series of articles about our favorite features in Insight3D written by developers on the Insight3D team, the AGI Components team, and other AGI developers that we've deemed as world experts in Insight3D.
I like lots of Insight3D features, but I've decided to write about the marker batch primitive because 1) I developed it and am therefore biased, and 2) it does lots of fancy things under the hood for performance.
Marker Batch Basics
Loosely speaking, markers are 2D images that always face the viewer, like these arrows:

Yes, I drew the arrow icon myself in Visual Studio, and no, I've never thought of a career in art. Markers are sometimes called Sprites or Billboards. They have an incredible number of uses: representing points of interest, visualizing a ton of realtime data, replacing 3D models to improve performance, and for rendering image-based effects such as clouds, smoke, fire, and vapor trails. Of course, we are looking for an excuse to code up some of these effects, so please leave a comment if you are interested.
More...
You may have heard in the news that NASA’s LCROSS satellite has reached the Moon. The satellite’s mission is to map the Moon’s surface for future manned missions and to determine if water in the form of ice exists in a crater at the Moon’s south pole.
STK, software that we work on, was used amongst others to help plan the mission. STK was streamed live on June 23, 2009 to visualize the lunar swingby in 3D in real-time. A recording of the swingby is here under the section titled “Lunar swingby coverage animation”.
Telemetry, for example the satellite’s orientation, was sent in real-time from the satellite to the Earth and into STK; based on that telemetry, the satellite was oriented and displayed in 3D. The satellite, the satellite orbit, the two camera sensor beams, the Moon, vectors, textual information, and more were all displayed together in one 3D window.
While we are excited that we just officially released Insight3D, this is also very exciting for us. By the way, Insight3D is based on the same 3D engine used in STK and uses AGI’s Dynamic Geometry Library for astrodynamics, which is also based on STK’s. The use of STK for NASA’s mission underscores the quality and accuracy of the 3D visualization that you can expect from Insight3D.
We wish NASA continuing success in this mission.