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

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

PDF-файл М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006), страница 101 Инженерная графика (39024): Книга - 5 семестрМ. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006): Инженерная графика - PDF, страниц2019-05-11СтудИзба

Описание файла

PDF-файл из архива "М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006)", который расположен в категории "". Всё это находится в предмете "инженерная графика" из 5 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 101 страницы из PDF

Когда функция ХТ)ВВЗ обнаруживает ошибку, вызывается функция )л, которой передается код ошибки в качестве единственного аргумента. Значение для епп>гСос(е — зто одна из 37 ошибок, именованных от 6СО йОКВ5 ЕККОК1 до 6СО йОКВ5 ЕККОК37. Используйте 51ОЕггог51г!пк() для получения содержательного описания кода ошибки. В листинге 12.5 для обработки всех возмо>кных ошибок зарегистрирована процедура пцгЬ5Еггог(): чо!а СА((ВАСК пагозеггог(6(епцш еггогСоае) ( Сале! 6СОЬУ1Е *ЕЗ1Г!ПВ; езсг!пв = З1цбггог5(г!пб(еггогсоае); трг!псг(зсаегг, "Ошибка нокВ5: ъз>п", езсг!пв); ех!1(0). ) Интерфейс ХОКВ5 библиотеки 6Е0 459 В версию СШ 1.3 включены дополнительные функции обратной связи Х() КВЯ, возвращающие программе значения, полученные при мозаичном разбиении (вместо воспроизведения этих значений).

За подробной информацией о новых вызовах обращайтесь к разделу «Получение примитивов с выхода тесселятора ХБКВЗ». СОЗДаНИЕ МОКВс'-КРИВОЙ ИЛИ ПОВЕРХНОСТИ При построении ХПКВБ-поверхности функция В(оногвэ5огтасе О вызывается иежду командами-скобками В1овеВ1п5огтасео и а1иЕпа5ог(асео, Обрамляющие подпрограммы сохраняют и восстанавливают состояние вычислителя. чоЫ В1оВея1п5огтасе(С1Л1пцгЬзОЬ) "логу); чоЫ а1оЕпа5ог(асе(СЬПпцгЬзОЬ) *по)3) После вызова В1ЧВех1п5ог(асеп делается один или более вызовов х1оиигЬэ5огтасе(), описывающих атрибуты поверхности.

Среди них должны присутствовать команда с указанием типа поверхности (6( МАР2 ЧЕКТЕХ 3) и команда для генерации вершин (6( мАР2 чеРтех 4). команда В1оеп05огтасеО завершает описание поверхности. Усечение ХПКВЯ-поверхностей также производится в пределах между В1ивех1п5игтасе О и х1оЕпа5иг Гасе О. (См. раздел «Усечение ХПКВВ-поверхностей».) чо!г( я1омогвэ5огтасе(СП5ппгЬзОЬ)' *лоб~, С)лп(шгпо( соил(, СЬ()оаг «иупо(, СЬ(пг оИпог соипг, 01йоа1 "Ылог, С1(пг и зггЫе, С?лпг о зггЫе, СЬйоас 'ст(аггау, С?зпт иоп2ег, Ссшт еоа(ег, Ссепцш йгре); Описывает вершины (или нормали к поверхности или координаты текстуры) ХПКВЯ-поверхности поЬ)'. Некоторые значения должны быть заданы для обоих параметрических направлений: и и ш такие как последовательности узлов (и)гпог и глгпог), количество узлов (и)гпог соил( и гепо( соил() и порядок много- члена (попашет и попашет).

Заметьте, что количество контрольных точек в целом не указывается. Оно выводится для каждого параметра как число узлов минус порядок, Соответственно, для полной поверхности число контрольных точек равно произведению числа контрольных точек в каждом параметрическом направлении друг на друга. Аргумент сг)аггау указывает на этот массив контрольных точек. Последний аргумент, гуре, — это один из типов двухмерных вычислителей. В общем случае вы можете использовать 6( МАР2 ЧЕРТЕХ 3 для рациональных и 6Е МАР2 ЧЕКТЕХ 4 для нерациональных контрольных точек. В вашем распоряжении и другие типы, такие как 6( МАР2 ТЕХТОРЕ СООКО ' или 6( МАР2 МОКМАЕ, для вычисления и назначения координат текстур или нормалей к поверхности.

Например, чтобы создать освещенную (то есть с нормалями) и текстурированную ХПКВЯ-поверхность, вам нужно сделать следующую последовательность вызовош В1оВеВ)п5огтасе(поЬ)); 51иногоэ5огтасе(поЬ),..., 6( МАР2 ТЕХТОКЕ СООКО 2); а1оиогвэ5огтасе(поЬ),..., 6( МАР2 КОРМА(); 51одигвэ5огтасе(поЬ),..., 6Е МАР2 ЧЕКТЕХ 3); а1оЕпа5огтасе(поЬ)); 4бо Глава 12 ° Вычислители и М0КВ5 Аргументы и з(нг(е и о з(иве представляют количество значений с плавающей точкой между контрольными точками в каждом из параметрических направлений.

В отношении этих параметров эффективен тип вычислителя, а также его порядок. В программе из листинга 12.5 значение и згпс(е равно 12 (4 х 3), поскольку имеется три координаты для каждой вершины (заданные 61 ИАР2 НЕКТЕХ 3) и четыре контрольные точки для параметра о; о з(пИе равно 3, так как каждая вершина описывается тремя координатами, а контрольные точки для параметра о в памяти являются смежными. Рисование Х()(СВЯ-кривой аналогично рисованию поверхности, с той разницей, что все вычисления относятся к одному параметру — и, а не к двум.

Как и для поверхностей, используются подпрограммы-скобки к1оВеВ1 псе гче О и я1оЕппсогче О. чоЫ В1оВеВ1 пСогче(С1 ПппгЬзОЬ) поЬЯ; чоЫ В1оЕпосогче(СЕУппгЬзОЬ) "поЬ>) После вызова В1оВеВ( пСогче() делается один или более вызовов 61опогЬзСо гче О, определяющих атрибуты поверхности. Они должны включать в себя указание типа поверхности (61 ИАР1 НЕЙТЕХ 3) или генерацию вершин (61 МАР1 НЕКТЕХ 4). Описание завершается командой к1НЕЬОСогчеО. чоЫ к1оиогвзсогче(СЕБппгЬзОЬ) 'ногу', С(зпс п)гпо( соип~, Сапа( *и(гной С(апг и з(пг(е, СЕНоаг *сГ(аггау, С(зп( иогг(ег, С епитп (уре) Определяет Х()ВВЯ-кривую для объекта поЦ.

Аргументы задаются аналогично В1опогЬз5ог(асе(). Заметьте, что здесь процедура требует указания только одной последовательности узлов и объявления одного Х()КВ3-объекта, Если кривая определена в пределах пары я1овеВ(пСогче()/В1иЕппсогче(), тип вычислителя может быть одним из допустимых для одномерных вычислителей (таким как 6( МАР1 ЧЕКТЕХ 3 или 6С МАР1 ЧЕЙТЕХ 4). Получение примитивов с выхода тесселятора (((3)сВБ По умолчанию тесселятор Х()КВВ разбивает Х()ВВ3-объект на линии и многоугольники, а затем их отображает. В версии С1() 1.3 появились новыс функции обратной связи, которые позволяют вместо отображения вернуть рассчитанные значения в программу. Чтобы воспользоваться этой возможностью, вызовите е1опогвзРгорегту О, установив значение 6С0 МОЙВ5 ИОВЕ для свойства ргорег(у и для оа(ие — 610 МОКВ5 ТЕ55ЕССАТОЙ.

Второй шаг: несколько вызовов я1оиогвзса11ЬасКО для регистрации функций обратной связи. чоЫ В1опигвзса11Ьаса(С1Л1ппгЬзОЬ) 'по(п', С1.еппгп шп|сй, чоЫ ('Уп)О); Аргумент поЬ~' — зто мозаично разбиваемый Х()ВВБ-объект. Аргумент гей(сй представляет именованный идентификатор функции обратной связи. Если значение свойства (ргорег(у) 6(0 МОКВ5 МОВЕ установлено в 610 МОКВ5 ТЕ55ЕССАТОЙ, допустимы 12 таких функций (в дополнение к 6С0 ЕККОК).

(Если свойство 600 МОКВ5 МОВЕ установлено в значение по умолчанию 610 м0ЙВ5 Йемрекек, допустим только режим 6с0 еккОЙ.) двенадцать функций обратной связи имеют следуюшие прототипы: Интерфейс МОРВВ библиотеки бс0 461 Чтобы изменить функцию обратной связи, вызовите 61инигЬВСа11Ьаск() с указанием другой процедуры. Чтобы удалить функцию обратной связи, передайте в й1инигЬВСа11Ьаск() нулевой указатель для соответствующей функции. Шесть функций обратной связи позволяют передавать в себя некоторые другие данные. Для задания пользовательских данных вам нужно сделать вызов В1инигЬВСВ11ЬасКОВСа(), | чо(г( 61инигЬВСа11ЬВСКОаса(СШпигЪВОЪ) ьпоЬ) чосб 'изегРата)! Аргумент поЬ|' — это мозаично разбиваемый )ь)()ВВЯ-объект.

Структура изет(а представляет данные, передаваемые в функцию обратной связи. Во время процесса тесселяции процедуры обратного вызова вызываются аналогично командам ОрепС1. й1вей! и(), 61ТехСоогб*(), 61661ог*(), 61Могюа1ь (), й1Чегсехь() и й1Елб(). В режиме 660 МОРВ5 ТЕ55ЕССАТОР кривая нли поверхность не отображаются сразу, а их данные вершин перехватываются и передаются в аргументах функций обратной связи. Демонстрируют применение функций обратной связи листинги 12.б и 12.7, являющиеся кусками программы зигРро! пса, с, представляющей собой модифицированный вариант программы зо г тасе. с.

Листинг 12.6 включает в себя инициализацию )ь)(тссВЯ-объекта — процедуру !п!с(). Для подготовки нужного режима устанавливается также параметр 6СО МОРВ5 МООЕ, н регистрируются функции обратной связи. Листинг 12.6. Регистрация функций обратной связи МОРВ5-тесселятора: зиг(ро(пСВ.С чо!6 тптС(чотб) I* Это только часть процедуры тптс() с исключением нескольких строк "I СпеногЬ = В1оМенМогЬьйепбегег(); В1имигьзРгорегсу(сьемогь, 6си мийВ5 нове, 6(0 мийВ5 те55ессдтой); В1онигььРгорегту(тпенигЬ, 6СО 5АМРПМ6 ТОСЕРАМСЕ, 100.В); Всоиогоьргорегту(тленогь.

610 щзРСАу йоОЕ, В1иногозса11Ьаск(тпеиогь, 6СО Еййой, погЬьЕггог); В1омогььса11ьаск(сьемогь, 6СО мийВ5 Ве61м, ьейтпса11ьаск); продолжение иь 6(0 МОРВ5 ВЕ61М 6(0 МОРВ5 ВЕ61М ОАТА 6(0 МОРВ5 ТЕХТОРЕ СООРО 6(0 МОРВ5 ТЕХТОРЕ СООй0 ОАТА 610 МОРВ5 СОСОР 610 МОРВ5 СОСОР РАТА 610 МОРВ5 МОРМАС 6(0 МОРВ5 МОРМАС РАТА 6(0 МОРВ5 ЧЕРТЕХ 6(0 МОРВ5 ЧЕРТЕХ ОАТА 6(0 МОРВ5 ЕМО 6(0 МОРВ5 ЕМО ОАТА чо(6 Ьеб! п(6(енот гуре) чоЫ Ь ей ! п(6(ел от суре, чоЫ *итегРаса) чоьб СехСоогб(6ЯоаС*ССгб) чоЫ Се хСоп г6(6(йоаС 'ССгб, чо!6 *итегРага) чоЫ со1о г(ЯЯоас *со(ог) чо(6 со1ог(6(йоаС со(ог,чо(6*итегРаса) чоЫ погва1(6(Раас *лт!) чоЫ погва1(6ьйоаС*пт(, чоЫ *итегРага) чоЫ чег(ех(6(йоаС*чеггех) чоъ6 че г тех(6(йоаС * чеггех, чоЫ 'итегРаса) чоЫ елб(чоЫ) чоЫ епб(чоЫ 'итегРага) 462 Глава 12 ° Вычислители и 0[0йВБ Листинг 12.6 (продолжение) В!ийигЬвСа11ЬасК(СПейигЬ, 600 ИОИВ5 НЕИТЕХ, чегтехСа11ЬасК); В1ийигбвса11Ьаск(СПейигб, 6СО ИОИВ5 ИОИНАС, погша1Са11Ьаск); В1ийигбвса11Ьаск(СПейигб.

660 йОКВ5 Ей0, епбСа11Ьаск); В листинге [2.7 показано применение функций обратной связи. Здесь пре/сложения рг!пс1() используются для вывода диагностических сообщений соответственно процессу построения объекта н возвращаемым данным для вершин. Кроме того, возвращаемые данные мозаичного разбиения повторно пересылаются в конвейер с целью выполнения обычного отображения.

Листинг 12.7. Применение функций обратной связи йй)йВВ-тесселятора: Вцг[росп(в.с чосб САССВАСК ЬейтпСа11Ьаск(6(епиш нптсПТуре) ( В1Вебтп(ип!сПТуре); /" директива повторной передачи на отображение '/ рг!пС1("61Вей!и("); внттсп (нП!сПТуре) ( /* вывод диагностических сообщений "/ саве 6( (1ИЕ5: рг!п(1("6С СХИЕ5) сп"); Ьгеак; саве 6С (1ИЕ СООР: ргтпС1("6( [1ИЕ СООР))п"); ЬгеаК: саве ВС СХМЕ 5ТЙ1Р: рг!пт1("6С С!йЕ 5ТИХР)1п"); Ьгеак; саве 6С ТР1Ай6СЕ5; ргт п(1("6[ ТИХАИОСЕ5) сп"); Ьгеа)с; саве 6[ ТИХАИ6[Е 5ТИХР: ргтпС1("6!.

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