Ben android opengl2 ile yeni biriyim ve bazı şeyleri test ettiğim bir uygulama yapıyorum. Şimdi bir küre nesnesini bir dokuyla çoğaltmaya çalışıyordum, bu yüzden aynı Matris Matrisi ve aynı projeksiyon matrisini kullanarak Model matrisine küçük bir çeviri uygulayarak MVP matrisimi değiştirmenin yeterli olduğunu düşündüm.Farklı pozisyonlarda iki model çizin opengl 2 android
int[] numIndices = balon.getNumIndices();
ShortBuffer[] indices = balon.getIndices();
GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mMVPMatrix, 0);
for (int j = 0; j < numIndices.length; j++) {
GLES20.glDrawElements(GLES20.GL_TRIANGLES,
numIndices[j], GLES20.GL_UNSIGNED_SHORT,
indices[j]);
}
GLES20.glUniformMatrix4fv(mMVPMatrixHandle, 1, false, mMVPMatrix2, 0);
for (int j = 0; j < numIndices.length; j++) {
GLES20.glDrawElements(GLES20.GL_TRIANGLES,
numIndices[j], GLES20.GL_UNSIGNED_SHORT,
indices[j]);
}
balon, Sphere türünde bir nesnedir. mMVPMatrix ve mMVPMatrix2, bahsettiğim MVP matrisleridir. MVP matrisini değiştirdim ve tekrar çizim yaptım. Sonuç olarak iki kürem var, ama bunlardan biri garip davranıyor, çarpık görünüyor, görünen pozisyon sağda, iki küre ilerliyor, ama bunlardan biri şekli değiştiriyor. Kaçırdığım ne
?, ben
Bu ... ?, aynı model olma, bu yeterli olduğunu düşündüğüm Bunu yapmadan önce benim kodunda bazı şeyleri çoğaltmak zorunda sanırım, ama Ben MVP matrisi nasıl değiştiğini:
Matrix.setIdentityM(mModelMatrix, 0);
Matrix.setIdentityM(mModelMatrix2, 0);
Matrix.translateM(mModelMatrix, 0, posX, posY, posZ);
Matrix.translateM(mModelMatrix2, 0, posX+0.5f, posY+0.5f, posZ);
Matrix.multiplyMM(mMVPMatrix, 0, mViewMatrix, 0, mModelMatrix, 0);
Matrix.multiplyMM(mMVPMatrix2, 0, mViewMatrix, 0, mModelMatrix2, 0);
Matrix.multiplyMM(mMVPMatrix, 0, mProjectionMatrix, 0, mMVPMatrix, 0);
Matrix.multiplyMM(mMVPMatrix2, 0, mProjectionMatrix, 0, mMVPMatrix2, 0);
mMVPMatrix2'yi nasıl değiştirdiniz? – BDL