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

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

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

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

Кроме того, есть несколько других команд, которые разрешено помещать между операторными скобками д1Вебзп() и 61Епо(). В табл. 2 а приведен полный список таких команд. Никакие другие команды ОрепС(. ие могут находиться между операторными скобками В1Вебт и () и к1Е по (), и вызов большинства из иих приведет к возбуждению сообщения об ошибке.

Использование некоторых команд массивов вершин, Описание точек, линий и многоугольников 59 Таблица 2.3. Команды, допускаемые между операторными скобками д! Вед)п() и 9!Епб() Демствие Глава Команда Глава 2 Глава 4 Глава 4 Глава 9 9(Уегсех*() 9(СО(от*() 9((поех*() 9(5есопдапгСо(ог*П Устанавливает координаты вершин Устанавливает ВВВА-цвет Устанавливает индекс цвета Устанавливает вторичный цвет для приложений с посттекстурнрованием Задает координаты вектора нормали Задает свойства материала Устанавливает координаты тумана Устанавливает координаты текстур Устанавливает координаты текстур для мультнтекстурировання Управляет рисованием границ Извлекает массив вершин Генерирует координаты Выполняет список отображения 9(иоппа1*() 91Матепа(*() 9(ГодСоогд*() 91ТехСоогд*() 9(Мц(11техСоогд*Ц Глава 2 Глава 5 Глава б Глава 9 Глава 9 9(ЕодеР(ад*() д(АгтауЕ(епзепс() д(ЕчаКоооп1*(), 9(Еча(Розит*() 9Кай(!510, 9Кдй(1515() Глава 2 Глава 2 Глава 12 Глава 7 Однако это касается только команд ОрепОГ..

Между 91Веб! и () и ВТЕпс! (), конечно, не запрещается вставлять любые конструкции языка программирования (за исключением вышеупомянутых 91Х» () ). Например, листинг 2.4 рисует окружность. Листинг 2.4. Языковые конструкции между 91Вед1п() н 91Епс)о Лбет!пе Р1 3.1415926535В98 61!пт с!гс1е ротптз = 100; 91Вебтп(ВС С1НЕ СООР); тог (т = О. ! < стгс1е ро!псз; !»») апй1е = 2*Р1*1/стгс1е ро!птз; 91уегтех21(соз(апв!е), з!п(апй1е)); 91ЕпоО; ПРИМЕЧАНИЕ Метод рисования круга, приведенный в листинге 2М, не самый эффективный, особенно если контур нужно рисовать часто.

Конечно, графические команды довольно быстры, но в данном коде для каждой вершины вычисляются углы и обсчнтываются яп() и соз(). Кроме того, добавляются затраты на выполнение цикла. )дтугим способом вычисления вершин окружности является использование команд ВЕК (См. раздел «Поверхности второго порядка; сферы, цилиндры и диски» в главе 11). Если нужно нарисовать несколько окружностей, вычислите координаты вершин один раз и сохраните их в списке отображения (см. главу 7) или используйте для рисования массив вершин.

Все команды 91уегсех» () должны находиться между операторными скобками 91Веб! и () и 91 Ело О, если только они не образуют список отображения. (Их использование в любом другом месте не даст никакого эффекта.) Если они образу- таких, как 91Епао(еС1!еп151асеО и В(уегтехРо!псегО, между 91Веб!и() и 91Епо О приводит к непредсказуемым результатам, но ошибок не генерирует, (Также непредсказуемыми результатами опасны команды 91Х» О.) Подобных ситуаций следует избегать, так как локализация ошибок довольно трудна. 60 Глава 2 ° Управление состоянием и рисование геометрических объектов /* ыептый */ /* синий '/ Управление основными состояниями В предыдущем разделе вы видели пример параметра состояния — текущий ГсСВА-цвет и то, как он связан с примитивом.

ОрепСЕ поддерживает много состояний и параметров состояний. Объекты могут быть отображены с освещением, текстурированием, удалением скрытых поверхностей, туманом и другими состояниями, влияющими на их вид. По умолчанию большинство зтих состояний отключено. Их включение может быть довольно затратным. Например, включение карты текстур почти наверняка замедлит процесс построения примитива. Однако качество изображения повысится, и рисунок будет выглядеть более реалистичным вследствие расширения графических возможностей. Для переключения большинства состояний используются две простые команды; чо(с( 91ЕпаЫе(С1.епшп сар); чо!с) 910! заЫе(С1.епиш са)з); 91ЕпаЫе Π— включает возможность, а к10! 5а01е() — выключает.

Более бО значений могут быть параметрами к1ЕпаЫе О и я10! 5аЫ е О. Например, 6с Всенв (управляющее смешиванием ксВА-цветов), 6( Верти те5т(управляющее сравнением глубины и обновляющее буфер глубины), 6( Р06 (управляющее туманом), 6( с1не 5т1РРсе (прерывистые линии) и бс (16нт1н6 (управляющее освещением). ют список отображения, то исполняются лишь между 91Вея!и() и к1Епп(). (См. главу 7 для получения информации о списках отображения.) Заметьте, вершины генерируются только при использовании команд к1Че гтех «() .

Во время вызова к1Че гтех «() ОрепСЕ связывает получившуюся вершину с ин- формацией о текущем цвете, координатах текстуры, векторе нормали и т. д. По- смотрите на код, приведенный ниже. Первая точка рисуется красным, вторая и третья — синим, несмотря на другие команды, определяющие цвет: 919ез!п(6( Р01нТ5); 91Со1ог3!(8.8, 1.0, 0.0); /' зеленый '/ 91Со1ог3!(1.8, 0.0, 8.0); /* красный*/ 91чегтек(...); 91Со1огзг(1.8, 1.8, 0,8); 91Со1ог3!(8.8, 8.8, 3.8), Г,1Чеггек(...): 91Чегсех(. .): 91Епп(); Вы вправе применить любую комбинацию всех 24 вариантов команды к1Че гтех' () между 91ВеВ)п() и 91Епд(), хотя в реальных приложениях для всех вызовов достаточно одного внда. Если ваши данные о вершинах последовательные и по- вторяющиеся (например, я1601ог«О, 91Чегсех«(), к1601ог«(), к\Чегтех«О, ...), можно увеличить производительность программы за счет массивов вершин.

(См. раздел «Массивы вершины) Отображение точек, линий и многоугольников 61 Также можно проверять текущее значение параметра состояния командой СБЬоо1еап к11зЕпап?ев(С? епшп сараЬ!ЙГу); Возвращает значение 61 ТРОЕ или 6? РА?5Е, в зависимости от того, включена или выключена интересуюшая возможность. Состояния, которые вы уже видели, имеют всего два значения: включено и выключено.

Однако большинство команд ОрепС1. устанавливает для параметров состояния более сложные значения. Например, команда Р\Со1огЗГ () устанавливает три значения, являющиеся частями состояния 6? СОРРЕМТ ЕО?ОР. Существует пять команл для опроса таких состояний; чоЫ к?бегбоо)еапч(С?епи!и рпате, С?Ьоо!еап "рагатз); чоЫ к10ет1птекегч(С?еппш рпате, С1.!пг "рагали); чоЫ в16егР)оагч(С?.еппш рпате, С1Йоа? "рагг«тз)! чоЫ к16егооип?еч(С1еппп! рпате, СЕЙ!!Ые "рагатз); чоЫ к10егРо! лтегч(СБепшп рпате, Сьчои1 ""рагапи); Получает тип параметра состояния: логический (Ъоо1сап), целый (шгеяег), с плаватошей запятой (Йоагшй-ро!пг), вещественный с двойной точностью (г?опЫе-ргес1з?оп) илп указатель (ро!пгег).

Параметр рпате — символьная константа, определяющая параметр состояния, а рагатз — указатель на массив указанного типа, в котором сохраняются составные параметры состояния. В таблицах в приложении Б перечислены значения параметра рпате. Например, для получения текущего РСВА-цвета таблица в приложении Б указывает, что нужно использовать я!Оег1пгекегч(61 ЕОРРейт ЕО?ОР, рагатз) иди к16еГР1оатч(О? ЕОРРЕМТ СО?ОР, рагатз). При необходимости выполняется преобразование типов для того, чтобы вернуть значение требуемого типа. Эти команды управляют большинством, но не всеми запросами информации состояний. (См.

раздел «Команды запроса> в приложении Б для получения информации о дополнительных 16 командах запроса.) Отображение точек, линий и многоугольников По умолчанию точка рисуется как одиночный пиксел на зкране, линия рисуется сплошной, толщиной в один пиксел, а многоугольники рисуются со сплошной внутренней заливкой. В следующих разделах показывается, как можно изменить эти режимы по умолчанию. Подробно о точках Для изменения размера отображаемой точки используется команда к1Ро ! и ! 5 ! ге О, аргументом которой является нужный размер в пикселах. чоЫ к1Ро!пг5гге(С?Йоаг хате); Устанавливает ширину рисуемой точки (в пиксслах).

Переменная яге должна быть больше 0.0 и по умолчанию принимается равной 1.0. 62 Глава 2 ° Управление состоянием и рисование геометрических объектов Реальное число пикселов на акране, которые подсвечиваются для точек различ ной ширины, зависит от того, включен или отключен режим устранения ступен чатости. (Устранение ступенчатости — технология сглаживания точек и линий в время рисования.

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

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

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