我學習的Open GL ES並想獲得與一個比在TouchRotateActivity sample由谷歌提出的3D對象更直觀的界面。 爲了做到這一點,我想在我以前的狀態ModelView矩陣乘以我的模型視圖矩陣。問題與GL11(安卓)getFloatv功能
但我遇到了以下問題:getFloatv函數在我的float數組中返回0值,我不明白爲什麼(我的ModelView矩陣不是空的:如果是這樣,我不會在屏幕上獲得我的多維數據集)。
有人能幫我弄清楚是什麼問題嗎?以下是代碼中的更改。
private float[] previous;
public CubeRenderer() {
mCube = new Cube();
previous = new float[16];
}
public void onDrawFrame(GL10 gl) {
GL11 gl11 = (GL11) gl;
gl11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
gl11.glMatrixMode(GL11.GL_MODELVIEW);
gl11.glLoadIdentity();
gl11.glTranslatef(0, 0, -3.0f);
gl11.glRotatef(mAngleX, 0, 1, 0);
gl11.glRotatef(mAngleY, 1, 0, 0);
gl11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
gl11.glEnableClientState(GL11.GL_COLOR_ARRAY);
/*if(!previous.equals(new float[16]))
gl11.glMultMatrixf(previous, 0);*/
gl11.glGetFloatv(GL11.GL_MODELVIEW_MATRIX, previous, 0);
Log.d("taille matrice",Integer.toString(previous.length));
for(int i=0; i<previous.length;i++)
Log.d(Integer.toString(i),Float.toString(previous[i]));
mCube.draw(gl11);
}
在此先感謝您。
這是正確的,我在我打電話的未實現的方法logcat的發現。我發現了另一種通過使用Google提供的API演示中實現的類來獲取矩陣的解決方案。 [這是](http://www.41post.com/1540/programming/android-opengl-get-the-modelview-matrix-on-15-cupcake)。 非常感謝您的幫助。 – Trap