Android手機3D引擎研究1

來源:互聯網
上載者:User

由於Android手機都支援OpneGL ES,因此具有3D功能是Android手機的一大特性。然而,Android手機中3D應用開發的資料還相對較少,因此很多人都是看iPhone的3D教程來摸索Android手機上3D應用開發。近日偶然發現Android上開源的3D引擎min3d,體積非常小巧,只有幾百K,基本實現了OpenGL ES上所有功能,同時還可以讀取Obj和3ds檔案,同時該項目要用相對自由的MIT許可模式,因此可以作為開發3D應用的基礎。

首先到googlecode上下載該項目:http://min3d.googlecode.com/svn/trunk。建立新的Android項目,將min3d目錄下src的內容拷貝到當前項目的源檔案目錄下,進行重新整理(按F5),此時eclipse將重新編譯整個項目,此時應該可以編譯成功。

下面是建立第一個3D程式,首先建立一個新類,繼承min3d的RendererActivity類,並將其加入到ApplicationManifest.xml檔案中。代碼如下所示:

public class Lesson01 extends RendererActivity {
     @Override
     public void initScene() { }

     @Override
     public void updateScene() { }
}

其中在initScene中添加所要顯示的3D物體,在updateScene函數中處理3D動畫。

我們在這個教程中要顯示一個最簡單的立方體,並且要讓其旋轉,所以添加如下代碼,將立方體添中到情境中:

public void initScene() {
     scene.lights().add( new Light() ); // 添加光源
     cube = new Box(1.0f, 1.0f, 1.0f, null, false, true, false); // 顯示灰色立方體,沒有顏色和紋理
     cube.colorMaterialEnabled(false);
     cube.position().x = 0.0f;
     cube.position().y = 0.0f;
     cube.position().z = 0.0f;
     cube.rotation().x = 45.0f;
     cube.rotation().y = 30.0f;
     cube.rotation().z = 10.0f;
     scene.addChild(cube); // 加入到情境中
}

在min3d中,3D物體按情境進行組織。上面代碼建立一個在原點的灰色立方體。

下面我們讓它繞Y軸轉動:

public void updateScene() {
     cube.rotation().y += 2.0f;
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.