A forest of octahedral impostors

Really cool stuff, I was working on the same thing a while back, some 3 years ago


Had some issues with interpolation, you can see lines on the sprite if you look closely. Probably lack of secondary reprojection.

At the time I was going full steam ahead on this,

  • added support for complex objects, not just a single mesh
  • variable atlas resolution
  • variable grid resolution so you can trade spatial for angular resolution
  • full octahedron and hemioct
  • debug visualization tools
  • margins to support mipmaps without bleeding
  • depth/normal/pbr + albedo/alpha bakes, so you can fully relight the thing and do proper depth compositing

Here is an example of a reasonable and unreasonable grid resolution on the same atlas resolution


Spent an ungodly amount of time on optimizing the bake.
Implemented Sprite fitting to reduce overdraw




Pick a number of points, say 4 - and the tool will fit a convex hull around it with that number of points. Lets you cut down on overdraw. Humus wrote about it over a decade ago, I thought it was a really cool idea.

I still want to bring this to production someday, maybe in Shade. Anyway, Kudos on making it work!

My references

3 Likes