2

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

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

4

1 回答 1

1

Q1。如果您知道Mesh( MESH_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。如果您计划重用网格(用于不同的应用程序),请将它们组织到单独的文件中,在应用程序初始化期间分别加载它们,然后将它们插入到世界中。

于 2010-04-21T02:52:19.413 回答