Hi,
I'm planning to use JPCT-AE for an Android AR application.
So I need that the projection of my scene fit accurately with the camera intrinsics parameters (in the sense of
https://ksimek.github.io/2013/08/13/intrinsic/).
Basically, I have a K matrix (obtained through an external camera calibration process) :
[ fx 0 x0
0 fy y0
0 0 1 ]
Where fx,fy are focal lengths, and [x0, y0] the principal point (which is near the center of frame, but still present a significant offset from that center so that I'm forced to take it into account to stay accurate for the projections and reverse projections).
This post
http://www.jpct.net/forum2/index.php/topic,3366.msg24313.html#msg24313 discussed about that question but didn't resolve the issue of the principal point (ox, oy in the post).
For fx/fy, I can use them to set FOVx and FOVy (with setFOV() and setYFOV()), but how can I inject the offset of the principal point ?
I maybe miss something but I didn't see any direct way to do this. So I hesitate between 2 ways to achieve my goal to use a complete matrix of camera intrinsics :
1/ setFrustumOffset() ? but it only acts on Y axis and there is no method similar method for X axis ?
2/ set FOV values, then retrieve projection matrix with getProjectionMatrix(), inject x0 and y0 at the right place into it and dump the modified projection matrix into the former with setDump().
I understand "projection matrix" in the sense of
http://www.codinglabs.net/article_world_view_projection_matrix.aspx so that it's only responsible to transform view space into frustum space and I assume it's the same for getProjectionMatrix().
I hope I'm clear enough.
Any hints are welcome,