Загрузка ресурсов в three.js с помощью File API - PullRequest
2 голосов
/ 17 марта 2012

Я бы хотел создать функциональность для импорта 3D-модели для просмотра в браузере с помощью File API .

Загрузчики three.js отлично работают с файлами, которые я размещаю.Насколько я понимаю, загрузчик использует ajax для получения файла.

Я бы хотел иметь возможность загрузить файл с диска на клиент для просмотра.Как это может быть достигнуто?

1 Ответ

3 голосов
/ 28 ноября 2012

Вы можете переопределить или «оперативно исправить» функцию 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, вы должны сделать это после создания загрузчика и переопределить функцию непосредственно в экземпляре загрузчика.Этот подход должен работать и для 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 для автоматического изменения размера текстур не в степени двухдля правильных размеров, используя холст.

...