I use perspective projection, and parallel projection looks well. So my question exactly is how to scale unproject result to real word coordinate (1, 1, 1) when using perspective projection?
2009/9/16 Gameboy <[email protected]> > I try to select 3D vertex (1, 1, 1) from 2D screen, basic thought is > get near and far points with gluUnproject, then use line through these > two points to intersect selection point, but seems has problem with > test code. > > float[] win= new float[3] ; > float[] world = new float[3] ; > 1) GLU.gluProject(1, 1, 1, modelview, 0, project, 0, viewport, 0, win, > 0); > 2) GLU.gluUnProject(win[0], win[1], win[2], modelview, 0, project, 0, > viewport, 0, world, 0); > 3) GLU.gluProject(world[0], world[1], world[2], modelview, 0, project, > 0, viewport, 0, win, 0); > > 1) returns correct values as screen selection, but 2) return world > coordinate is not (1, 1, 1), smaller than it. Maybe because > gltranslate and glrotate results on it. So 3) returns different > windows screen coordinate as 1)'s. > > It looks gluUnproject is not invertible with gluProject. > > Does anybody has experience and idea to tell me how to scale 2)'s > result to match real world coordinate (1, 1, 1)? > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

