J'essaie actuellement de trouver comment obtenir les coordonnées du monde à partir de JOGL - au moment où il retourne seulement x = 0.0, y = 0.0 et z = 0.0, peu importe où je clique. Qu'est-ce que je fais mal?JOGL - glu.gluUnProject retourne toujours 0.0
public double[] getMousePosition(int x, int y){
int viewport[] = new int[4];
double modelview[] = new double[16];
double projection[] = new double[16];
float winX, winY, winZ;
float posX, posY, posZ;
double wcoord[] = new double[4];
gl.glGetDoublev(GL2.GL_MODELVIEW_MATRIX, modelview, 0);
gl.glGetDoublev(GL2.GL_PROJECTION_MATRIX, projection, 0);
gl.glGetIntegerv(GL2.GL_VIEWPORT, viewport, 0);
winX = (float)x;
winY = (float)viewport[3] - (float)y;
float[] depth = new float[1];
// gl.glReadPixels(winX, winY, 1, 1, gl.GL_DEPTH_COMPONENT, GL2.GL_FLOAT, depth);
boolean test = glu.gluUnProject(winX, winY, 0.0, modelview, 0, projection, 0, viewport, 0, wcoord, 0);
System.out.println("x: " + wcoord[0] +"y: "+wcoord[1]+" worked? "+test);
System.out.println(modelview[0]);
return wcoord;
}
EDIT :: Vous avez oublié de mentionner que j'ai remarqué que glu.gluUnproject retourne un booléen donc je lui a assigné un booléen test appelé qui retourne false.
EDIT2 :: J'ai ajouté une autre instruction de débogage - System.out.println (modelview [0]); et est également retournaient 0.0
Merci pour votre aide
James