6

是否可以在场景之间共享网格或几何图形?

我有多个场景应该是相同的、大的网格,但是当我尝试在它们之间共享网格时,我得到了 WebGL 上下文错误。我怀疑某些变量在添加到场景时会在网格或几何体上设置,从而阻止它们在另一个场景中重复使用。

编辑:

更具体地说,我正在尝试在不同场景之间共享已使用 JSONLoader 加载的几何图形。即在此示例中,“应用程序”是一组带有场景的应用程序:

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 回答