【发布时间】:2014-12-06 09:28:22
【问题描述】:
我在浏览器上下文中工作,相机图像通过二进制 SocketIO 通道流式传输。
我正在处理的相机只支持以bayer格式输出其数据(作为一个非常大的字节数组),如下图:
我希望在浏览器的画布上实时显示相机图像流。
到目前为止,我的想法是使用 WebGL 作为渲染器(以提高速度),并在片段着色器中执行从 Bayer 到 RGBA 的 conversion。
我是 WebGL 的新手,因此我不确定将未转换的相机图像发送到 GPU 并访问它以便执行转换并对片段进行着色的约定和最佳实践。
似乎一种常见的技术是将其作为纹理发送并通过纹理采样器(例如 texture2d)访问它?但这似乎假设为 RGBA 格式,因为拜耳格式是一种完全不同的结构,并且能够访问原始字节数组会更有用。
指向正确的方向就足够了。我想真正的问题是'如何将任意数据发送到 GPU 并在 WebGL 上下文中访问它?'
编辑:我宁愿了解原始的 WebGL 技术,也不愿使用诸如 ThreeJS 之类的库,尽管如果它特别容易的话,我可能会在 ThreeJS 中实现它。
【问题讨论】:
标签: javascript video webgl shader