2010-04-14 37 views
2

我使用Blender創建m3g文件,然後將它們加載到java程序中。
這是在World中查找對象的最佳途徑(Mesh)? (我應該如何「建立」一個世界?)在J2ME中查找對象M3G

我應該爲每個對象創建單獨的類,然後將它們添加到一個World對象中,還是應該將ID分配給Blender中的對象並通過ID在程序中找到它們?
或者將每個對象導出到單獨的M3G文件?
(或其他方式?)

回答

1

Q1。如果您知道MeshMESH_ID)的ID,那麼:

try { 
    Object3D[] roots = Loader.load("http://www.example.com/scene.m3g"); 

    World world = roots[0]; 
    Mesh mesh = world.find(MESH_ID); 
} 
catch(Exception e) { 
    // Handle it 
} 

Q2。加載基本World

:深入

public class MyCanvas extends Canvas 
    Graphics3D g3d; 
    World world; 
    int currentTime = 0; 

    public MyCanvas() { 
     g3d = Graphics3D.create(); 
     Object root[] = Loader.load("world.m3g"); 
     world = root[0]; 
    } 

    protected void paint(Graphics g) { 
     g3d.bindTarget(g); 
     world.animate(currentTime); 
     currentTime += 50; 
     g3d.render(world); 
     g3d.releaseTarget(); 
    } 
} 

然後使用API​​來創建並添加更多的物體進入世界API文檔涵蓋了這Q3。將它們分配到Blender中,然後使用find方法獲得您需要的Object3D的確切實例。

Q4。如果您計劃重新使用網格(針對不同的應用程序),請將它們組織爲單獨的文件,在應用程序的初始化期間單獨加載它們,然後將它們插入到世界中。