Главная » Просмотр файлов » М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006)

М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006) (1124363), страница 97

Файл №1124363 М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006) (М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006)) 97 страницаМ. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006) (1124363) страница 972019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Средства Х() КВЗ библиотеки С1Л) — как раз такой интерфейс. Процедуры Х()КВ5 инкапсулируют в себе большой объем сложного хода. Конечное отображение обычно выполняется вычислителями, но в некоторых ситуациях, например при вырезании (Гг1шпппя) кривых, Х()КВЯ-процедуры используются для воспроизведения плоских многоугольников. Зта глава содержит следующие основные разделы: ° Необходимые знания. Здесь говорится, какие знания вы уже должны иметь для чтения этой главы. Здесь также приводятся несколько ссылок на дополнительные источники информации. ° Вычислители. Рассказывает, как работают вычислители и как ими управлять с помощью команд ОрепС1.. ° Интерфейс Х1)КВЯ библиотеки СШ. Описывает процедуры СШ для создания Х()КВЯ-кривых и поверхностей, их воспроизведения и возврата информации для вершин, полученных при мозаичном разбиении.

440 Глава 12 ° Вычислители и йый95 Необходимые знания Вычислители рассчитывают сплайны и поверхности, основанные на кривых Бе- зье (или на полиномах Бернштейна). В этой главе приводятся определяющие уравнения, но обсуждение не отклоняет- ся от основной линии и даже не включает в себя перечисление всех интересных свойств этих объектов. Если вы хотите использовать вычислители для рисования кривых и поверхностей с помощью других базисов, вы должны уметь выполнять их преобразование к базису Безье. Кроме этого, когда вы воспроизводите поверх- ность Безье или ее часть с помощью этих вычислителей, вам нужно определиться с детализацией разбиения. Ваше решение должно быть направлено в сторону компромисса между качеством разбиения изображений и быстродействием.

