OpenGL. Руководство по программированию (Библиотека программиста) (2006). Ву М., Девис Т., Нейдер Дж., Шрайнер Д (1124475), страница 3
Текст из файла (страница 3)
577 . 578 . 580 582 14 Содержание Преобразование вершин Преобразование нормалей Матричные преобразования Параллельный перенос Масштабирование Поворот . Перспективная проекция . Ортогональная проекция . Приложение Ж. Приемы программирования Правильное обращение с ОрепбЬ Приемы увеличения производительности Советы по применению ИХ....
Приложение 3. Ореп61. и инвариантность Словарь терминов... Алфавитный указатель 583 583 584 584 585 585 586 586 . 588 . 589 . 590 . 592 593 610 Моей семье — Фелвснтн, Максу, Саре и Скауту. Джеки Нейдер Г)).Х) Моей семье — Эллин, Рикки и Люси. Твм Дэвис (ТВР) Тому Деппнеру и Энди вап Даму, которые направили меня по атому пути, Мэйсон Ву <Мй') Моей семье — Викки, Бонна, Бобу, Сквигвлзу, Фантому, Тоби и Токсело. Дэйв Шрейнер (РЫ) Памяти Фила Карлтова Об этой книге Графическая система Орели — это программный интерфейс к графическому оборудованию (С) означает СгарЫсз ?аЬгагу — графическая библиотека).
Она позволяет создавать интерактивные программы, которые формируют движущие- ся цветные изображения в трехмерном пространстве. С помощью ОрепС1. вы мо- жете управлять технологиями машинной графики, создавая изображения реаль- ных объектов или воплощая другие плоды вашей фантазии. Это руководство объясняет, как создать ОрепСЕ-программу, результатом работы которой являет- ся желаемый визуальный эффект, Книга состоит из 14 глав.
Первые пять глав рассказывают, как строить правильно раскрашенные и освещенные объекты в сцене. ° Глава 1, «Введение в ОрепС», коротко описывает возможности ОрепС1.. Она также содержит простейшую ОрепСГ.-программу и излагает важнейшие программные аспекты, необходимые для понимания следующих глав. ° Глава 2, «Управление состоянием и рисование геометрических объектов», посвящена вопросам создания геометрического описания трехмерного объекта, рисуемого в сцене.
° Глава 3, «Визуализация», описывает процесс преобразования этих трехмерных моделей перед тем, как они будут нарисованы на двухмерном экране. Вы можете управлять преобразованиями для получения желаемого результата. ° Глава 4, «Цвет», объясняет, как определить цвет и метод заливки, используемые при рисовании объекта. ° Глава 5, «Освещение», раскрывает, как управлять условиями освещенности вокруг объекта, и описывает реакцию обьекта на освещение (то есть как он отражает или поглощает свет). Освещение — это важная тема, поскольку объекты обычно не выглядят трехмерными, пока их не осветят.
16 06 этой книге Остальные главы рассматривают, как оптимизировать или ввести дополнительные усложнения в вашу трехмерную сцену. Вероятно, вы не сможете оценить все преимущества дополнительных возможностей до тех пор, пока хорошо не освоите ОрепСЕ. Ссылки на эти главы даются в соответствующих местах книги. ° Глава 6, «Смешивание, сглаживание, туман и отклонение», описывает технологию создания реалистичных изображений: ильфа-смешивание (для создания эффекта прозрачности), сглаживание (для устранения зубчатых граней), атмосферные эффекты (для имитации тумана или смога) и смещение мпогоузольников (для удаления визуальных артефактов при высокой освещенности граней залитых многоугольников).
° Глава 7, «Списки отображения», описывает, как сохранить набор команд ОрепС1. для их повторного использования. Это необходимо для увеличения скорости ОрепС1.-программ. ° Глава 8, «Вывод пикселов, битовых образов, шрифтов и изображений», обсуждает работу с двухмерными объектами, такими как битовые образы или изображения. Типичное применение битовых образов — описание символов шрифтов. ° Глава 9, «Наложение текстур», показывает, как наложить одно-, двух- или трехмерные изображения, называемые текстурами, на трехмерные объекты.
Множество удивительных эффектов достигается наложением текстур. ° Глава 10, «Буфер кадров», описывает все возможные буферы, существующие в ОрепСЕ, и их использование. Буферы применяются для удаления невидимых поверхностей, маскирования, размытия и фокусировки резкости. ° Глава 11, «Мозаичное представление и поверхности второго порядка», показывает, как использовать функции разбиения и квадрирования в С1Х (ОрепС1. 1Л111су ЫЬгагу). ° Глава 12, «Вычислители и Х1ЖВБ», учит работе с дополнительной техникой эффективного построения кривых и поверхностей.
° Глава 13, «Выбор и обратная связь», объясняет, как используется механизм выбора в ОрепС1. для выбора объекта на экране. Кроме того, глава рассказывает о механизме обратной связи, позволяющем осуществлять доступ к информации, которую ОрепСЕ выводит при прорисовке и которую можно использовать при рисовании сцены. ° Глава 14, «Теперь, когда вы знаете многое», дает информацию о нестандартном использовании ОрепСЕ для получения интересных результатов. Эти приемы выработаны за годы с момента появления ОрепСЕ и его предшественницы 1К15 СгарЬ1сз 1зЬгагу от дайсон СгарЬ(сз. Кроме того, книга содержит несколько приложений, которые могут вам приго- диться.
Что нового в зтои издании 17 ° Приложение А, «Порядок выполнения операций», дает технический обзор выполнения операций ОрепС(., краткое их описание в порядке, в котором они выполняются при запуске программы. ° Приложение Б, «Параметры состояния», содержит список параметров, используемых в ОрепС1., и описывает их значения.
» Приложение В, «ОрепС1. и оконные системы», кратко обозревает библиотеку, управляющую оконными операциями, В пем обсуждаются оконные интерфейсы Х ЪПпдоч Яузге1п, Арр!е Мас1пгой, 1ВМ 05/2 и Мгсгозо1с ЪУ1пг1о~чз. ° Приложение Г, «Основы С1Л)Т: инструментальный набор пакета разработчика ОрепСВ», рассматривает библиотеку, управляющую операпиями оконной системы. Библиотека СШТ вЂ” машинно-независимая, и она позволяет создавать более короткий и понятный программный код. ° Приложение Д, «Вычисление векторов нормалей», объясняет, как вычислить векторы нормалей для различных типов геометрических объектов.
° Приложение Е, «Однородные координаты и матричные преобразования», акцентирует внимание на математических операпиях, скрытых за матричными преобразованиями. ° Приложение Ж, «Приемы программирования», содержит несколько основанных на замыслах проектировщиков ОрепСБ советов по программированию, которые вы можете счесть полезными.
» Приложение 3, «ОрепС1. и инвариантность», уточняет, когда и где при выполнении ОрепСВ-программ должны генерироваться точные значения пикселов согласно спецификации ОрепС1.. Наконец, небольшой словарь определяет ключевые термины, встречающиеся в атом руководстве. Что нового в этом издании Четвертое издание ОрепСЕ Ргоратттд Синуе включает в себя новый и обновленный материал, относящийся к ОрепС1. версий 1.3 и 1А: ° Новые возможности ОрепС1. 1.3: о мультивыборка; с строковый порядок матриц; о расширенное текстурирование, включая «кубические» текстуры, сжатые текстурные изображения, новые методы режима текстурирования (66 А00 и 66 СОИВ1ЯЕ) и новый метод сжатия текстур (66 С~АМР ТО ВОРПЕк). ° Новые возможности ОрепС1.
1А: с многократное рисование массива вершин; о спецификация положения растра, основанная не на внешних, а на оконных координатах; 18 06 этой книге о новая функциональность смешивания (Ыепг)!пй), в том числе разделение ЯСВ и альфа-смешивание; о координаты тумана, которые могут быть однозначно связаны с вершинами; о параметры точки, управляющие атрибутами отрисовки точечных примитивов; о вторичный цвет для приложений с посзтекстуризацией; о новые возможности текстурирования, такие как уровень дега.лизации для М!Р-текстур, автоматическое восстановление М! Р-текстур, режим текстурирования 6Е Н1РРОРЕП РЕРЕАТ и глубина текстур; о операции, которые позволяют «оборачивать» трафарет вокруг объекта, а не только привязывать его к минимальному и максимальному значениям.
° Ялро ОрепС!. было обновлено и приведено в соответствие с набором возможностей мультитекстурирования. ° Исправлены ошибки. Что необходимо знать перед прочтением Для того чтобы понимать содержание книги, нужно уметь программировать на языке С и иметь начальные знания по математике (геометрии, тригонометрии, линейной алгебре, дифференциальному исчислению и дифференциальной геометрии). Даже если у вас небольшой опыт в компьютерной графике или его нет совсем, вам должно быть понятно большинство разделов книги. Конечно, машинная графика — неисчерпаемая тема, поэтому вы можете дополнительно прочитать следующие материалы: ° Сотригег СгарЬ1ск Рппсгр1ел апг! Ргаспсе Ьу /отел 1).
Ро!еу, Апг/Пел пап !)ат, 5геоеп К. Ре!пег, апгЦоЬп Р Нифел (Ас1г/1лоп- Кел1еу, 1990). Эта книга — энциклопедия компьютерной графики. В нее входит огромное количество информации, но лучше читать ее, уже обладая опытом работы в этой области. ° .Ю Сотригег СгарЬ ~ел Ьу А пс1 ет 5. С!алгпег (Тбе Ьуопл Ргелл, 1994). Книга дает короткое нетехническое введение в компьютерную графику. Она больше ориентирована на визуальные эффекты, чем на технические проблемы их получения.' Другое замечательное место, тле вы можете получить практически любую информацию, — официальный веб-сайт ОрепС1.
На этом сайте находятся документация, консультации и новости. Это то место, откуда стоит начинать искать ответ на любой вопрос, возникающий при работе с ОрепС!.. Сайт расположен по адресу: ЬГЕр://ааа.орепд!.огд/. ' Рекомендуелг на русском языке: Хилл Ф. Орепбц Программирование компьютерной графики.
Для профессионзлои — Сцбс Питер, 2002. — Примеч. ред. Как получить примеры программ 19 Если вы начинаете программировать с использованием ОрепС1, вам наверняка пригодится руководство Орепб/. йе/егепсе Мапиа1, подготовленное АгсЫесгиге кеп>ем Воатд (изданное Агл)иоп — й>ез1еу), которое было создано как дополнение к данной книге. Это справочное руководство смотр>п на операции ОрепС1 с технической стороны; от информации, описывающей геометрические объекты, до получения изображения на экране.