2015-01-26 1 views
0

업데이트 : 더 일반적인 질문을 다시 작성하십시오. (참조 용으로 here 원본)렌더러 교체 후 Three.js 장면이 표시되지 않습니다.

나는 Three.js WebGLRenderer에서 장면을 렌더링 중입니다. 그런 다음 렌더러를 새로운 WebGLRenderer (캔버스를 새 캔버스로 대체)로 대체하고 새 렌더러에서 동일한 장면을 다시 렌더링해야합니다.

는 설정은 다음과 같이 대략 같습니다

cancelAnimationFrame(this.requestID_); 
// all other Three.js objects stay same (and I let Three.js create a new canvas) 
this.createNewRenderer(); 
this.animate(); 

그러나, 새로운 렌더러는 장면의 메쉬를 빈 배경을 렌더링하지 않습니다. 장면 메쉬를 새로 계산 된 메쉬로 바꾸면 렌더링이 다시 잘됩니다.

따라서 메시와 관련이 있다고 가정합니다.

그래서, 메쉬를 재 계산 피하기 위해, 나는 새로운 렌더러를 작성하기 전에 (이후) this three.js doc에 따라 모든 geometry.xxxNeedUpdate 및 material.needUpdate 플래그를 설정하려고했지만,이 역시 작동하지 않았다.

메쉬가 새로운 WebGL 렌더러에 다시 표시되도록하려면 어떻게해야합니까? 나는 현재 다음과 같이 현장에있는 모든 메쉬를 새로 고쳐이 문제를 해결하고 있습니다

답변

0

:

mesh.geometry = mesh.geometry.clone(); 
mesh.material = mesh.material.clone(); 
newMesh = mesh.clone(); 
관련 문제