在其他平台上,我通过将很少访问的每个顶点几何和颜色数据仅存储在 GPU 内存中的 VBO 中并使用 glMap 每隔一段时间分段读取和/或修改它来降低内存使用率。
在阅读 OpenGL ES 2 书时,我注意到它在第 118 页上说:
OpenGL 允许应用程序读取顶点缓冲区存储的内容,但 OpenGL ES 中缺少这些 API 调用。由于 OpenGL ES 中没有读取缓冲区数据的机制,因此这些枚举不再有效,因此不受支持。
我用谷歌搜索了一段时间,看到了 glMapBufferOES 的存在(这似乎记录得很差)。这仍然有效吗?它是一个普遍支持的扩展吗?有什么办法可以在 WebGL 中使用它吗?如果没有,是否有其他方法可以读取 VBO 的内容,或者我唯一的选择是保留对我自己的 ArrayBuffer 对象(或其他一些非 GPU 存储)的 JavaScript 引用?