2014-12-03 8 views
1

3D웨어 하우스에서 모델을 가져 오려고했으나 일부 ​​모델을로드하지 못했습니다 (ColladaLoader.js (2808 줄) 오류). 잡히지 않음 TypeError : Can not null의 프로퍼티 'input'을 읽는다). 3D웨어 하우스에서 여러 가지 모델로이 오류가 발생했습니다.Three.js ColladaLoader가 모델을로드하지 못했습니다. 일부 요소에 정점이없는 것 같습니다.

피클 (elcsiga/rep1z1xt/4)을 준비했고, 아약스 (CORS 위반)를 통해 다른 도메인에서 모델을로드하지만 Chrome에서 작동했습니다.

완전히 동작하는 예제가 (모델을로드 할 수 없습니다) : 몬스터 모델 http://projecthost.hu/webview/jsfiddle/metro.html

정확히 동일한 코드를 three.js를 저장소에서 (그것은 작동) : http://projecthost.hu/webview/jsfiddle/monster.html

COLLADA 모델은 여기에서 확인할 수 있습니다 : projecthost.hu/webview/jsfiddle/metro.dae 먼저 .kmz 파일로 다운로드하고 압축을 풀어 .dae 파일을 직접 사용하려고했습니다. 또한 .skp 파일을 Sketchup에서 열고 .dae 형식으로 내 보냈지 만 ColladaLoader.js에서 같은 오류가 발생했습니다.

이 모델에는 지원되지 않는 지오메트리가 포함되어 있습니까? 아니면 Collada loader의 버그입니까?

감사합니다.

+0

'vertices = null' 문제를 확인한 것으로 보입니다. 디버거를 통해 모델 문제인지 또는 로더 문제인지를 판단 할 수 있다면 매우 유용 할 것입니다. 비포장 된 버전의 three.js로 디버그하십시오. – WestLangley

답변

0

이 비어 정점을 피함으로써 내 문제를 해결할 수 있습니다

var vertexData = []; 
if (this.vertices && this.vertices.input['POSITION'].source) { 
    vertexData = sources[ this.vertices.input['POSITION'].source ].data; 
} 

로 교체, ColladaLoader.js에서

var vertexData = sources[ this.vertices.input['POSITION'].source ].data; 

을 찾을 수 있습니다. 대용량 파일의 일부 정보가 손실 될 수 있지만 ColladaLoader.js의 기능에는 해를 끼치 지 않습니다.