Well, there’s no dynamic movement in my demo, you move cell by cell (see games like dungeon master or LavaLevel’s QuestLord). I could adapt it slightly (and in fact did some quick tests) but hte problem is the framerate. I get, for a reasonable draw distance, around 8 fps on the ipad 2 - it is a looot of big distorted images.
I’m re-writing the code now to speed it up and include culling etc, but with the best will in the world I’d not expect to get realtime values, and having dynamic movement would remove a lot of the optimisations I can have due to a semi-fixed viewpoint (the viewpoint can be pretty much anywhere - what really needs to be fixed are the view directions).
The maths is really actually quite simple, in some places it is as simple as:
local screenX = x / z * screenScalar
local screenY = y / z * screenScalar
just repeated for the corners.
One thing I’ve not thought about, that would be a problem for a more free-form 3D engine is clipping. Past experience tells me that when polygons start crossing the Z = 0 plane, things go haywire reeeeally quickly!