javascript - 你能在 three.js 场景之间共享网格吗?

标签 javascript three.js

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

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

编辑:

更具体地说,我正在尝试在不同场景之间共享已使用 JSONLoader 加载的几何体。 IE。在此示例中,“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
等等……

最佳答案

您可以沿着不同的场景共享几何体。
您不能沿着不同的场景共享网格。
您不能在不同的渲染器上共享几何体/网格/场景(目前)。

关于javascript - 你能在 three.js 场景之间共享网格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11762961/

相关文章:

javascript - Money.js 将货币从一种值转换为另一种值以及反向转换

youtube - 如何在 three.js 中使用视频元素或 html 内容作为面部纹理?

javascript - 用于在 three.js 中加载对象的网络 worker

javascript - BufferGeometry - 只有一侧应用了 Material ?

javascript - 访问 setstate 之后执行的函数中的变量

javascript - 如何删除jquery id中的前缀

javascript - 为什么 Google Places API 不执行我的请求?

javascript - 无法在 HTML5 拖放中添加 appendChild,请不要使用 jquery

javascript - 使用 CanvasRenderer 可能存在内存泄漏

javascript - 3D 模型同比例,三个 JS