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



我注意到这里的"鼠标事件"(和"纹理")演示在Chrome、Firefox和Opera中运行(界面有点糟糕,请耐心等待)。

正如您所看到的,Model、View和Projection矩阵是作为普通JavaScript数组提供的。Float32Array在两个脚本中只出现一次,用于上传立方体顶点数据。

我对此有些不理解,因为到目前为止,我一直认为所有数据都必须作为类型化数组。我看到这些选项:

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

WebGL规范已经存在一段时间了。您可以从WebGL Khronos网站获取。正如您从规范中看到的,有几个函数被重载,特别是那些接受uniform的函数(这就是您指定所提到的各种矩阵的方式),以接受JavaScript数组和类型化数组。其他功能—主要是那些获取大量数据的数据(例如纹理、顶点阵列等)—由于性能原因,仅限于使用类型化数组。

最新更新