你能分享三个场景之间的网格吗?

bjn*_*ier 5 javascript three.js

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

我有多个场景应该相同,大,网格,但当我尝试在它们之间共享网格时,我得到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);
    });
});
Run Code Online (Sandbox Code Playgroud)

完整来源:https://github.com/bjnortier/three.js/blob/multiple_canvasses_with_json_loader/examples/webgl_multiple_canvases_grid.html

此示例生成WebGL错误:

WebGL:INVALID_OPERATION:useProgram:对象不是来自此上下文
WebGL:INVALID_OPERATION:uniformMatrix4fv:location不是来自当前程序
WebGL:INVALID_OPERATION:uniform3f:不适用于当前程序的位置
WebGL:INVALID_OPERATION:uniform1f:不适用于当前程序的位置
等...

mrd*_*oob 13

您可以沿不同场景共享几何体.
您无法沿不同场景共享网格.
您不能在不同的渲染器(尚未)之间共享几何/网格/场景.

  • @mrdoob r70和r71仍然如此?我在两个渲染器之间共享几何对象时遇到问题. (4认同)