# Which isometric angles can be mirrored (and otherwise transformed) for optimization?

I am working on a basic isometric game, and am struggling to find the correct mirrors.

Mirror can be any form of transform.

I have managed to get SE out of SW, by scaling the sprite on X axis by -1. Same applies for NE angle.

Something is bugging me, that I should be able to also mirror N to S, but I cannot manage to pull this one off.

Am I just too sleepy and trying to do the impossible, or a basic -1 scale on Y axis is not enough?

What are the common used mirror table for optimizing 8 angle (N, NE, E, SE, S, SW, W, NW) isometric sprites?

-
Care to share a screenshot? – zehelvion Oct 2 '12 at 22:11

With standard player sprites you really only have 3 mirrors. NW/NE, W/E, and SW/SE. You can't mirror north and south because you're looking at the "back" of the avatar in one direction and the "front" in another. This means you need 5 directions authored and you can extrapolate 8 total.

This is assuming that the sprites are mirrorable, of course. Namely, that they're symmetrical along the vertical axis. Or that you don't care about the mirroring artifacts.

-

I will dare say that you should not do this. I have two main reasons for this.

1) Most objects cannot be mirrored. A person cannot. Maybe if the person is just standing. But if the person is holding something in its hand, if you mirror it, it will seems that he has changed hands, which in many cases is not what you want.

2) Isometric projection is meant to be pseudo 3D. This usually means that nicely drawn sprites will have some shadows, accents etc. To maintain the appearance, all sprites need to seem like they are lit from the same direction. If you start mirroring, then the shadows will switch sides as well, and it will all look out of whack.

I suppose there are situations where above points are not of concern, but most modern hardware can very easily handle thousands of sprites, and rendering each many thousands of times, so you are probably better off concentrating on general performance and not mirroring optimization.

-
He may be dealing with a mobile platform with a restrictive memory limit. – Tetrad Oct 3 '12 at 15:46