oops, I meant to (-0.625,0.625) rather than (-1,1)

On Feb 6, 10:22 am, Tim Newsham <[email protected]> wrote:
> FWIW, the following unproject code seems to line up properly for me.
> Notice that I had to map view coordinates to (-1.25,1.25) instead of
> from (-2,2).  I got these numbers empirically and have no idea why
> this would be so or how close to the correct values I am.
>
>     static void fixW(float[] v) {
>         for(int i = 0; i < 4; i++)
>             v[i] = v[i] / v[3];
>     }
>
>     public static float[] unProject(float[] win, float[] mod, float[]
> proj, int[] view) {
>         // XXX check for invertability and w=0.0
>         float[] m = multMM(proj, mod);
>         float[] im = new float[16];
>         Matrix.invertM(im, 0, m, 0);
>
>         // This should scale by 2f, but 1.25f seems to give
>         // accurate results.. I dont know why! XXX!
>         float[] w = new float[] {
>             1.25f * ((win[0] - view[0]) / view[2] - 0.5f),
>             1.25f * ((win[1] - view[1]) / view[3] - 0.5f),
>             2f * win[2] - 1f,
>             1f };
>         float[] r = multMV(im, w);
>         fixW(r);
>         return r;
>     }

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to