WebGL:哪些数组参数必须是类型化数组?

时间:2013-12-14 18:56:47

标签: arrays webgl

我注意到“鼠标事件”(和“纹理”)演示here在Chrome,Firefox和Opera中运行(界面有点不好,所以请耐心等待。)

如您所见,模型,视图和投影矩阵作为vanilla JavaScript数组提供。 Float32Array仅在2个脚本中出现一次,即用于上传立方体顶点数据。

我不明白这一点,因为我到目前为止假设所有数据都必须作为类型化数组。我看到了这些选项:

  • 所有数组都必须作为类型化数组进行调用,但转换是隐式的。
  • 只有某些调用需要键入数组作为输入。如果是这样,哪个做/不做?我在哪里可以查看这个,因为WebGL似乎还没有正式的API文档!
  • 不同的浏览器实现如何处理这种情况之间存在差异:有些可能会进行隐式数组转换,而有些则可能没有。

1 个答案:

答案 0 :(得分:1)

WebGL规范已有一段时间了。你可以从the WebGL Khronos Site获得它。从规范中可以看出,有几个函数被重载,特别是那些接受制服的函数(这就是你指定各种矩阵的方式),接受JavaScript数组和类型化数组。其他函数 - 主要是那些占用大量数据的函数(例如纹理,顶点数组等) - 仅限于因性能原因而仅使用类型化数组。