2012-08-01 3 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); 
    }); 
}); 

전체 소스 :

WebGL을 : INVALID_OPERATION : https://github.com/bjnortier/three.js/blob/multiple_canvasses_with_json_loader/examples/webgl_multiple_canvases_grid.html

이 예제가 WebGL 오류를 생성 useProgram이에서하지 객체 '응용'이 예에서 장면 앱의 배열입니다 컨텍스트
WebGL : INVALID_OPERATION : uniformMatrix4fv : 현재 프로그램의 위치가 아닙니다.
WebGL : INVALID_OPERATION : uniform3f : 현재 프로그램이 아닌 위치
WebGL : INVALID_OPERATION : uniform1f : 현재 프로그램에 대한 위치가 아닙니다.
등 ...

답변

12

다른 장면에서 지오메트리를 공유 할 수 있습니다.
다른 장면에서 메쉬를 공유 할 수 없습니다.
다른 렌더러 (아직)를 따라 기하학/메시/씬을 공유 할 수 없습니다.

+0

감사합니다. 답변에 감사드립니다. 위의 질문을 명확히했습니다. 제 경우에는 여러 렌더러가있어서 모양을 공유 할 수없는 것처럼 보입니다. – bjnortier

+0

여러 EffectComposers가 동일한 장면을 사용할 수 있습니까? 여러 렌더러가 제대로 작동하도록 할 수는 있지만 효과를 추가하면 WebGL 오류 목록이 동일하게됩니다. [here] (https://github.com/asvarga/ManyRenderersWithEffects)를 참조하십시오. –

+4

@ mrdoob 아직도 r70 및 r71의 경우입니까? 두 렌더러간에 지오메트리 개체를 공유하는 데 문제가 있습니다. – Justin

관련 문제