Projecting an image on a transparent surface

I have a glass dome in my game that I need to project images on to in order to display information. My first idea was to use decals, but I now know that decals don’t work on transparent materials. I’ve seen that you can potentially bake the decal into the material, but unfortunately I need to display multiple images on to the dome, more get added, some get removed, they all move around, and they need to actually interact with the game environment, so I’m not sure if that solution is going to work. As of right now, I’m just using planes for the “decals” and moving them around the dome on a spline, but it’s very clear that they can clip out and around dome.

I’ve looked into a lot of solutions, but nothing seems to fit exactly what I need. If anybody knows how you can achieve the effect of having complex moving decals that can interact with the world on a transparent material (or at least fake it so it doesn’t look terrible), it would be greatly appreciated.

Hm, yeah this is pretty hard to solve since it needs to be on a dome and modular.

Given your strict requirement, I think you might have the most luck using a Light Function Atlas. This is a more expensive option than decals, but I think it will be the only solution that gives you a decent version of the desired effect.

You can read up on light function atlases and how to use them here.

Just make sure to enable “Translucent Uses Light Function Atlas” in your project settings and set your glass material Lighting Mode to “Surface ForwardShading” in order for the light functions to appear on your glass.

Here’s the test I ran on my end with it. Setting the Light Falloff Exponent lower, setting the Specular Scale to 0, and adjusting the attenuation radius helped focus the light too.