WebGL 着色器语言 (GLSL) 是一个非常强大的多维向量数学工具。
是否有可能使用 JavaScript(在网络浏览器中运行)的强大功能进行私有(private)非 3D 计算?获取数据是可能的,但是有什么方法可以在着色器计算完成后将数据获取到 JavaScript 吗?
不需要实际绘图,只需计算向量。 (我正在考虑用 JavaScript 编写的硬件加速重力模拟器的想法。)
谢谢!
<小时/>新闻中:Khronos 似乎正在开发 WebCL这将是 OpenCL 的 JavaScript 可访问版本。这正是我正在寻找的,但这需要一些时间......
最佳答案
据我所知spec WebGL 支持帧缓冲区对象和读回操作。这足以让您转换数据并将其返回到客户端空间。以下是操作顺序:
- 使用您需要存储结果的附件渲染缓冲区创建 FBO;绑定(bind)它
- 将所有输入数据上传到纹理(相同大小)中。
- 创建 GLSL 处理着色器,该着色器将在片段部分内进行微积分,从纹理读取输入并将输出写入目标渲染缓冲区;绑定(bind)它
- 画一个四边形;通过
glReadPixels
读回渲染缓冲区。
关于javascript - 在 JavaScript 中使用 WebGL 着色器语言 (GLSL) 进行任意向量数学计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5414496/