Impostor Graph

The Impostor Graph is a tool that allows users to create custom impostors for real-time rendering of distant objects. It enables users to build a graph of nodes that output texture atlases, materials, meshes, or other custom data, providing complete control over the impostor building process.


What is the purpose of impostors, and in which scenarios can you see the biggest benefits of this technique?

Typically, open-world games have huge, open areas that can be seen from far away, resulting in an extreme number of triangles on the screen. Usually, because of the distance, those triangles only occupy a small number of pixels, resulting in redundant vertex shader costs. Impostors allow for a tremendous reduction in triangle count by having pre-baked geometry in textures.


What sets this impostor solution apart from others?

  • This solution is designed to integrate seamlessly with existing Unity UX and technology, such as SRP/Shader Graph
  • It uses Octahedral Impostors, which manage to retain quality close to the original geometry.
  • It is highly customizable, including the build process and rendering through Shader Graph.
  • Depth offset support in HDRP.
  • Shadow support.

Can I customize the impostor baking process?

Yes, this package allows for customizing the impostor baking process using graphs, which allows for a huge variety of customization. The package uses NodeGraphProcessor for the graphs.


Does it work with SRP?

Yes, it works with both URP/HDRP and potentially with custom RP.


Does it work with the Built-in Render Pipeline?

No, it does not currently work with the Built-in Render Pipeline, but this may change in the future if there is a need.


Can I build impostors at runtime?

Yes, you can.


Can I use it with ECS?

Yes, the impostor build process essentially outputs material, mesh, and textures, making it quite compatible with Entities and Entities Graphics.


Have other questions?

Do not hesitate to ask in Discord!


Dependencies


DiscordDocumentation