- •Пугачев а.И.
- •1.1. Растровые изображения
- •1.2. Графические устройства ввода-вывода
- •1.3. Видеоадаптеры
- •2.1. Двумерные примитивы
- •2.2. Визуализация на дискретной области вывода
- •2.3. Визуализация отрезков прямых
- •2.5. Кривые Безье
- •2.7. Алгоритм закрашивания ориентированных многоугольников
- •2.8. Теоретико-множественные операции над двумерными областями
- •2.9. Построчный алгоритм тмо
- •2.10. Программная организация данных для представления сложных объектов
- •3.1. Двумерные геометрические преобразования
- •3.2. Совмещение преобразований. Преобразование относительно заданного центра
- •3.4. Непрерывные геометрические преобразования
- •3.5. Линейные преобразования фрагментов изображения
- •4.1. Трехмерные примитивы
- •4.2. Аппроксимация криволинейных поверхностей
- •4.3. Многогранники и сложные объекты
- •4.4. Свет и цвет
- •4.5. Диффузная модель распространения света
- •4.6. Зеркальное отражение света
- •4.7. Трехмерные геометрические преобразования
- •4.8. Проецирование трехмерных объектов
- •4.9. Ориентация и потенциальная видимость поверхностей
- •4.10. Удаление невидимых точек поверхностей
- •4.11. Метод визуального сглаживания Гуро
- •4.12. Метод визуального сглаживания Фонга
- •4.13. Системы координат в пространственной сцене
- •4.14. Алгоритмы трехмерной визуализации
- •4.15. Построение изображения с тенями
- •Основы компьютерной графики
4.8. Проецирование трехмерных объектов
Целью визуализации является синтез изображения в виде проекции объектов пространственной сцены, поэтому проецирование является важным этапом процесса визуализации. Это преобразование каждой точке P поверхности ставит в соответствие ее проекцию, т.е. точку Pr(P) на плоскости проекций.
Обычно используют один из двух следующих видов проецирования – параллельное и центральное (перспективное).
При параллельном проецировании все линии проецирования параллельны между собой. Наиболее простым частным вариантом параллельного проецирования является ортогональное проецирование (рис. 4.9), в котором линии проецирования перпендикулярны плоскости проекций.
В системе однородных координат ортогональное проецирование на плоскость OXY представляется как преобразование координат C = [x y z 1] с вырожденной матрицей преобразования:
(4.31)
Рис. 4.9
Практически же, как это следует из (4.31), для получения координат C' точек Pr(P) проекции в данном случае достаточно отбросить координаты z проецируемых точек P.
Ортогональное проецирование широко используется в САПР при построении чертежей и изображений машиностроительных изделий и их деталей.
Центральное проецирование применяется при синтезе изображений пространственных сцен большой протяженности. В этом виде проецирования учитывается то, что в реальном мире видимые размеры объектов уменьшаются при удалении от наблюдателя пропорционально расстоянию (рис. 4. 10).
Центральное проецирование состоит из двух преобразований – перспективного преобразования и преобразования ортогонального проецирования. На рис. 4.10 показаны результат перспективного преобразования параллелепипеда с точкой P и последующее ортогональное проецирование его на плоскость OXY.
Рис. 4.10
Перспективное преобразование приводит к фактическому сокращению размеров объектов с удалением их от наблюдателя. В однородных координатах перспективное преобразование с осью проецирования OZ представляется следующим образом:
(4.32)
Коэффициент k называется коэффициентом перспективы. Он определяет степень сокращения видимых размеров в зависимости от удаления. Геометрически коэффициент k определяет положение точки схода Pc на оси OZ, в которой в результате преобразования сходятся все линии, располагавшиеся параллельно оси OZ.
В данном случае перевод однородных координат в обычные требует деления на значение координаты v. В итоге обычными координатами точки P' будут (x/(k z + 1), y/(k z + 1), z/(k z + 1)).
Чтобы определить координаты точки схода, вычислим пределы:
(4.33)
(4.34)
(4.35)
Таким образом, для преобразования (4.32) Pc = (0, 0, 1/ k). Если требуется построить центральную проекцию с точкой схода, координаты xc и yc которой отличны от нуля (например должны соответствовать центру области вывода), то используют тот же прием, что и при выполнении геометрических преобразований относительно заданного центра. В данном случае сначала необходимо выполнить преобразование смещения по x и y на -xc и -yc соответственно, затем перспективное преобразование, а в заключение – обратное преобразование смещения.
Преобразование ортогонального проецирования после перспективного необходимо для получения проекций объектов на картинную плоскость.
Поскольку перспективное преобразование искажает размеры и ориентацию в пространстве элементов поверхностей, то для правильного моделирования распространения света фотометрические расчеты следует производить до перспективного преобразования, а удаление невидимых точек поверхностей должно выполняться после перспективного преобразования. На практике это может значительно усложнить расчеты, поэтому чтобы не исказить фотометрические расчеты, часто перспективное преобразование применяют и к источникам освещения. Такой прием позволяет совместить удаление невидимых точек и фотометриеские расчеты в одном этапе обработки.
Более подробный материал по видам проецирования и их свойствам можно найти в [4, 7].