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.
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...
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...
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...
Out-of-core (OOC) rendering algorithms render a model without the need to load the entire model into memory. A prime example of this is the terrain and imagery engine in Insight3D and STK. Most terrain data sets simply do not fit into main memory so an OOC algorithm is called for. Since OOC algorithms have many uses beyond terrain, e.g. cities, I wrote my thesis on the topic:
Title: Visibility Driven Out-of-Core HLOD Rendering
Abstract: With advances in model acquisition and procedural modeling, geometric models can have billions of polygons and gigabytes of textures. Such model complexity continues to outpace the explosive growth of CPU and GPU processing power. Brute force rendering cannot achieve interactive frame rates. Even if these massive models could fit into video memory, current GPUs can only process 10-200 million triangles per second. Interactive massive model rendering requires techniques that are output-sensitive: performance is a function of the number of pixels rendered, not the size of the model. Such techniques are surveyed, including visibility culling, level of detail, and memory management. In addition, this work presents a new out-of-core rendering algorithm that is demonstrated with a variety of HLOD rendering algorithms.
Here is the video of my defense (minus the first 30 seconds or so, sorry):
More...
Believe it or not, the first post to this blog was made one year ago today. A lot has happened to our product, our team, and our blog since then. For starters, we released an alpha version of Insight3D and four significant updates to it. If you haven't had a chance to try it yet, contact Tom Urie at Insight3D@agi.com. Point Break was renamed to Insight3D. We still have a soft spot for Point Break, as do many of our users.
Two of our team members finished school, one bachelors and the other a masters, while another member started graduate school. A few of us made it to SIGGRAPH, which has fueled all sorts of ideas going into Insight3D.
Besides informing Insight3D users of what's new and exciting, we used this blog to make technical contributes to the field of computer graphics, and in particular, real-time rendering. The blog's statistics show that both types of posts receive a good amount of attention with the more popular being the technical content, which makes sense since our alpha user base isn't huge. The most important technical contribution of the past year was probably Deron's post: Precisions, Precisions. The posts on text rendering and picking have also attracted some interest.
Although it's worthwhile to review the past year, I think its even more important to consider this coming year. The offical version of Insight3D will be released, including .NET interfaces that make it easy to use with DGL. This will include all sorts of features that we've barely mentioned, like an overlays system that can be used to render translucent user interfaces on top of your 3D scene. We plan to continue to contribute significant technical content to the blog. You can expect details on the new lines on terrain algorithm (or at least a link to the paper if we formally publish the algorithm). You'll probably hear more than you can imagine on out-of-core rendering, since that was the topic of my thesis. If enough people ask, I will describe the rendering engine behind primitives, which like all modern scene management systems, is now shader-based, and utilizes hierarchical culling and state sorting. Finally, you've only heard from half our team so you should expect some fresh content from new authors.
To debug lighting, it is handy to visualize per-vertex normals. Traditionally, one would create a vertex buffer with a bunch of lines representing normals and render this after rendering the mesh itself. This works but it is not nearly as simple, or as cool, as using a geometry shader.

You can write a trivial geometry shader to visualize normals. The shader takes a triangle as input and outputs 3 lines that represent the normal for each vertex. In the first pass, render the mesh as you normally would. In the second, pass enable the geometry shader and render the mesh again. That's it. No extra vertex buffer, just an extra pass.
More...
As Deron predicted way back in January, our product has been renamed. What you have come to know as Point Break is now called Insight3D. Usually developers resist name changes but we're all pretty happy with it. We hope the name change doesn't cause too much confusion for you. In memory of our original name, I've modified the Surface Mesh primitive example in our HowTo to use our original logo for the texture:

We don't have a new logo yet but you should have high expectations.
In other news, we are thrilled about the amount of interest Insight3D received at this year's User's Conference. Thanks to everyone for their feedback and ideas. If you have more to say or want to request an alpha version, email Insight3D@agi.com. Our team has quite the track record of making changes based on customer feedback. In fact, Bart immediately started coding things based on customer requests from the User's Conference, after he returned in the "party van."
The slides for our Insight to Insight3D presentation from the UC are available under Primers on our User's Conference page. They assure me that the log-in is quick and painless. For other Insight3D resources, check out our online help or this past summer's special edition Inview. The Inview contains two articles on Insight3D (called Point Break back then). We were excited to meet many people at the UC that read the Inview and wanted to learn more.
Our new text rendering code is 5x faster (in a bad case) than our STK code - and the new code uses the same algorithm! How's that work? Well, we are using the same algorithm but the implementation is vastly different. In this post, I'll describe the new implementation, which offloads work from the CPU to a vertex shader running on the GPU, enabling the use of static vertex buffer objects.
More...