Использование данных изображения глубины для построения 3D-модели в WebGL - PullRequest
0 голосов
/ 26 февраля 2011

У меня изображение, которое представляет собой комбинацию данных RGB и глубины с камеры Kinect.

Я хотел бы сделать две вещи, обе в WebGL, если это возможно:

  1. Создание 3D-модели из данных глубины.
  2. Проецирование изображения RGB на модель в виде текстуры.

На какой движок WebGL JavaScript мне следует взглянуть? Есть ли похожие примеры использования данных изображения для построения 3D-модели?

(Первый вопрос!)


Обнаружено, что это легко с инструментами 3D в Photoshop (3D> New Mesh From Grayscale): http://www.flickr.com/photos/forresto/5508400121/

1 Ответ

1 голос
/ 04 марта 2011

Мне неизвестна какая-либо платформа WebGL, которая конкретно решит вашу проблему.Я думаю, что вы могли бы потенциально создать сетку с вашими данными глубины, начиная с прямоугольной равномерной сетки и перемещая каждую вершину назад или вперед (ось Z) в зависимости от значения глубины.

Как только вы получитетогда вам нужно сгенерировать массив текстур, и по изображению, которое вы разместили на flickr, я бы сделал вывод, что между изображением глубины и текстурой существует взаимно-однозначное соответствие.Таким образом, создание массива текстур должно быть простым.Вы просто отображаете соответствующую координату (s, t) на текстуре в соответствующую вершину.Таким образом, для каждой вершины у вас есть две координаты в массиве текстур.Затем вы связываете его.

Наконец, вам нужно убедиться, что вы используете текстуру для окрашивания вашего изображения.Это двухэтапный процесс:

Первый шаг: передать координаты текстуры как "attribute vec2" в вершинный шейдер и сохранить его в переменную vec2.

Второй шаг: вфрагментный шейдер, прочитайте varying vec2, который вы создали на первом шаге, и используйте его для генерации gl_FragColor.

Надеюсь, это поможет.

...