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());
2.1.3을 사용합니다. 마지막 버전 2.1.4가 1 월 31 일에 릴리스되었습니다. PMVMatrix는 변경되지 않았습니다. – user2418306
문제가 보이지 않습니다. 설명서를 살펴 보았습니다. 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
설명서도 읽었습니다. 하나의 FloatBuffer 내의 두 행렬이 유용 할 수있는 상황을 이해할 수 없습니까? 'getPMvMatrix()'함수를 호출 한 사람이 PMv 행렬을 얻으 려한다고 가정합시다. 대신 수동으로 P와 Mv를 곱해야합니다. 하나의 FloatBuffer에서 두 행렬을 곱하는 함수를 찾지 못했습니다. 대신 두 개의 별도 버퍼에서 행렬을 곱하는 함수가 있습니다. 그러나 왜 내가 FloatUtil.multMatrixf (pmvMatrix.glGetPMatrixf(), pmvMatrix.glGetMvMatrixf(), pmvFloatBuffer);를 할 수 있다면 단 하나의 FloatBuffer에서 행렬을 추출해야겠습니까? – user2418306