2014-01-30 6 views
1

glGetPMvMatrixf() 함수를 이해할 수 없습니다. PMVMatrix.java을 통해 스키밍 P 및 Mv 곱셈을 발견하지 못했습니다. 함수는 앞에있는 항등 행렬로 FloatBuffer 슬라이스를 반환하고, P, Mv 및 0을 묶습니다. 내가 놓친 게 있니?jogl glGetPMvMatrixf()가 단위 행렬을 반환합니다.

PMVMatrix pmvMatrix = new PMVMatrix(); 

    pmvMatrix.glMatrixMode(PMVMatrix.GL_PROJECTION); 
    pmvMatrix.gluPerspective(60, ((float) drawable.getWidth())/drawable.getHeight(), 0.1f, 10); 

    pmvMatrix.glMatrixMode(PMVMatrix.GL_MODELVIEW); 
    pmvMatrix.glTranslatef(0, 0, -3); 

    System.out.println(pmvMatrix.toString()); 
    System.out.println(
      Arrays.toString(pmvMatrix.glGetPMvMatrixf().array()) 
    ); 

    int pmvMatrixUniformLocation = gl.glGetUniformLocation(program, "pmvMatrix"); 
    gl.glUniformMatrix4fv(pmvMatrixUniformLocation, 1, false, pmvMatrix.glGetPMvMatrixf()); 

답변

0

당신이 JOGL의 버전을 사용합니까 : 여기

내 코드? PMVMatrix의 버그가 몇 달 전에 고쳐 졌음을 기억합니다.

+0

2.1.3을 사용합니다. 마지막 버전 2.1.4가 1 월 31 일에 릴리스되었습니다. PMVMatrix는 변경되지 않았습니다. – user2418306

+0

문제가 보이지 않습니다. 설명서를 살펴 보았습니다. http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/com/jogamp/opengl/util/PMVMatrix.html# 예, 매트릭스가 얇게 썬 부분입니다. 무엇이 잘못 되었나요? http://jogamp.org/deployment/jogamp-next/javadoc/jogl/javadoc/com/jogamp/opengl/util/PMVMatrix.html#storageDetails – gouessej

+0

설명서도 읽었습니다. 하나의 FloatBuffer 내의 두 행렬이 유용 할 수있는 상황을 이해할 수 없습니까? 'getPMvMatrix()'함수를 호출 한 사람이 PMv 행렬을 얻으 려한다고 가정합시다. 대신 수동으로 P와 Mv를 곱해야합니다. 하나의 FloatBuffer에서 두 행렬을 곱하는 함수를 찾지 못했습니다. 대신 두 개의 별도 버퍼에서 행렬을 곱하는 함수가 있습니다. 그러나 왜 내가 FloatUtil.multMatrixf (pmvMatrix.glGetPMatrixf(), pmvMatrix.glGetMvMatrixf(), pmvFloatBuffer);를 할 수 있다면 단 하나의 FloatBuffer에서 행렬을 추출해야겠습니까? – user2418306