Вы- работка соответствующей стратегии разбиения может оказаться весьма непро- стым делом, даже чересчур сложным для обсуждения в рамках книги. Соответственно, подробное обсуждение !«1ЖВБ также выходит за «область вн. димости» этой книги. Выдержки из документации к интерфейсу СШ ЫПКВ5 н примеры программ, представленные здесь, ориентированы на читателей, уже зна- комых с предметом. То есть вы уже должны иметь представление о контрольных точках Х(!КВБ, последовательностях узлов (Ьпотз) и вырезании (спшш!пя) кривых.

Если вы еще не имеете таких знаний, обратитесь за помощью к следуюгцим руко- водствам; ° Фарии Джеральд (Рапп бега!д Е.), Сцгоез алг! Вит~асез /от Сотригет-АЫе3 Сеотеггтс 1)езКп, РоцггЬ Ег!!г!оп, Бап П!сяо, СА: Асадегп!с Ргезз, 1996; ° Фарии Джеральд (Рапп, бега!а Е.), Аг(ГВВ Сикоев алг! Зитуасегкутогл Рте)есгив Сеотепу го Ртасйса! (гзе. тдгеИез!еу, МА: Л. К. Ретегз 1.гг!., 1995; ° Фарии Джеральд (Рапп, бега!6 Е., ег[!тог), 1»'(уйВВ [от Ситце апг1 5ит~асе йеяял, Яос!ету 1ог 1пг!цзгг!а! апг[ Арр!!ед МаГЬешат1сз, РЬ!!ас[е!рЬ!а, РА, !991; ° Хосчек Джозеф (НозсЬеЬ, [озе() и Дитер Лессер (1)!егег Еаззег), Риис(атепгай оу Сотлрцгет АЫег1 СеотлегПс Т!еядп. У»гейез[еу, МА: Л.

К. Регегз Егг!., 1993; ° Пигл Лес (Р!ей!, 1.ез) и Уэйн Тиллер (»Чаупе Т!!!ег), ТАе А11ГйВ5 Воо)с Лев Уогй, ХУ: Брг!пдег-Уег1ая, 1995, ПРИМЕЧАНИЕ Некоторые термины, употребляемые в этой главе, могут выступать в несколько ином значении относительно другой литературы по сплейнвм, кривым н поверхностям, поскольку полное со. гласне среди практиков в этой области не достигнуто. Вообще говоря, терминология здесь оп твлкнвается от возможностей Орепбц Например, вычнслнтелн Ореппь всегда опираются нз кривые Безье; в целом же вычислитель вправе использовать произвольный базис, Вычислители Кривая Безье — это векторнозначная (уес1ог-ча!пег[) функпия одной переменной: С(и) =- [Х(и) У(и) Х(и)), Вычислители 441 где и изменяется в некоторых прелелах (скажем, в интервале (О, 1]).

Лоскут (рагсЬ) поверхности Безье — это векторнозначная функция двух переменных: В(и,о) - [Х(и,о) ьг(и,о) Е(иго)]. где и и о варьируются в некоторых пределах. Область не обязательно должна выть трехмерной, как показано здесь. Вы вправе применить двухмерный вывод и[я кривых на плоскости или координаты текстуры, или же четырехмерный вывод для передачи ВОВА-информации. Даже одномерный вывод может иметь смысл для градаций серого. )ьпя каждого значения и (или и и о, в случае поверхности) формула лля С() (или 5()) вычисляет положение точки кривой (или поверхности).

В этом случае вычяслители сначала определяют функцию С () или 5 (), включают ее, и затем уже обращаются к команде к1Еча1Соога1О или а1Еча1Соогд2О вместо Крег(ех'и. 3десь вершины кривой или поверхности могут использоваться, как и любые друще вершины, например, для формирования точек или линий. Кроме того, другие команды автоматически генерируют серию вершин, образуюгцих однороднуго пе[)иодическую сетку по и (или по и н о). Одномерные и двухмерные вычислители действуют аналогично. А поскольку одномерный случай проще для понимания, уждение мы начнем именно с него.

дномерные вычислители агом подразделе прелставлен пример использования одномерного вычислите- для рисования кривой. Приьгер включает в себя команды и уравнения, управющие вычислителем. ример: простая кривая Безье рограмма, приведенная в листинге 12.1, рисует кубическую кривую Безье по чеем контрольным точкам, как показано на рис. 12.1. Рис. 11.1.

Кривая Безье миг 12.1. Кривая Безье для четырех контрольных точек: Ьехсигче.с Воат сгг1ро!пга [4] [3) = ( ( -4,0, -4.0, 0.0), ( -2.0, 4.0, 0.0), [1.О, -4.Е, О.Е). (4.Е, 4,О, Е.О)); 14 1п11(чо1д) 11(1еагоо1ог(в.о, 0.0, О.Е, О.Е): продопженое,п 442 Глава 12 ° Вычислители и П[[]МВБ Листинг 12.1 (продолжение) 815Пабеиобе1(6С ЕСАТ); 81иар11(6С НАР1 ЧЕМТЕХ 3, 0.0, 1.0. 3, 4, астг)ро1пСь[0][0]); 81Епап)е(61 МАР1 ЧЕМТЕХ 3); ) чо]б 6(ьр1ау(чо)б) ( 1пс 1; 81С(еаг(61 СОСОН ВОЕЕЕН В[Т); 81Со1огЗГ(1.9, 1.0, 1.0); 818е81п(6с с]МЕ 5ТМ1Р); Гог (1 = 0; 1 <= 30; 1++) 91Еча1Соогб11((6С11оаС) 1/30.0); 81Епб(); /' Код, отображающий контропчные точки '/ 81Ро1пС5(ге(5.9); 81Со1ог31(1.9, 1.9, 0.0); 818еа]п(61 Р01МТ5); Гог (1 = 0; 1 < 4; 1++) В[Чегеех31ч(астг1ро1пеа[1][0]): 81Епб(); 81Е1иьП(); чо(б геаларе(1пС и, 1пС П) ( 81Ч(еирагС(8, 9. (6(ь1се)) и, (6181се1) П); В\На(г(хиобе(6С РНО)ЕСТ10М); 81(оабЕбепС(Су(): 11 (и <= П) 810гСПо(-5.8, 5.9, -5.9*(6СГ]оас)п/(611[оат)и, 5.9'(6СЕ)оаС)П/(6(Г)оаС)и, -5.0, 5.0); е1ае 910<СПо(-5.9*(611)оаг)и/(611[оаС)П, 5.8"(6111оаС)и/(6111оаС)П, -5.0.

5.0, -5.9, 5,0): 81иаСг(хиобе(6С НООЕСЧ1ЕИ); а[Соаб]бепС(гу(); (пс юа1п((пС агВс, слаг** агйч) ( 81ЧС1п11(аагвс. агйч): 81иС[п1СО(ар1ауиобе(6СОТ 51МОСЕ [ ОСОТ М68); 81оС1п1СИ(пбои5(ае(509, 500); 81ЧС1п1СИ(пбоиРо<111оп(100, 190); 91цССгеатеИ1пбои(агвч[9]); (п(С(); 81иС01ар1ауропс(б(ьр(ау); 81отйеалареропс(геаларе); 81отиа1пСооР(); гетогп 0; Вычислители 443 Кубическая кривая Безье описывается четырьмя контрольными точками, в на- шем примере — массивом ссг1ро(пса [) [). Этот массив подается на вход про- цедуре В1нар11(). Другие ее аргументы следующие: 6! МАР1 НЕДТЕХ 3 Устанавливает, что используются трехмерные контрольные точки и что должны быть образованы трехмерные вершины 0.0 Нижнее значение параметра и Верхнее значение параметра и Количество значений с плавающей точкой в данных между последовательными контрольными точками 1.0 4 Порядок сплайна, то есть порядок кривой плюс 1: в нашем случае степень кривой равна 3 (кубическая) Ыг(ро(ли(ОЦО) Указатель на данные первой контрольной точки Заметьте, что второй и третий аргументы управляют параметризацией кривой— диапазон переменной и (от 0,0 до 1,0) соответствует всей кривой от ее начала до конца.

Вызов В1Епаб(е() разрешает применение одномерного вычислителя для трехмерных вершин. Кривая рисуется процедурой си зр1ау() — ее частью между командами В1ВеВ1п() х В1Еп6(). Поскольку вычислитель включен, команда В1Еча1соог61т() просто влечет вызов В1Не г тех () с координатами вершин кривой, соответствующих вход- кому параметру и. Определение одномерного вычислителя и вычисления для него Многочлен Бернштейна степени и (или порядка и ч- 1) выглядит следующим образом В,"(и) = — и' (1 — и)" Если Р,. — это набор контрольных точек (одномерных, двух-, трех- и даже четы- рехмерных), уравнение С(и) = ~~ В,"(и)Р,. представляет кривую Безье, где и изменяется от 0.0 до 1.0. Чтобы представить эту ке кривую, но с диапазоном для и от и, до и,, вычислим с(" "' ).

чо!6 В1наР1[[с[)((т[.епцш (агап ТУРЕ и1, ТУРЕ и2, 6).шт хтгЫе, (х).[пг оптег, сопл( ТУРЕ "рот1з); Определяет одномерный вычислитель. Аргумент гагйег задает, как представ- ляются контрольные точки, как показано в табл. 12.1, и тем самым указывает, сколько значений соответствует массиву роиих Эти точки могут быть пред- Команда В1нар1() определяет одномерный вычислитель, используемый для этих вычислений.

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

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

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