Mirage - Versatile Impostor System

Updated
2024-09-14
Free
Tools
Version
1.1.0
File size
46.4 MB
Views
102
Registration required
Description

Mirage is a powerful tool that provides full impostor management, from baking to rendering, with automatic LOD Group setup.

 

Mirage users can also get our legacy impostor system AutoLOD - Impostors for an alternative workflow. See the main differences below.

 

  • Reduce the triangles count and draw calls by orders of magnitude in just one click
  • Performance magic - Up to 10x FPS increase on complex massive scenes
  • By far the most versatile impostor system : Say goodbye to pink outputs or other errors, thanks to a a new elegant and unique baking procedure, Mirage is compatible with ANY unity version after 2020.3 and ANY render pipeline, with ANY shader and can be embedded on any platform. Natively.
  • Bake as many objects as you want in a single impostor
  • Extremely easy to use: Struggling is not an option, the plugin is really straightforward to use and you will get your first impostors baked in just a few seconds.
  • VR ready: and more generally, multi-view and single pass stereo instancing compatible.
  • Compatible with GPU Instancing
  • 2 lighting modes:
    • Surface estimation: Lit, multi-light compatible impostors
    • Use Scene Sun Source: If your lighting is directional and static, you can use this option to bake directly the light reflections on the impostor colormap. The impostor is then rendered on an unlit material.
  • Lightweight and non-intrusive module: Mirage will not change project or player settings nor install any additionnal dependencies in your project. It is a lightweight standalone package that was designed to fit seamlessly in any project.

 

  • What is an impostor?

An impostor is a billboard that displays an image of a 3D object. The image will update and change according to the viewing angle in order to fake a 3D effect and save on performance.

  • When should I use it?

Impostors are mainly used to render non-deformable objects far off in the distance in order to optimize the scene.

You could also use them to get a unique art style with a 2.5D "snapping" effect.

  • Can any object in my scene be replaced with an impostor?

Technically, any objects with a MeshFilter and MeshRenderer attached can be baked into an impostor. However, they should mainly be used to replace meshes in the far distance. At closer range, the difference will be noticeable as a simple quad doesn't intersect the same way with surrounding objects in the same way as the original mesh. Also, impostors are baked in orthographic view which means that the perspective will be wrong at closer ranges.

  • Are impostors compatible with the LODGroup component?

Yes. You also don't have to deal with geometry alignment manually, by default the tool sets the LODs for you.

  • How long does it take to bake an impostor?

A few seconds.

  • Can I build on any platform?

The impostors shader is based on Unity surface shader so you should be able to build on any platform handled by Unity out-of-the-box.

  • Are there any required dependencies?

No. This is a standalone package.

  • What makes Mirage different from its competitors?

Mirage is the only 100% versatile 3D impostor system. It is compatible with any shader, on any pipeline, on any target platform, on any unity version after 2020.3, out-of-the-box. Although it is a trade on visual fidelity, especially when dealing with complex objects with intricate self-shadowing shapes or smoothness variations. Fortunately Mirage comes with a lot of post-baking settings directly in the material inspector and you can always get a seamless match from the original object when seen from far in the distance.

  • Can I bake impostors at runtime?

Not yet, but that is a feature we are working on. The C# core was designed to have several baking engines, but only the EditorBakingEngine is available yet.

  • What are the differences between Mirage and AutoLOD Impostors ?

Mirage is a better AutoLOD impostor, with a 100% remade baking backend.

From the user perspective they look really similar, the main difference is being able to have several objects into a single impostor which was not possible on AutoLOD. It really makes it reach a whole new level of optimization.

Other significant improvements are:

• ⁠metallic estimation (impostors look better overall)

• ⁠way faster at baking

• ⁠less intrusive (AutoLOD needs to change scenes on the fly and reopen the current scene when baking)

• ⁠more versatile (any pipeline is supported natively vs AutoLOD doesn’t work at 100% on HDRP)

• ⁠designed to expose several baking backends in the future (only 1 editor-only is currently available but I will work on a runtime one)

• ⁠compatible with the LODGroup cross fading

• ⁠More post baking adjustments like saturation etc

 

AutoLOD remains an interesting choice since it has more lightweight Impostors, and uses a baking scene that you can customize, but overall Mirage is better on most aspects.

 

Technical details

  • Impostors Atlases are stored in DXT Compressed files for minimal memory usage
  • Since DXT is not compatible with all platforms, you can still use the Impostor Format Converter (included) to use any other RGB(A) format.
  • The MirageCoreHelper.hlsl and MirageGeometryHelper.hlsl hold the pipeline/platform agnostic code to resolve the impostor geometry. Feel free to make you own shader based on these. You can use the provided unlit Shaders as minimal examples.

Comments
Comments is not yet
Add Comment
Please register
You may also like