Часть I / Лекция 04. Перспективное проецированиеНа прошлой лекции мы говорили о наиболее важных проекциях, ипользующихся в аффинной геометрии. Перейдем теперь к рассмотрению перспективной геометрии и нескольких новых видов проецирования. На фотографиях, картинах, экране изображения кажутся нам естественными и правильными. Эти изображения называют перспективными. Свойства их таковы, что более удаленные предметы изображаются в меньших масштабах, параллельные прямые в общем случае непараллельны. В итоге геометрия изображения оказывается достаточно сложной, и по готовому изображению сложно определить размер тех или иных частей объекта. Обычная перспективная проекция это центральная проекция на плоскость прямыми лучами, проходящими через точку центр проецирования. Один из проецирующих лучей перпендикулярен к плоскости проецирования и называется главным. Точка пересечения этого луча и плоскости проекции главная точка картины. Существует три системы координат. Обычно программист работает и держит данные о геометрических объектах в мировых координатах. Для повышения реалистичности при подготовке к выводу изображения на экран данные об объектах из мировых координат переводят в видовые координаты. И только в момент вывода изображения непосредственно на экран дисплея переходят к экранным координатам, которые представляют собой номера пикселов экрана. Первые две системы могут использоваться в многомерных системах координат, но последняя только в двухмерной. Операции являются необратимыми, то есть из двухмерной картинки-проекции невозможно восстановить трехмерное изображение. Матрица общего перспективного преобразованияВ этой матрице элементы a, d, е отвечают за масштабирование, m, n, L за смещение, p, q, r за проецирование, s за комплексное масштабирование, х за вращение. |
Одноточечное проецирование на плоскость z = 0Суть этого проецирования такова: чем глубже находится предмет, тем больше
становится значение z-координаты и знаменателя rz + 1, и,
следовательно, тем мельче выглядит предмет на плоскости проекции. Выполним
несложные выкладки и поясним их графически: Для того, чтобы точки, лежащие на линии, параллельной оси z, не терялись друг за другом, используется одноточечное проецирование на линию (см. матрицу преобразования и рис. 4.2); исчезла z-координата, но, поскольку дальние предметы стали более мелкими, чем такие же близкие, у зрителя появляется ощущение глубины. Запомните: это первый способ передачи глубины на плоскости! А теперь для примера отобразим куб, стороны которого равны единице (см. рис. 4.3), на плоскость z = 0; пусть на оси z фокус F = -10 и, следовательно, r = -1/10 = -0.1: В плоскости экрана после преобразования мы будем иметь следующее изображение: Обратите внимание: если бы центр тяжести куба находился в точке (0, 0, 0), куб выглядел бы более «традиционно»: Двухточечное проецированиеЕсли проекция двухточечная (например, по p <> 0 и q <> 0), то имеются две точки схода на соответствующие оси. Обратите внимание: так как по z в данном случае реализуется параллельное проецирование, то удвоения контура куба на экране (x, y) нет. Меняя p и q, мы регулируем точку схода: Трехточечное проецирование по p, q, rВ данном случае p <> 0, q <> 0, r <> 0, и проекция будет иметь следующий вид: |
||||
|
|