Quiet
  • 主页
  • 归档
  • 分类
  • 标签
  • 链接
  • 关于我

bajiu

  • 主页
  • 归档
  • 分类
  • 标签
  • 链接
  • 关于我
Quiet主题
  • WebGL

JavaScript 类型化数组介绍

bajiu
前端

2021-05-14 00:15:27

为了绘制三维图形, webGL 通常需要同时处理大量相同类型的数据, 为了优化性能, WebGL 为每种基本数据类型引入了一种特殊的数组**(类型化数组)**, 浏览器预先知道数组中的数据类型, 所以处理起来也更加有效率

类型化数组都有哪些:

  • Int8Array : 8位有符号整数,长度1个字节。
  • Uint8Array : 8位无符号整数,长度1个字节。
  • Int16Array : 16位有符号整数,长度2个字节。
  • Uint16Array : 16位无符号整数,长度2个字节。
  • Int32Array : 32位有符号整数,长度4个字节。
  • Uint32Array : 32位无符号整数,长度4个字节。
  • Float32Array : 32位浮点数,长度4个字节。
  • Float64Array : 64位浮点数,长度8个字节。

类型化数组提供的方法:

  • get(index) 获取第 index 个元素值
  • set(index, value) 设置第 index 个元素的值为 value
  • set(array, offset) 从第 offset 个元素开始将数组 array 中的值填过去
  • length 长度没什么好说的
  • BYTES_PER_ELEMENT 数组中每个元素所占的字节数

类型化数组与常规数组的区别:

类型化数组实质上是二进制数据,而ArrayBuffer这段区域又是指定长度的,基于这些便可推出其与常规数组的区别:

  • 类型化数组元素都是数字,它不像JS常规数组那样可以参杂不同类型
  • 类型化数组长度固定
  • 所有元素初始化为 0
上一篇

git 常用命令

下一篇

辅助函数initShader作用

©2024 By bajiu.