About dynamic imposters

It’s struggling for me with around 40 FPS too unfortunately. This kind of impostor is a good approach for animated meshes like characters/persons though. I’ll check more in detail on the code when i’m less busy.

Another advantage of impostors taking snapshots like this is you can work with a flat final image what is the cheapest you can get out of a impostor, but the memory cost can be high or get out of hand if it’s scaling bad, also the cost updating them. Another issue can be incoherence of light as (unless shading is separated out) will be that rendered for the specific angle in case this implementation tries to share angles.

What bothers me the most about the common impostor techniques is that they have snapping angles, those that try to cover up visible popping either have a lot samples like 3 or 6 rows each 9 columns, get sort of ghosting or expensive in memory or their morphing. However for really far impostors and assets that don’t occur in large count some popping isn’t really bothering, but once you got a large amount like trees in a forest for example the popping can get quite distracting.

I recently posted an update about the Volume Hull Impostor technique i made longer ago and got to work now. This technique only requires a small 8 bit image with fixed samples per asset and extra row or rows for further material maps like roughness maps (that get packed though) to get a full 3D impostor of the original asset that requires so little memory, that basically every asset can have a impostor in memory by default, while having a resolution up to 512 isn’t costly, working with forward and deferred lighting as well. The impostor atlas can be compressed like regular 8bit images and stored or viewed as regular textures.

It also basically works with any material, having the geometry in the texture so it renders like a regular mesh, individual lights will affect them locally per instance. They can also intersect each other partially like geometry.

At the origin is the impostor, once the Y axis is visible the impostor is rendered.

Forest test in my game rendering the distant trees as impostors:

(the update: Tesseract - Open World Planetary Engine - #40 by Fyrestar)

5 Likes