КГ_5глава (1024112), страница 3

Файл №1024112 КГ_5глава (Компьютерная графика) 3 страницаКГ_5глава (1024112) страница 32017-07-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Недостатком рассмотренного способа является низкая скорость построения изображения, поскольку для каждого пиксела основного растра нужно вы­полнять несколько вычислительных операций, требующих много машинного времени — в первую очередь, это арксинус и арктангенс.

Разумеется, приведенный выше алгоритм можно усовершенствовать с целью повышения быстродействия. Так, например, можно использовать симметрию шара, что позволяет совместить вычисления для нескольких точек поверхно­сти одновременно. Однако все равно приходится вычислять арксинусы и арк­тангенсы наряду с другими операциями с плавающей точкой.

Здесь мы рассмотрели подход, основной идеей которого было получение формул преобразования координат изображения в мировые координаты и далее — в текстурные. Формулы преобразования здесь достаточно просты с точки зрения математики, но не слишком удобны для быстрых вычислений. Необходимо отметить, что такие формулы мы получили для, возможно, про­стейшего объемного объекта — шара. Для других типов поверхностей, кото­рые описываются значительно более сложными формулами, вероятно, и не существует решение в точном аналитическом виде такой задачи, как пере­счет координат плоскости проецирования в мировые трехмерные. Сложность решения обуславливается сложностью формул аналитического описания по­верхности. И не только. Например, для эллипсоида формулы описания по­верхности не намного сложнее, чем для шара. Однако определение значения координаты Z по известным X н Y является гораздо более сложной задачей, поскольку видимые точки эллипсоида могут иметь как положительные, так и отрицательные значения координаты Z.

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

Наложение текстуры на многогранник

Рассмотрим наложение растровой текстуры на шар, аппроксимированный многогранником. В главе 3 мы с вами уже обсуждали способы вывода поли­гонов с наложением текстуры. Эти способы были представлены в обобщенном виде. Здесь мы разберемся с некоторыми особенностями наложения тек­стуры для шара.

Пусть в качестве текстуры будет карта, которую мы уже рассматривали вы­ше. Кстати, во многих англоязычных графических пакетах программ файлы текстур так и называются "maps", хотя и не представляют собой продукцию картографии. Термин "карта" для текстур можно еще трактовать как "раз­вертка".

| В нашем случае каждая грань многогранника будет соответствовать одной | прямоугольной клетке текстуры (рис. 5.12).

\

Рис. 5.12. Наложение фрагмента растра текстуры на одну грань

Для рисования каждой грани можно использовать алгоритм вывода полиго­нов, модифицированный следующим образом. Мы уже рассматривали выше в главе 3 один из алгоритмов вывода полигонов, который рисует полигон го­ризонталями заполнения внутренних точек. Операции по наложению тексту­ры удобно встроить в цикл рисования каждой такой горизонтали. При этом в ходе вывода пиксела горизонтали по известным текущим координатам пик­села в основном растре (X, Y) определяются соответствующие координаты (XТ У Т) тексела в растре текстуры. Затем определяется цвет тексела, который и будет определять цвет пиксела в основном растре. Вычислить координаты Т, у Т) для каждой точки грани можно следующим образом. Рассмотрим рис. 5.13.

Для определения искомых координат в точке горизонтали будем использо­вать линейную интерполяцию координат угловых точек. При этом до начала цикла вывода горизонтали определим текстурные координаты в точках А и В та, Ута) и Тв, Утв)- Это можно сделать, разделив отрезки (0-1) и (2-3) пропорционально Y.

Рис. 5.13. Соответствие угловых точек грани и фрагмента текстуры Запишем пропорции:

исходя из которых: и

В ходе цикла вывода горизонтали вычисление координат Т, у Т), соответст­вующих текущим пикселам горизонтали, можно выполнять делением отрезка (А-В) пропорционально X:

откуда и

Следует учесть, что приведенные выше формулы отражают лишь отдельный эпизод в ходе заполнения полигона грани. Очевидно, что в другие моменты времени горизонталь заполнения будет пересекать иные ребра полигона (а им будут соответствовать свои индексы вершин). Это достаточно просто реализуется в алгоритмах заполнения полигонов — в том числе и в алгорит­ме, приведенном в главе 3 этой книги.

Как вы, наверное, уже заметили, интерполяция координат для такой текстурированной грани аналогична интерполяции интенсивностей отра­женного света для метода Гуро. Кстати, если в цикл вывода горизонтали заполнения встроить и интерполяцию по методам Гуро или Фонга, то можно получить более реалистичное текстурированное изображение — с учетом отражения света (рис. 5.14).

