Magic Mirror - how to modify reflection?

Hey!
I’m using Magic Mirror Lite from assets store. I really need a mirror that reflects inverted upside down room or rotated by 90 degrees. Example on image below - perspective is wrong but you get the idea.


At first I was trying to make my own mirror from scrath by using camera that rotates according to player’s location and render image from this camera on render texture. It kinda works but it isn’t realistic and looks more like a security cam. I tought I can also change FoV of camera according to distance between player and mirror and this is a little bit better but still isn’t realistic enough. It doesn’t behave like a real mirror and it distort the reflection. In this case it’s simple to rotate reflection because I can rotate camera attached to mirror and reflection is rotated but I don’t think I can make realistic reflection this way.

Or can I? Any ideas?


So I decided to use Magic Mirror, but really it’s impossible to modify the reflection.

Rotating camera doesn’t do anything.

I tought it is necesery to modify Matrix4x4 but I guess that’s also not it.

I was also trying to flip mirrorMaterial Texture in MirrorCameraScript by mirrorMaterial.SetTextureScale(“_MainTex”, new Vector2(1,-1)); but again no luck…

I have no idea if shoud I somehow modify _MainTex inside shader or it is necesary to completely modify the way reflection is rendered?

I’m running out of ideas I spent weeks trying to figure it out.

Does anybody have idea?

A simple planar mirror uses screenCoordinates in it’s shader, so rotating the object has no use.

You can go to the mirror’s update script, there will be a camera position and rotation set there. You can add an extra rotation there at the end. for example mirrorcam.Rotate(0,0,90); After all other positions and rotations are set.

What you can also do is change the uv coordinates in the material’s shader. You can change tex2D(x,i.screenPos.xy) into something like tex2D(x,1-screenPos) or tex2D(x, float2(1-i.screenPos.x,i.screenPos.y) for example to flip the coordinates