Version 3 (modified by martin, 7 years ago)

--

OSG Imposter

General

An Impostor (like an OSG BillBoard) replaces a complex geometric object with an image placed on a transparant quad. As opposod to Billboards however, the Impostors image is rendered at real-time and with respect to the viewpoint of the observer. The real benefit of using Impostors comes when using a single piece of geometry for multiple Impostors. You could create a whole block of houses, with only a single model of a house. It however unclear whether this can actually be achieved at this point.

Possible uses

  • Large, complex scenes consisting of a lot of building (f.i. a cityblock) must remain navigable at reasonable framerates. Brute force computing has its limits. If they are reached, consider the use of Impostors;
  • If you need to be able to view an object from all sides (X,Y and Z direction) a Billboard probably won't do; use an Impostor instead;
  • Furthermore: Billboards are rendered in advance. Animated behaviour will not be possible in this way. Since Impostors are rendered real-time they do allow this.

To create an Impostor Helper in 3d Studio Max

  • Create geometry;
  • Add an Impostor Helper to the scene;
  • Add the geometry to the Helper;
  • Set the threshold value to a certain distance;

The options for the Impostor Helper

Other options

Threshold Value: up until this distance (in drawing units) the real geometry is used. When further away, the Impostor is shown instead.

Demonstration

The model used was a small log cabin downloaded from the internet. This was first duplicated 120 times resulting in a 1.09 million polygons file. This was exported as-is to an OSG-file. The 16mb+ file was opened in de osgviewer. When on ground level the frame rate was high (80+ fps). When zooming out however, so that all 120 cabins where visible the framerate started to drop below 15 fps.

At ground level all is well and 85 fps too

Next, the model was enhanced by adding a OSG Impostor object. All 120 houses where added to it, the threshold was set to 30 (metres) and the scene was exported again. The filesize was somewhat bigger. When opened in the Viewer, on ground level the model (obviously) performed equally. When zooming the frame rate started to drop, but once the first model where beyond the 30 metre distance it steadily went up again. When all the houses where in view, the framerate was 85 fps.


Zoomed out at a measly 12 fps


Zoomed out at a whopping 85 fps (at the bottom there are still some houses within threshold)

More information

Attachments