我想繪製多個立方體在等角攝像機角度。這是繪製一個的代碼。 (iOS上帶有GLKit的OpenGL ES 2.0)。OpenGL繪製多個等角立方體
float startZ = -4.0f;
// position
GLKMatrix4 modelViewMatrix = GLKMatrix4Identity;
modelViewMatrix = GLKMatrix4Translate(modelViewMatrix, location.x, location.y, location.z + startZ);
// isometric camera angle
modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, GLKMathDegreesToRadians(45), 1.0, 0, 0);
modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, GLKMathDegreesToRadians(45), 0.0, 1.0, 0);
self.effect.transform.modelviewMatrix = modelViewMatrix;
[self.effect prepareToDraw];
glDrawArrays(GL_TRIANGLES, 0, 36);
的問題是,它首先被翻譯,然後旋轉,這意味着與多於一個的箱,它們不排隊(它們看起來像鑽石的鏈。每一個是在適當的位置和旋轉,使角落重疊)。
我已經嘗試切換順序,這樣的旋轉平移前,但他們不顯示在所有。我的頂點數組綁定到以原點爲中心的單位立方體。
我真的不明白如何控制與物體分開的相機。我用投影矩陣旋轉了一段時間而沒有得到它。據我瞭解,相機應該用modelViewMatrix進行控制,對吧? (「查看」部分)。
好 - 我很高興你明白了。你不需要重新計算像這樣的每個立方體的相機矩陣。如果您在外面計算相機矩陣,那麼只需對每個立方體執行'cameraMatrix * objTranslate'。 :) – jhabbott 2013-04-12 09:31:43