无法通过DataTexture加载Uint8Array图像?

时间:2015-06-07 04:59:26

标签: javascript three.js

我使用DataTexture加载Uint8Array图像(download link),这里是我的代码:

var map = new THREE.DataTexture( data, 128, 128, THREE.RGBFormat );
map.needsUpdate = true;
material.needsUpdate = true;
material.map = map; 

但纹理是黑色并收到这些错误:

在Firefox中:

Error: WebGL: texImage2D: not enough data for operation (need 49152, have 5210)
Error: WebGL: generateMipmap: Level zero of texture is not defined.

在Chrome中:

WebGL: INVALID_OPERATION: texImage2D: ArrayBufferView not big enough for request

任何建议让这个工作?

感谢。

(我试图将Uint8Array图像转换为Data64并加载到漫反射贴图,但我不想这样使用,因为我试图隐藏Chrome F12中网络标签的纹理,使用data64将显示纹理......)

1 个答案:

答案 0 :(得分:1)

我看到three.js在内部调用THREE.Texture,而DataTexture就是它的包装。原因可能是数据被破坏了,因为纹理三会从data64中得到一些东西,这就是你使用data64正确显示的原因。