三个js - 从字符串数据加载纹理

时间:2017-12-01 08:43:28

标签: javascript three.js

我正在将一堆png文件上传到AWS,并在需要时获取它们。上传时,我通过fs流式传输数据,下载时我将来自AWS的数据作为响应进行管道传输。

无论如何,当我在客户端上获取数据时,它将返回为具有以下结构的字符串:

�PNG


IHDR�x�� IDATx���_��[�����1���s�?��9u����h�...

如何将其加载到纹理中?我尝试过使用this(也是mrdoob here推荐的)

但是它导致Image抛出一个无法提供信息的错误,并且永远不会调用onload。

let image = new Image();  
let texture = new THREE.Texture();

image.onerror = function(e) {
  //enters here
}

image.onload = function(e) {
  //never here
  texture.image = texture_image;
  texture.needsUpdate = true;
}

image.src = myFetchedPNGData;

从这些数据中创建THREE.Texture的正确方法是什么?

修改 以下是获取数据的请求:

let requestt = new XMLHttpRequest();
request.open('POST', url, true);
request.setRequestHeader('Content-Type', 'application/json');

request.addEventListener('load', (event) => {
  // Here myFetchedPNGData recides in event.target.response
}, false);

request.addEventListener('error', (event) => {
  //do error handling
}, false);

onProgress && request.addEventListener('progress', (event) => {
  //Handle request
}, false);

request.send(...);

0 个答案:

没有答案