6

シーン間でメッシュやジオメトリを共有することはできますか?

同じ大きなメッシュである必要がある複数のシーンがありますが、それらの間でメッシュを共有しようとすると、WebGL コンテキスト エラーが発生します。いくつかの変数は、メッシュまたはジオメトリがシーンに追加されたときに設定されているため、別のシーンで再利用できないと思われます。

編集:

具体的には、JSONLoader で読み込まれたジオメトリを異なるシーン間で共有しようとしています。つまり、この例では、'apps' はシーンを含むアプリの配列です。

var loader = new THREE.JSONLoader();
loader.load('obj/tree/tree.js', function(geometry) {
    apps.map(function(app) {
        var material = new THREE.MeshBasicMaterial({color: 0xff0000, opacity: 1.0}); 
        var mesh = new THREE.Mesh(geometry, geometry.materials[0]);
        app.scene.add(mesh);
    });
});

完全なソースはこちら: https://github.com/bjnortier/three.js/blob/multiple_canvasses_with_json_loader/examples/webgl_multiple_canvases_grid.html

この例では、WebGL エラーが生成されます。

WebGL: INVALID_OPERATION: useProgram: object not from this context
WebGL: INVALID_OPERATION: uniformMatrix4fv: location is not from current program
WebGL: INVALID_OPERATION: uniform3f: location not for current program
WebGL: INVALID_OPERATION: uniform1f: location not for current program
etc...

4

1 に答える 1

16

異なるシーンに沿ってジオメトリを共有できます。
異なるシーンに沿ってメッシュを共有することはできません。
異なるレンダラーに沿ってジオメトリ/メッシュ/シーンを共有することはできません (まだ)。

于 2012-08-01T16:01:34.260 に答える