Необходимо принимать во внимание, что линей-

Рис. 5.14. Текстура ная интерполяция текстурных координат вершин и интерполяция Гуро граней Тi, у Тi) вносит погрешность. Эта погреш­ность значительно возрастает, если соотношение

угловых координат (B, L) и Т, у Т) для текстуры карты мира нелинейно — а это так для многих проекций карты мира. В этом случае для уменьшения погрешности отображения целесообразно увеличивать число граней. Можно интерполировать не текстурные координаты, а широту и долготу (B, L), и для них потом в каждой точке горизонталей заполнения находить соответствую­щие значения Т, у Т) — это уже чем-то напоминает метод Фонга, не так ли?

Давайте рассмотрим еще один способ наложения текстур на многогранник. В отличие от только что рассмотренного, здесь не используется интерполя­ция. При интерполяции требуется выполнять достаточно много операций, в том числе операции деления. Избавиться от достаточно медленной операции деления (в общем случае — над числами с плавающей точкой) можно, если

для каждого полигона грани определить формулы преобразования координат (X, Y) в Т, у Т) в виде

причем, коэффициенты а, b, с, d, e и f являются константами в течение всего цикла вывода одной грани.

В общем случае для четырехугольной грани это невозможно.

Подобное аффинное преобразование нельзя построить по четырем точкам соответствия четырехугольников текстуры и четырехугольника грани, ориен­тированной произвольным образом. Преобразование формы прямоугольного фрагмента текстуры в форму четырехугольной грани многогранника значи­тельно сложнее — попробуйте, например, выразить процесс интерполяции для рассмотренного выше способа в одной функциональной зависимости Т, y Т) = F(X, Y) и вы увидите, что она является сложной, нелинейной.

Однако можно представить четырехугольник в виде двух треугольников] (рис. 5.15), а каждый треугольник выводить отдельно. Для каждой треуголь­ной грани перед циклом заполнения нужно определять свои коэффициенты преобразования координат. Сделать это можно по трем точкам вершин треугольника. Рассмотрим треугольник (0-1-2). Очевидно, должны выполняться следующие равенства.

а также

Рис. 5.15. Триангуляция

Рассматривая эти равенства как две системы линейных уравнений третьего порядка относительно {а, b, с) и (d, e, f), можно найти искомые коэффициен­ты преобразования — подобно тому, как это сделано в разд. 3.7.

Следует заметить, что использовать такой способ триангуляции здесь следует только при большом числе граней, поскольку имеется значительная методи­ческая погрешность. Преимуществом данного способа наложения текстуры является простота вычислительных операций в цикле вывода каждого поли­гона. В некоторых случаях это позволяет достичь высокой скорости графики.

рСотя теперь полигонов уже почти вдвое больше (грани, примыкающие к по­люсам, и так были треугольными), но треугольники обычно выводятся быст­рее четырехугольников. Для треугольников часто используют особые алго­ритмы, оптимизированные по быстродействию. Кроме того, в цикле вывода грани можно использовать, в основном, целочисленные операции, если соот­ветствующим образом применять коэффициенты аффинного преобразования координат.

Теперь сделаем замечания общего характера по текстурированию.

При наложении текстуры на отдельные грани шара совершенно необязатель­ным является склеивание карты мира в один растр текстуры. Может оказать­ся удобным для каждой грани иметь отдельную текстуру. Это относится и к случаю, когда текстуры хранятся в файлах.

Для построения реалистичного изображения поверхности Земли в качестве текстуры лучше всего использовать космические снимки, трансформирован­ные надлежащим образом.

Достоинством полигонального текстурирования поверхностей является уни­версальность метода, применимость его к самым разнообразным поверхно­стям, которые могут быть представлены многогранниками и полигональны­ми сетями. Еще одним достоинством является высокая скорость графики. Базовые операции текстурирования граней в настоящее время аппаратно поддержаны многими графическими процессорами для видеоадаптеров.

1 Недостатком метода является погрешность отображения, которая, однако, стремится к нулю при увеличении числа граней.

Вариации формы шара

Обозначим через хш уш, zш координаты точек поверхности шара. Будем, как и прежде, использовать параметрическую форму — функции угловых коорди­нат широты и долготы:

Рассмотрим варианты деформации поверхности шара, которые можно опи­сать следующим образом:

Характеристики

Тип файла
Документ
Размер
530 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6312
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее