相关疑难解决方法(0)

Javascript Typed Arrays和Endianness

我正在使用WebGL渲染二进制编码的网格文件.二进制文件以big-endian格式写出(我可以通过在十六进制编辑器中打开文件或使用fiddler查看网络流量来验证这一点).当我尝试使用Float32Array或Int32Array读取二进制响应时,二进制文件被解释为little-endian并且我的值是错误的:

// Interpret first 32bits in buffer as an int
var wrongValue = new Int32Array(binaryArrayBuffer)[0];
Run Code Online (Sandbox Code Playgroud)

我在http://www.khronos.org/registry/typedarray/specs/latest/找不到任何类型数组默认字节序的引用,所以我想知道这笔交易是什么?在使用类型化数组进行读取时,我是否应该假设所有二进制数据都应该是小端?

为了解决这个问题,我可以使用DataView对象(在上一个链接中讨论)并调用:

// Interpret first 32bits in buffer as an int
var correctValue = new DataView(binaryArrayBuffer).getInt32(0);
Run Code Online (Sandbox Code Playgroud)

默认情况下,"getInt32"等DataView函数会读取big-endian值.

(注意:我已经使用Google Chrome 15和Firefox 8进行了测试,它们的行为方式相同)

javascript endianness webgl typed-arrays arraybuffer

58
推荐指数
5
解决办法
3万
查看次数

使用 WebGL API 进行数学运算

标题说明了一切,但我的问题是,是否可以在浏览器(例如 Google Chrome)中使用 WebGL API 来解决一些数学问题?

假设我想使用 WebGL API 将两个数字相乘,这通常是可能的,如果是,我该怎么做?

请原谅我没有分享任何代码,因为我没有想出任何答案。

javascript browser webgl

4
推荐指数
1
解决办法
1220
查看次数