How do I calculate the screen lengths of the position vectors aligned with the axis after a frustum projection transformation?
Background:
In Java I create a frustum projection matrix via
Matrix.frustumM (projMatrix, 0, left, right, top bottom, near, far);
and a view matrix via
Matrix.setLookAtM (viewMatrix, 0,
0, 0, 2.5, // eye position
0, 0, 0 // search position
0, 1, 0); // address above
I also know how many GL units of width and height is the screen of my device, let's say width
Y height
. If my game tokens are dx
Y dy
GL units in size, then for a spelling projection I can calculate width / dx
Y height / dy
to determine how many squares you should have horizontally and vertically (approximately).
But with a trunk projection, which basically is always looking down according to the previous definition, this does not give me the correct result.
(Keep in mind that my tiles are always placed in the x / y
airplane in z = 1
Of course I understand why, this is because the further away from the camera the smaller lengths are made. But how do I transform my dx
Y dy
values to deal with this?
I have tried:

divide my dx
Y dy
by 1 + 2.5 + 1 = 4.5
since that is the distance from the eye to the plane of the tile.

Multiplying the projection and view matrices (and both together) by the vector (dx, 0, 0, 1) for example.
But these do not work.
I also hear that the projection matrix has a w
component in the lower right part of the matrix, which may have something to do with the zscale, but I'm not sure if it's on the right track.
Any advice welcome. I will continue investigating.