2010-10-13 73 views

回答

1

除了Android SDK中有很多第三方的3D引擎,可以使創建3D圖形更容易。我用來創建一些導入的網格文件的簡單3D遊戲的一個是JPCT-AE:

http://www.jpct.net/jpct-ae/

的支持論壇是優秀的,開發者自己通常對響應在1-2天內論壇。 JPCT在其設計中以遊戲爲中心,因此可能會有更好的純3D圖形。有幾個示例代碼的教程可幫助您開始。

1

要繪製3D對象,您可能需要使用OpenGL ES API。在這裏,您有可能需要以加載實現你自己的3D對象的主要步驟:

  1. 從擴展GLSurfaceView.Renderer類,因此onDrawFrame你讓所有的設置了OpenGL API調用的GL環境,繪製3d對象。

  2. 將您的模型數據(頂點,法線,面等)加載到ByteBuffer中,以便稍後在OpenGL API調用中使用它們。

  3. 您可能需要計算轉換矩陣,如果要旋轉,移動或縮放的對象插入到3D世界(Matrix.rotateM

  4. 計算視圖矩陣,所以你可以從任何角度呈現3D對象的視圖(Matrix.setLookAtM)。

  5. 您可能還需要以某種視角呈現對象(Matrix.frustumM),以便看起來更逼真。

  6. 一旦MVP矩陣(模型 - 視圖 - 矩陣)準備就緒,您就可以初始化OpenGL選項,例如視口和背面顏色。

  7. 創建一個新的OpenGL程序,該程序使用Vertex和Fragment Shader編譯,該Vertex和Fragment Shader將在GPU上執行以處理和渲染對象(此步驟僅執行一次)。

  8. 配置先前創建的OpenGL程序(glUseProgram)並配置輸入屬性(glEnableVertexAttribArray),以便可以像要繪製的頂點一樣推送模型的數據。

  9. 最後,通過繪製使所有對象(glDrawElementsglDrawArrays)的所有三角形或元素(點,線)繪製對象。

您可能還需要檢查這個GitHub的倉庫android-3D-model-viewer實現這一切變成一個開源演示,發表在play store爲好,可以呈現3D波* .obj文件。

相關問題