如何从ArrayBuffer构建Float32Array

时间:2018-10-24 16:52:31

标签: javascript typescript three.js web-worker

考虑到我有一个ArrayBuffer,如下面的屏幕截图所示

Screenshot from google developers console

//recompute object from vertices and normals
const verticesBuffer:ArrayBuffer = e.data.verticesBufferArray;
const normalsBuffer:ArrayBuffer = e.data.normalsBufferArray;

const vertices = new Float32Array(verticesBuffer);
const normals = new Float32Array(normalsBuffer);

但是,此时顶点和法线尚未定义。因此,未定义变量顶点和法线,而verticesBuffer和normalBuffer正常。

在转换时,我得到以下错误

const vertices = new Float32Array(verticesBuffer);
  

未捕获的RangeError:无效的类型化数组长度:39744

所以问题是如何从verticesBuffer:ArrayBuffer传递到vertices:Float32Array?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试:

const vertices = new Float32Array(verticesBuffer.array);