使用深度图像数据在WebGL中构建3D模型

时间:2011-02-26 04:10:03

标签: image model 3d textures webgl

我从Kinect相机获得an image that is a combination of the RGB and depth data

如果可能的话,我想在WebGL中做两件事:

  1. 根据深度数据创建3D模型。
  2. 将RGB图像投影到模型上作为纹理。
  3. 我应该看哪个WebGL JavaScript引擎?是否有类似的例子,使用图像数据构建3D模型?

    (提出第一个问题!)


    发现Photoshop中的3D工具很简单(3D> New Mesh From Grayscale):http://www.flickr.com/photos/forresto/5508400121/

1 个答案:

答案 0 :(得分:1)

我不知道任何WebGL框架可以专门解决您的问题。我认为您可以使用深度数据创建一个网格,从矩形均匀网格开始,根据深度值将每个顶点移动到后面或前面(Z轴)。

一旦你有这个,那么你需要生成纹理数组,并从你在flickr上发布的图像我推断深度图像和纹理之间存在一对一的映射。因此生成纹理数组应该很简单。您只需将纹理上的对应坐标(s,t)映射到相应的顶点即可。因此,对于每个顶点,纹理数组中都有两个坐标。然后绑定它。

最后,您需要确保使用纹理为图像着色。这是一个两步过程:

第一步:将纹理坐标作为“attribute vec2”传递给顶点着色器,并将其保存到变化的vec2。

第二步:在片段着色器中,阅读您在第一步中创建的varying vec2并使用它生成gl_FragColor

我希望它有所帮助。