javascript - 在 JavaScript 中使用 WebGL 着色器语言 (GLSL) 进行任意向量​​数学计算

标签 javascript math matrix glsl webgl

WebGL 着色器语言 (GLSL) 是一个非常强大的多维向量数学工具。

是否有可能使用 JavaScript(在网络浏览器中运行)的强大功能进行私有(private)非 3D 计算?获取数据是可能的,但是有什么方法可以在着色器计算完成后将数据获取到 JavaScript 吗?

不需要实际绘图,只需计算向量。 (我正在考虑用 JavaScript 编写的硬件加速重力模拟器的想法。)

谢谢!

<小时/>

新闻中:Khronos 似乎正在开发 WebCL这将是 OpenCL 的 JavaScript 可访问版本。这正是我正在寻找的,但这需要一些时间......

最佳答案

据我所知spec WebGL 支持帧缓冲区对象和读回操作。这足以让您转换数据并将其返回到客户端空间。以下是操作顺序:

  1. 使用您需要存储结果的附件渲染缓冲区创建 FBO;绑定(bind)它
  2. 将所有输入数据上传到纹理(相同大小)中。
  3. 创建 GLSL 处理着色器,该着色器将在片段部分内进行微积分,从纹理读取输入并将输出写入目标渲染缓冲区;绑定(bind)它
  4. 画一个四边形;通过 glReadPixels 读回渲染缓冲区。

关于javascript - 在 JavaScript 中使用 WebGL 着色器语言 (GLSL) 进行任意向量​​数学计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5414496/

相关文章:

javascript - requestAnimationFrame不流畅

math - 将秒转换为日、时、分和秒

math - 一个好的 3D 网格库

algorithm - 方阵上的最大和

java - 为 glsl 准备模型、 View 和投影矩阵

r - 从矩阵的对角线计算平均值 + 增量

javascript - 闭包编译器和奇怪的前置代码

javascript - Ajax 成功后,重新加载部分页面,而不是整个页面。拉维尔

javascript - 获取json数据出错,ajax

python - 用公式计算反三角函数