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

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

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

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

Для 61оО! вк() и 61иРагт! а10! в к() (диска) сторона с положительным значением г является наружной. тоЫ 61иОи ао г ! ей о гюа1з(СШццаг)г(сОЬ)»доЬ~) С1 епшп поппа(л); Для квадратичного объекта ()оЬ) аргумент «нормали» (пег»па)л) — 600 йОМЕ (по умолчанию), 610 Р(АТ или 6(0 5НООТН. Функция 61иОоао г ! сйогюа1з () используется для указания того, где генерируются векторы нормалей. Константа 6(0 МОНЕ означает, что нормали не генерируются, и нацелена на использование без освещения.

Константа 6 с 0 Р ЕАТ соответствует одной нормали на поверхность — это часто предпочтительно для имитации освещения с «плоским» затенением. При задании 6(0 5НООТН генерируется одна нормаль на каждую вершину квадратичного объекта; такой вариант подходит для освещения с плавным затенением. чоЫ 61цйоапг!стех(иге(С(.()г)наг)г!со)) 'доЬ), С) Ьоо!сап ГехтагеСооп6); Для квадратичного объекта доЬ1 аргумент ГехсигеСоопй задается равным 6с ЕА(5Е (по умолчанию) или 6( ТРОЕ. В последнем случае для квадратичного объекта генерируются координаты текстуры. Манера, в которой это делается, зависит от типа квадратичного объекта.

434 Глава 11 ° Мозаичное представление н поверхности второго порядка Квадратичные примитивы Следующие подпрограммы непосредственно генерируют вершины и другие данные, составляющие квадратичный объект. Во всех случаях аргумент с7оЬ)' ссыла. ется на квадратичный объект, созданный вызовом к1оиенйово г1с () . чок) к1о5рлеге(СШс)пабг1сОЪ) *с)оЬу, 01с1опЫе гайик, 01.(пт йсет, СЫпт ьтасЬг); Рисует сферу с заданным радиусом (гайиг), с центром в начале координат (О, О, 0).

Вокруг оси г сфера разбивается на элементы гйсез (подобные географической долготе), а вдоль оси г — откладывается количество згасЬз (аналог географической широты). Если координаты текстуры генерируются средствами квадратичного объекта, г-координата принадлежит диапазону от 0.0 при г - — гайиз до 1.0 при г = гойи, и г наращивается линейно вдоль продольных линий.

При этом значение я лежит в диапазоне от 0.0 для оси +у, до 0.25 — для оси +х, до 0.5 — для оси -у, до 0.75 †д оси -х и назад до 1.0 — для оси +у. чек) я1оСу11 пает(01Л)с)пж)псОЪ) 'аоЬ) СЫоцЫе ЬаиЯайиз, СЫопЫе горЯайиг, 01х)опЫе Ье(йЬг, Свйпс сйсед 0?гпг згасЬз); Рисует цилиндр, ориентированный вдоль оси г, с основанием г = 0 и верхней гранью в г = Ье1яЬг. Подобно сфере, цилиндр разбивается на гйсез вокруг оси г и вдоль этой оси откладывается количество згасЬз. Аргумент ЬазеЯайиг — это радиус цилиндра в основании (г - 0).

