2012-03-29 6 views
0

Все, что я хотел бы сделать, это создать окно просмотра, которое отображает трехмерный ландшафт плоских квадратов в 2D-перспективе.3D Вершины для преобразования 2D-изображений

Представьте, что вы смотрите на поле, которое было совершенно плоским. Дальнейшие блоки местности будут казаться наклонными внутрь дальше к горизонту, а также будут выглядеть короче.

Я сделал ТОННУ исследования о том, как с научной точки зрения это сделать правильно и наткнулся на это:.

http://en.wikipedia.org/wiki/Visual_angle

(за исключением этой статьи в 2D, я хотел бы, чтобы это также объяснить " высота»или г Dimention окна просмотра)

есть более простой способ сделать это и создать истинное восприятие вместо того, чтобы программы:

-3D луча/сферы пересечения

-расстояние от точки к точке на сфере

Довольно много, что я спрашиваю, если существует более простой способ отображения вершин в 3D мире в 2D плоскости, при этом оставаясь верным перспективном искривления?

Любые полезные статьи или советы были бы очень признательны!

Спасибо!

ответ

2

Стандартный способ сделать это - использовать homogeneous coordinates и матрицу perspective projection. Это не требует каких-либо вычислений расстояний: на вершину требуется умножение матрицы 4x4 и деление для масштабирования конечной двумерной точки.

И, да, это научно и геометрически правильно, хотя я должен отметить, что он предполагает плоский экран, похожий на камеру, и идеальный объектив, похожий на отверстие. Если вы хотите «угол зрения» -На fisheye просмотра лучшим вариантом может быть добавление barrel distortion как пост-процесс ....

Вы, вероятно, следует начать с вводного компьютерной графики текста, как 3D компьютерной графики Алан Уатт. Более старая «классическая» работа - Компьютерная графика: принципы и практика от Foley, van Dam, et al.

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

  • Нет связанных вопросов^_^