I m目前试图研究如何从JOGL那里获得世界坐标,当时只有返回x =0.0, y=0.0和z=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: 不用说,我注意到了这一glu。 glu 无项目回报的是一种风.,因此,我给它留下了一个叫作假的蓝色的测试。
EDIT2 - I ve 添加了另一条解答词——系统外面,印数(湿度为0.0);
感谢您的帮助
James