Аргумент горЯайиз — радиус цилиндра в его верхней точке (г - Ье1яЬг). Если значение горЯайиз равно О, генерируется конус. Если координаты текстуры генерируются средствами квадратичного объекта, г-координата изменяется линейно от 0.0 при г - 0 до 1.0 при г = Ье(яЬг. Координата з текстуры генерируется так же, как для сферы. ПРИМЕЧАНИЕ Цилиндр не «закрывается» нн сверху, нн снизу, то есть диски в основаннн н в верхней точке не рисуются. чек) я1о01 зК(01Л)опас1ПсОЪ1 'с)о1у', 01х)онЫе 1ппегЯайиз, СЫопЫе оисетЯадла 01апс зЬсеж 015пт ппдз); Рисует диск в плоскости г = 0 с радиусом оигегЯайиз и концентрическим круговым отверстием радиусом (ппегЯайих Если 1ппегЯайиз равен О, отверстие не создается.

Диск разбивается вокруг оси г на количество «ломтиков» йоши (подобно ломтикам пиццы), а вдоль оси г — на концентрические кольца (ппяг). С учетом стандартной ориентации сторона +г диска считается наружной, то есть любые генерируемые нормали указывают в направлении +г. Иначе нормали направлены в направлении -г. Если координаты текстуры генерируются средствами квадратичного объекта, они изменяются линейно таким образом, что В - оитегЯайид значения координатз и гпри (К, О, 0) равны (1, 0.5), при (О, К, 0) — (0.5, 1), при ( — К,О, 0)— (О, 0.5) и при (О, -Е, 0) — (0.5, 0). Поверхности второго порядка: сферы, цилиндры и диски 435 чоЫ 81цраг11а10! ьК(С1Л3с[паг[г]сОЬ] "гуо]]], С(.допЫе [плешах[[из, С(х]опЫе оигегяааг[ць, С].[пг ь!]сеь, С(зп( плдь, С[к[оп Ые ьгакАп8(е, С)х[опЫе ьзвеерАпя]е)] Рисует неполный диск в плоскости з = О.

К неполному диску применимы те же термины, что и для полного диска: оисегйаг([из, тпегйаг((иь, ь[(сеь и ппяь. Разница только в том, что неполный диск рисуется от начального угла ьгаггАпд]е до ь(агГАпя]е + ьгееерАп8]е (ь(аг(Апре и ывеерАпфе измеряются в градусах, где 0' это осъ +у, 90' соответствует оси +х, 180' — ось -у и 270' — ось -х). Ориентация и координаты текстуры для неполного диска определяются аналогично полному диску.

ПРИМЕЧАНИЕ Дпя всех квадратичных обьектов лучше использовать *Наб!иь, Ье!ОП( и подобные параметры дпя масштабирования, чем команду д]бса)е*(], чтобы сгенерированные единичные нормали не приходилось нормализовать снова. Задавайте значения аргументов ппйь и ьтасхь отличными от 1 с целью лучшей гранупярности при расчете освещения, особенно если материал обладает высоким альбедо. Листинг 1[А показывает рисование каждого из квадратичных примитивов, а так- же влияние различных стилей. Листинг 1$.4. Квадратичные объекты: (]пзбг[с.с Ф11пбет САЕСВАСК а)е11пе САССВАСК Еепб]т 6[юпс ьсагсс(ьт; чо(б САССВАСК еггогса11Ьаск(6(епив еггогСобе) ( СОПЬ1 6СОЬУ1Е 'ЕЬСГ(ПВ; еьтг]пх = 91цЕггогьтг1пх(еггогсобе); 1Рг1п11(ьсбегг, "Ошибка хь)п", еь1г!пх); ех11(8): ) чозб 1п!1(чозб) ( 6(ечцабг1сОЬ3 'Ооо]; 6111оат ват авЫепт[] = ( 0.5, 0.5, 0,5, 1.9 ); 6((1оас ва1 ьреси1аг[] = ( 1.9, 1.9, 1.0, 1.9 ]; 6(11оат ват ьизп(пеьь[] = ( 58.0 6С11оат 11ВЬ1 роь]1(оп[) = ( 1.9, 1.8, 1.8, 0.9 ); 6СР]оаС вобе1 авЫепт[] = ( 0.5, 8,5, 8.5, 1.0 ); В161еагсо1ог(9.8, 8.0, 9.0, 9.0): 61иатег1а11ч(6( ЕЙОМТ, 6С АМВ1ЕМТ, ваг авЬзеп(); 91иа1ег!а1(ч(6С РНОМТ, 61 5РЕСОСАК, ва1 ьреси1аг); 91натег!а1(ч(6с гноит, 6( 5н1М1ме55, ват ьп1п! пеьь): 91(1ВЫтч(6С 116НТВ, 6С Р05]Т10М, 1!ВП1 РОЬз11оп); В]с)хи!небе]гч(6( 116нт нооес АНВ]ейт, вобе1 авыепт); продолжение Р Листинг 11.4 !продолжение) 91Е»аЫе(6С !16НТ1й6); 91Е»аЫе(6( !16НТВ); 91ЕпаЫе(6! ОЕРТН ТЕ5Т); / к Создает 4 списка отображения по числу квадратичных объектов.

Демонстрируются различные стили рисования и описания нормалей к поверхности '/ зтаг!С!зС = 916епН з!з(4); Оо»1 = 91ийендоабгтс(); 91идиабгтсса!1Ьасх(цо»1, 610 ЕРМОМ, еггогСаПЬаск); 91иОиабг!сОган5(у1е(цо»), 6!О Р?СС); /' плавное затенение */ В?иОиабгтсйогва1з(цоЬ), 6(0 5йООТН); 91йен!тзт(зтагс(тзт, 61 СОНР?СЕ); 91и5р»еге(поо), 0.75, 15, 19); 91Епб!тзт(): 91иОиабгтсрган5171е(цо»), 6(0 Р?СС); /' плоское затенение '/ В?иднабгтсйогва?з(йо»1, 610 РСАТ); 9!йенс!зт(з!агсстз!ъ?, 6( СОМР?се); 81ису1тпбег(цо»1, 0.5.

0.3, 1.0, 15, 5); 91Е»ос!5!(); 91оОиабгтсОган5су1е(роь?. 610 с?ме); /' каркас */ 91иОыабгтсМогва1з(поЬ?, 6(0 йОМЕ); 91йен(тз!(зтаг!Стзсе2, 6! СОНР?СЕ); 91оОтзх(йо»1. 0.25, 1.0, 20, 4); 91Е»б(ты(); 91иОиабг!срган5171е(цоь). 6СО 51(НООЕТТЕ); 91ибоабг!сйогва1з(цо»1, 6(0 МОНЕ); 9!Меч(тзт(з!агт!!з1+3, 6( СОНР?!Е); 91иРагтта10тзх(поЬ), 9,8, 1,0, 20, 4, 0.0. 225.8); 91Епб!.!зС(); уо!б о!яр!ау(хо!о) ( 91С1еаг(61 СОСОК ВОРРЕР 81Т ) 6С ОЕРТН ВОРРЕМ 81Т); В!Роз»натгтх(); 91Е»аЫе(6! С?6НТ?М6); В!5»абейобе?(6( 5НООти); 91тгапз1атег(-1 8, -1.9, 8.9); 91са11!!зс(зсаг!стас); 915»абеиобе1(6С РСАТ); В?Тгапз1атег(9.0, 2.0, 0.0); 91Риз»натгтх(); 91йоса!ет(390.0, 1.0, 0.9, 0.9); 91са11С! зт (з!аг1(! зт+1); 91Рорнатгтх(); 436 Глава 11 ° Мозаичное представление и поверхности второго порядка Поверхности второго порядка: сферы, цилиндры и диски 437 910! ааЬ?е(6С С?6НТ?Н6); 91Со1ог3((9.9, 1,0.

1.9): 91тгапа1а(ег(2.9, -2.0, 9.0); 9?са? «(аС(а(агСС(а!+2); 9?со?огзг(1.9, ?.О, О,в); 9?тгапа?эта!(0.0, 2.9, 0.0); 91Са11?(аС(а(агСС(а!+3); 91Рориа(г(х(); 91Р105Ь(); ) чо(б ге!ларе(!пС и, чпС П) ( 91ч'!пирог((9, О, (6С5(се!) и, (669!се!) П); 91Ма(г(хнобе(6С РЯО!ЕСТ?ОМ); 91Соаб?бепС!Су(); (г (и <= и) 910гтпо(-2.5, 2.5, -2,5*(6С(1оаС)п/(6?(1оаС)и. 2. 5' (6С(1оэС) П/ (6С(1оаС)и, - 19. О, 10. 0); е1ье 910гСПЬ(-2.5*(6С(1оаС)и/(6?(1оаС)П, 2,5'(6с(1оас)и/(6с(1оас)п, -2.5, 2.5, -19.0, 10.9)! 91Ма(г!кнабе(6С МООЕСЧ?ЕИ); 9?Соаб?бепС!Су()! чочб кеуьоагб(оп!!Епеб спаг кеу, чпс х, (пс у) ( 5и(ССЬ (Кеу) ( саае 22: ех!С(0); Ьгеах; (пС еа(п(чпС агвс, слаг" агвч) ( 91ЬС?п!С(йагвс, агвч); 91ЬС?п!СО!ар1ауМобе(ОСОТ 5?ИССЕ [ 6СОТ 969 [ 6СОТ ОЕРТН); 91ЬС?пчСИ(пбои5!се(599, 500); 91оС ?и! СИ! пбоиРоа! С! оп( 100 .

100): 9?оссгеасей(обои(агах[9)); !п(с(); 91ЬСОчар1ауропс(б!ьр1ау)! 91ЬСяеапарегопс(геьларе); 91ЬСКеуооагбгопс(хеуооагб). 91исМа(псоор(); гесогп О; Вычислители и й0кВ5 439 На самом низком уровне аппаратные средства рисуют точки, отрезки линий и многоугольники — обычно треугольники н четырехугольники. Гладкие кривые и поверхности рисуются аппроксимированными большим числом маленьких отрезков или многоугольников. Тем не менее многие полезные кривые и поверхности могут быть описаны математически небольшим числом параметров, таких как контрольные точки.

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

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

Это практически все сплайны и сплайновые поверхности, применяемые сегодня, в том числе В-сплайны, Ы(1ВВ5- (Хоп-()пЫогш Кайопа! В-Зр11пе — неоднородный рациональный В-сплайн) поверхности, кривые и поверхности Безье и сплайны Эрявта (Негппге). Поскольку вычислители предоставляют только низкоуровневое описание точек кривой или поверхности, они обычно используются ввышестояшими» библиотеками инструментов, обеспечивающими интерфейс программирования более высокого уровня.

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

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

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