2012-05-14 3 views
0

Когда нам нужно получить расстояние между камерой и 3D-объектом на ведьме, мы указываем, что мы используем GL11.GL_DEPTH_COMPONENT. Проблема в том, что я хочу получить расстояние между камерой и объектом, расположенным ближе всего к объекту, ближайшему к камере. Можно ли это сделать? Как?Получение расстояния между камерой и точным объектом

ответ

1

Если вы хотите, чтобы расстояние между двумя точками (например, камерой и центральной точкой объекта), то вы будете иметь, чтобы вычислить его с обычным вектором математикой: sqrt(dot(pt1 - pt2, pt1 - pt2))

OpenGL для визуализации; это для рисования материала. Для этой цели существует буфер глубины. И буфер глубины сохраняет только расстояние от Z-плоскости камеры, а не радиальное расстояние от точки до этой точки на треугольнике.

2

Это becomming моего самого oftenly написанного OpenGL уточнения:

OpenGL не граф сцены. Он просто рисует точки, линии и треугольники 2D-фреймбуферу. В OpenGL нет таких объектов, как объекты или камера. Есть только примитивы геометрии, которые OpenGL забывает о том, как он растрировал их, и результат этого процесса в фреймбуфере. OpenGL не имеет понятия «впереди» или «сзади».

То, о чем вы просите, полностью выходит за рамки OpenGL. Что вам нужно, так это графа сцены, реализующего лучевой треугольник.

И я могу только повторить то, что Никол Bolas уже ответил:

OpenGL для визуализации; это для рисования материала. Для этой цели существует буфер глубины. И буфер глубины хранит только расстояние от Z-плоскости камеры, Не радиальное расстояние от точки до этой точки на треугольнике.

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