在J2ME M3G中查找对象

时间:2010-04-14 17:32:52

标签: java java-me m3g

我正在使用Blender创建m3g文件,然后在java程序中加载它们 哪个是在Mesh中查找对象(World)的最佳方法? (我应该如何“建立”一个世界?)

我应该为每个对象创建单独的类,然后将它们添加到一个World对象中,还是应该在Blender中为对象分配ID并通过ID在程序中找到它们? 或者将每个对象导出到单独的M3G文件中? (或者其他一些方式?)

1 个答案:

答案 0 :(得分: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。如果您计划重用网格(针对不同的应用程序),请将它们组织成单独的文件,在应用程序初始化期间单独加载它们,然后将它们插入到世界中。