UV transform matrix should work on iPhone. If you have a case where it doesn’t, please submit as a bug.
Cube mapping is not supported by iPhone hardware.
The “nature” of spherical mapping is limited to single fixed camera direction. That is a limitation comparing with cube-maps. You don’t need any additional UV transformation matrix to get spherical mapping. Just use SphereMap TexGen and that’s it.
Just for clarity - in case of cube-maps, shouldn’t _ReflectionMatrix be actually _Reflection?
I wasn’t aware of that. But now that I think about it it’s pretty obvious. However, what I’m trying to do is a very specific effect for a quasi 2d game, and thankfully I found a better way do do it using only a texture transform matrix.
No, “_ReflectionMatrix” is just the name I use to set the transform matrix from my code (someMaterial.SetMatrix(“_ReflectionMatrix”, someMatrix)). May be confusingly named though.
As for the bug where texture transform doesn’t work on the iPhone, the above shader will reproduce it. Seeing as I’m skipping all the spheremap stuff, I rewrote the shader from scratch, after which I don’t get that bug anymore. It might be that texgen spheremap + uv transform doesn’t work because Unity figures “hmm, that doesn’t make sense”… Though even in light of what you said about spherical env mapping, you might still conceivably want to transform the uvs in order to make a wobbly displacement of your reflection for instance.