2016-10-25 3 views
1

Я очень новичок в плане расширенной реальности с некоторым опытом работы с OpenGL. Я хочу сделать что-то вроде треугольника с OpenGL ES (Android или iOS, не имеет значения для платформы). Фон должен быть захвачен камерой мобильного телефона. В основном результат нравится Pokemon Go, через камеру вы получили реальный мир в качестве фона и вставки Pokemon в реальный мир.Нарисуйте треугольник в реальном мире с помощью OpenGL ES

Итак, с чего мне начать?

ответ

0

Один подход.

  1. Захват изображения и загрузка в карту 2D-текстуры.
  2. Оформить четырехугольник с этой 2D-текстурой. Четырехугольник должен быть достаточно далеко от вашей виртуальной камеры, чтобы он формировал фон (вы захотите включить тестирование глубины). Четырехугольник должен быть достаточно большим, чтобы покрывать фон (который зависит как от расстояния от камеры, так и от вашего перспективного поля зрения).
  3. Теперь визуализируйте свою сцену (треугольники).

На рисунке ниже показан вид усеченного конуса в плоскости xz, когда у вас есть вещи в координатах. N и F - расстояния до плоскостей ближнего и дальнего отсечения, а θ - вертикальное поле зрения - пусть a = соотношение сторон = w/h вашего изображения (которое должно соответствовать соотношению сторон вашего окна просмотра). H - высота квадрата, который вы хотите визуализировать, а Q - расстояние до квадроцикла с камеры. Высота квадрата должна быть равна H = 2 * Q tan (θ/2). Ширина вашего квад W = а H.

perspective view

расстояния от камеры объектов, которые вы хотите быть на переднем плане должны быть между N и Q.

Я предполагаю, вы знаете, как установить матрицу вида (через «преобразование взгляда») в положение вашей камеры и установить матрицу проецирования для указания проекции перспективы. Также, предполагая много других вещей (например, как загрузить карту текстур, нарисуйте заполненный квадрат с координатами текстуры, включите проверку глубины и т. Д.). Если вам нужна дополнительная информация, дайте мне знать.

Если вы хотите встроить объект в сцену, для чего потребуются некоторые методы компьютерного зрения (определение глубины через пары стереоизображений). Это нетривиальная проблема.

Смежные вопросы