Opal Material

You can’t have real color change based on light direction in Cycles. In Eevee you can convert shader back to RGB, and if you either bake (for object UVs) or render out (for screen space window coords), you can use this as a color basis for a glossy shader. Similar to what I do here for fun.

But no, without a proper shader for it, there is no way to do it automatically.