КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Общие замечания
Удаление невидимых линий и граней Удаление невидимых линий производится до проецирования объекта. Алгоритмы удаления невидимых граней могут быть условно поделены на два класса в зависимости от принципов, заложенных для их реализации. Первый класс – это алгоритмы, работающие в пространстве объекта. Это означает, что для определения видимости данной грани сравнивается ее взаимное расположение со всеми остальными гранями в трехмерной сцене. Пусть N – количество граней в трехмерной сцене. Для построения трехмерной сцены в этом случае необходимо сравнить положение каждой грани с оставшимися, что требует порядка N 2 операций. Например, пусть количество граней в трехмерной сцене N = 1000, тогда время работы алгоритмов этого класса порядка 1,000,000 операций. Другой класс алгоритмов – алгоритмы, работающие в пространстве изображения, основан на нахождении точки ближайшей грани, которую пересекает луч зрения, проходящий через заданную точку на растре. Поскольку число точек на растровом экране фиксировано, то алгоритмы этого класса менее чувствительны к увеличению количества объектов в трехмерной сцене. Пусть n - число точек на растровом экране. Тогда количество операций, необходимых для построения трехмерной сцены будет порядка n ´ N. Например, для экранного разрешения 320´200 точек, n = 64000, тогда количество операций для N = 1000 граней будет порядка 64,000,000. Выбор класса алгоритма может зависеть от особенностей конкретной задачи, а также от способов реализации алгоритма. Определение видимости или не видимости точки по сути сводится к проверке, лежат ли две точки на одном проекторе (см. рисунок …). Рисунок … Проверка взаимной видимости точек Если проекция параллельная, то проверка сводится к сравнению координат x 1 = x 2, y 1 = y 2; Если проекция центральная, то проверки становятся значительно сложнее: , . Те же самые вычисления придется повторить для новой точки P3. Для эффективного решения задачи удаления невидимых ребер/граней преобразуем видимый объем, как показано на рис. 33. Рис. 33. Изменение видимого объема при перспективном преобразовании: а) до преобразования; б) после преобразования. Это достигается с помощью матрицы , которая носит название перспективного преобразования. После применения матрицы M p нормированный видимый объем становится прямоугольным параллелепипедом, что позволяет перейти от центральной перспективной к параллельной проекции. Легко проверить, что, например, . При выполнении различных операций по выявлению перекрывающих друг друга граней широко используют ограничивающие грань тела (оболочки). В качестве оболочек чаще всего используют параллелепипеды с гранями, параллельными координатным плоскостям. Если такой ограничивающий грань параллелепипед задан координатами своих диагональных углов (xmin, ymin, zmin) и (xmax, ymax, zmax), то проверка пересечения оболочек двух граней сводится к простой процедуре проверки пересечения трех промежутков: от xmin до xmax, от ymin до ymax и от zmin до zmax. Если хотя бы один из этих промежутков не пересекается с аналогичным промежутком для оболочки другой грани, то оболочки граней не пересекаются и, следовательно, грани тоже не пересекаются. Грани, оболочки которых пересекаются, могут как пересекаться, так и не пересекаться, и в этом случае проводят более сложные вычисления. Рисунок. … Многоугольники и их оболочки: а) оболочки не пересекаются, следовательно многоугольники не пересекаются; б) оболочки пересекаются, а многоугольники нет.
Дата добавления: 2014-01-05; Просмотров: 334; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |