Пересечение вектора с началом на изображении с плоскостью в реальном мире

Я пытаюсь получить пересечение вектора направления на изображении (направление, в котором смотрит человек), с плоскостью непосредственно впереди и фактически параллельной плоскости изображения. Например, где на стене этот человек смотрит, вот что меня интересует.

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

Как я могу получить пересечение вектора направления с плоскостью перед ним?


person Eric Nguyen    schedule 03.08.2018    source источник


Ответы (1)


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

Хотя я почти уверен, что это только более интуитивно понятно и не быстрее, чем то, что описано выше, альтернативным стилем было бы установить точку обзора и вектор как дочерние по отношению к вектору нормали плоскости в некоторой точке, а затем преобразовать эту нормаль плоскости и точку в глобальное начало (положительная ось z) (перетаскивание точки обзора и вектора через преобразование). Затем разделите высоту z точки обзора на компонент z вектора обзора, чтобы получить величину, необходимую для масштабирования вектора обзора.

person Sneaky Polar Bear    schedule 04.08.2018