Rendering objects over large distances is common for geospatial programs, and when done incorrectly, the objects may visually jitter. Here, an object is made up of any combination of triangles, lines, and points, like a 3D model. The problem becomes more noticeable as the viewer nears the object. The following video demonstrates this using STK. (Note that I had to modify STK as it does not ordinarily exhibit jitter.)
Rotating about the space shuttle from far away, there is no jitter. After zooming in, the jitter is readily apparent. In this blog entry, I'll discuss the cause of this problem and the solutions used in Point Break and STK.
More...
I'll discuss using a bounding sphere for occlusion culling today. The basic idea is that large objects, occluders, are likely to occlude smaller objects in a scene. In Point Break, an obvious occluder is the Earth, and satellites, ground stations, vehicles, et.al. are objects likely to be occluded. Occlusion culling applied in this manner is sometimes called horizon culling, since objects are no longer visible when they go below the horizon.
I recently read an entry in the Journal of Ysaneya regarding horizon culling that got me thinking about the topic again. (Check out Ysaneya's blog for incredible planet and space screen shots from his game under development. I know you'll be asking when we'll be able to render such amazing scenes.) We have horizon culling code that is very fast, but is sometimes wrong. For Point Break, we needed to address this.
 |
| A satellite about to disappear below the horizon |
More...
We're taking a break from Point Break to discuss how STK's Solar Panel Tool calculates its numbers. STK's Solar Panel Tool is used to estimate the amount of power that solar panels generate at a given time. If you are unfamiliar with the tool, search for "Solar Panel Tool" in STK's Help to learn how to use it. The tool uses a graphical rather than analytical approach to determine power.

More...
Triangulation is the process of decomposing a simple polygon into a set of triangles. Recently, a customer uncovered a bug with our triangulation algorithm. The customer defined the boundary of a polygon that would be rendered on the earth. Our code failed to triangulate the polygon due to a precision issue. Additionally, the customer was creating multiple polygons to work around the fact that our code does not allow for holes inside a polygon.
We knew that we were going to rework our triangulation code for Point Break and a customer had an immediate need, so we bumped up the work's priority. While our current code generally works, it has significant speed and precision issues. So, we decided to start anew.
More...
The first maxim of improving frame rate is: the fastest way to draw an object is not to draw it. This has always been tempered with "unless determining not to draw it takes longer than drawing it." Ideally, for example, the triangles of a 3D model would not be sent to the GPU if the model were not visible. To check if each triangle of the model was visible or not would be too CPU intensive and result in a lower frame rate than always sending the model to the GPU.
Graphics applications typically create bounding spheres that encompass logical sets of triangles, such as a model. A sphere can quickly be checked for visibility. The model is drawn only if the bounding sphere is visible. Because the sphere doesn't exactly represent the 3D model, sometimes the model will be sent to the GPU even though the model isn't visible. Tighter bounding spheres reduce these false positives.
STK has always calculated bounding spheres for 3D models, terrain, et al. For Point Break, we decided to revisit our bounding spheres to see if we could calculate tighter spheres.

More...
Since the '90s, STK has visualized the geometric relationships in 3D between land, sea, air, and space assets over time. Our 3D engine has been specifically designed around the core strength of AGI: astrodynamics. Given the emphasis that STK places on space, the engine is adept at precisely rendering very close and very far objects in the same view. Years of feedback have guided the engine's development to meet our customers' analytical needs for situational awareness, geospatial intelligence, spacecraft mission design and operations, etc. With Point Break, we are taking all that experience and lessons learned to allow our customers to use that same 3D engine in their own applications.
More...
Welcome to the AGI 3D Graphics Team blog. Our blog primarily concerns Point Break, the future 3D visualization component for AGI's product suite. The name is inspired by the movie of the same name that entered the Western canon in 1991, and the name will likely suffer the same fate as FBI agent Angelo Pappas before going into production.
Point Break is AGI's 3D engine in component form ready to integrate into your application. Point Break can use either STK's astrodynamic libraries or AGI's C# based Dynamic Geometry Library (DGL) for astrodynamic calculations. Therefore, Point Break works with both 4DX and DGL based applications.
In this blog, we'll discuss our design decisions, our experiences implementing papers and algorithms, and major Point Break components and best practices. From time to time we'll make proposals and solicit feedback.