2012-03-17 5 views
2

을 사용하여 assets을 three.js로로드 File API을 사용하여 브라우저에서 볼 수있는 3D 모델을 가져 오는 기능을 만들고 싶습니다.File API

three.js 로더는 내가 호스팅하는 파일에서 훌륭하게 작동합니다. 내 이해 로더를 아약스 파일을 검색하는 데 사용하는 것입니다.

파일을 보려면 클라이언트의 디스크에서 파일을로드 할 수 있어야합니다. 이것이 어떻게 성취 될 수 있습니까?

+0

AJAX는 소스 코드를 보면 약간 하드 코드 된 것 같습니다 ... 나는 틀릴 수도 있습니다. –

+0

원하는대로 JSON을로드하고'load' 대신'createModel'을 호출하면됩니다 :'new JSONLoader.createModel (geometry, callback, texturePath);' – Chad

답변

3

필요에 맞게 loader의 load() 함수를 재정의하거나 "핫 패치"할 수 있습니다.

다른 THREE.js 관련 코드 앞에 우선 적용하십시오. 예를 들어 :

THREE.OBJLoader.prototype.load = function(url) { 
    // copy the function from OBJLoader.js source and change the AJAX calls to File API calls 
} 

다른 사람과는 달리, ColladaLoader이 프로토 타입을 사용하여 구현되지 않은 것 같다, 그래서는 간단하지 않습니다. Collada 지원이 필요하면 Loader 작성 후이를 수행하고 로더 인스턴스에서 직접 함수를 대체해야합니다. 이 접근법은 OBJLoader 및 다른 사람들에게도 적용됩니다. 하지만 미리 할 수는 없지만 실제 모델 로딩 함수/콜백에 코드가 있어야합니다.

var myloader = new THREE.ColladaLoader(); 

myloader.load = function(url) { 
    // copy the function from ColladaLoader.js source and change the AJAX calls to File API calls 
} 

ImageLoader에서 캔버스를 사용하여 비 2의 텍스처를 적절한 크기로 자동으로 크기를 조정하는 유사한 방법을 사용합니다.