That’s what I would have done. I don’t use collision volumes in my system anyway, just a single collision plane which I use to get hit locations and calculate the array index in much the same way you describe it. I see no reason why it shouldn’t also work with a sphere and reversing the projection math, and I think it would be lot cleaner than using lots of collision volumes. I’ve got everything you describe working except the sphere projection, so just ask if you’re stuck on any of the other points.