2012-08-01 83 views
4

是否可以在場景之間共享網格或幾何圖形?你可以在three.js場景之間共享網格嗎?

我有多個場景應該是相同的,大,網格,但是當我嘗試共享它們之間的網格時,我得到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:對象不是從這個上下文
WebGL:INVALID_OPERATION:uniformMatrix4fv:位置不是來自當前程序
WebGL:INVALID_OPERATION:uniform3f:位置不適用於當前程序
WebGL:INVALID_OPERATION:uniform1f:不適用於當前程序的位置
etc ...

回答

12

您可以沿不同場景共享幾何圖形。
您不能沿不同的場景共享網格。
您不能沿着不同的渲染器(尚)共享幾何/網格/場景。

+0

謝謝,我很欣賞答案。我在上面澄清了我的問題。在我的情況下,有多個渲染器,所以看起來像我不能共享幾何。 – bjnortier 2012-08-08 12:13:03

+0

是否允許多個EffectComposers使用相同的場景?我可以使多個渲染器正常工作,但向它們添加效果會得到相同的WebGL錯誤列表。見[這裏](https://github.com/asvarga/ManyRenderersWithEffects)。 – 2014-01-28 05:25:20

+4

@mrdoob r70和r71仍然如此嗎?我無法在兩個渲染器之間共享幾何對象。 – Justin 2015-04-16 19:19:54

相關問題