Глубинная интерполяция для удаления поверхности с перспективной проекцией - PullRequest
1 голос
/ 28 апреля 2011

Это похоже на вопрос, ответ на который должен быть легко доступен в Интернете или в книгах, но мой поиск ответа привел меня пока только к тупикам, которые оказались тупиками.

IЯ пытаюсь рисовать трехмерные линии в режиме реального времени со скрытым удалением поверхности (линии - это края твердых объектов).

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

Моя проблема в том, что, поскольку функция глубины не является линейной, когда вы выполняете перспективную проекцию, я не могу интерполировать глубину 2 исходных трехмерных точек, чтобы вычислить глубину промежуточной точки.

Итак, как мне вычислить глубину каждой точки на линии с помощью метода, который совместим с ограничениями рендеринга в реальном времени?

Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 28 апреля 2011

Используйте однородные координаты, которые можно линейно интерполировать в пространстве экрана: http://www.cs.unc.edu/~olano/papers/2dh-tri/

...