М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006) (1124363), страница 4
Текст из файла (страница 4)
В их число входят примеры по преобразованиям, освещенности, туману и текстурированию. Эти прекрасные небольшие примеры созданы с помощью уже упомянутой О)А)Т. Их исходные тексты можно получить на странице: )!1(р://»гиг»т.х!и!зз!оп.согп/-па(е/(и(агз.)!(гп( Используемые стили В данном руководстве используются следующие стили: ° Жирный — названия команд и операций, матриц. «Курсив — переменные, аргументы, названия параметров, размеры, элементы матриц, первое использование ключевого термина. ° Примеры кодов выделены в тексте моноширинным шрифтом. 1 Так выделено краткое описание команд.
В описании команд фигурные скобки используются для указания типов данных. В следующем примере я1Соммапб имеет четыре суффикса; з, 1, 1 и б, соответствующие типам ОГлЬог(, ОЫпд 01йоаг и О).боцЫе. В прототипе функции я1Соммапб, ТУРЕ заменяет тип данных, определяемый суффиксом: уо!б а1Соммапб(з!16) (ТУРЕ х1, ТУРЕ у1, ТУРЕ х2, ТУРЕ у2) От издателя перевода Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты: согпр9р!(ег.со!и (издательство «Питер», компьютерная редакция). Мы будем рады узнать ваше мнение! Все исходные тексты программ, приведенные в книге, а также цветные рисунки к книге вы найдете по адресу: пт(р://игигиг.р!(ег.со!и/бо»гп1оаб. На веб-сайте издательства )!1(р://игугиг.р((ег.сепг представлена подробная информация о других наших книгах, Благодарности Успешное развитие ОрепО стало возможным благодаря работе множества людей.
Участники ОрепСВ Агс)тссесгиге йесневВоагг(помогают двигать ОрепОЬ вперед. Их вклад оценен по достоинству. Множество примеров программ написаны Стзйсом Питерсоном (Ясасе Рссегзогг), Полезные пояснения и дополнения были ннесены Мэриэнн Симмонс (Магуапп Б(пипопз), Патриком Броуном (Расггс1с Вготнп), Аланом Коммайком (А!ап Соспт(йе), Брэдом Грэнтхэмом (Вгаг1 ОгапсЬат), Бобом Куане (ВоЬ КцеЬпе), Джоном Личем ()оп 1 еесЬ), Бенджаменом Липчаком (Всп)агп1п ГзрсЬай), Марком Олано (Маге О!апо) и Вики Шрейнер (Ъ'1сй1 ЯЬгеспег). Также очень помог редакторский и издательский коллектив Ас!о(ноп-ьтен!су, Особая благодарность Мэри О'Брайен (Магу О'Впсп), Джону Фуллеру (!ойп Рн11ег) и Бренде Маллиган (Вгспс1а Мц!!1дап).
Цветные рисунки' были пересмотрены для этой редакции. Цветные рисунки с 1-го по 9-й были созданы Тэдом Бейером (ТЬае! Весег), Сетом Кацем (Яесй Каса) и Мейсоном Ву (Мазоп %оо). Цветные рисунки с 1О-го по 20-й, 22-й и 23-й были получены с помощью програмлг Мэйсона Ву. Цветной рисунок 21 изготовил Пол Хэберли (Рац1 НаеЬег1с), Всслагска 24 сделана Сирилом Кардасевичем (Суп1 Кагс)аззеу)СсЬ) из Гпт6гиге аге Яесйетсгге еп!пуоппагтдие е(е Тон!веете. Цветной рисунок 25 создан Юкари Ито (Ъ"пйап' 1со) и Кейсуке Кирин (Ке1знйе К)гй) из Жйсоп 567. Цветной рисунок 26 сделан Джоном Когги ()ойп Сопя!) и Дзвидом Стодденом (Пан(г! Бсог)беп) из Аэрокосмической компании (Тйе Аегозрасе Согпрапу).
Цветной рисунок 27 был сделан Рейнером Гебелем (Кагпег ОоеЬе1) из Мах Р!апс1г 1пзссгиге7ог Вгатп Кехеагсй. Цветной рисунок 28 был сделал Стефаном Ьрабеком (ЯсеЕап ВгаЬес) и Вольфгангом Гейдрихом (ЪЧо1(йапй НеЫгссЬ) из Мах Р1апсй !пуйгиге 7ог Согпрпгег 5ссепсе. Цветной рисунок 29 сделан Микко Бломквистом (Мййо В!опсоусзс) из Мегйасйс)е ОК Цветной рисунок 30 сделан Берндом Луцем (Вегпг! 1нгх) из Ргаипйо~ег )СП. И наконец, цветные рисунки 31 и 32 — это экранные снимки из игр Япайе-серии, придуманных Ы 5о/ггпаге.
' Цветные рисунки к книге ем. нв тийте ивлвтеиьетва Нвр:Цитнв,р~тег.согн/Ноьтн)евз. — Прииек. реп Введение в Орепб~ После прочтения этой главы вы сможете: ° Ориентироваться в основных терминах Орепб~ ° Различать различные уровни сложности построения изображения ° Понимать структуру программ Орепб~ ° Распознавать синтаксис команд Орепб~ ° Различать последовательности операций, выполняющих построение изображения ° Разбираться в основных терминах, имеющих отношение к анимации графики с помощью Орепб~ Что такое Ораоб!. 23 Эта глава — вводная. Она состоит из следующих основных частеи: ° Что такое ОрепСЕ.
Раскрывает, что такое ОрепС1., что и как можно и чего нельзя сделать с его помощью. ° Немного программного кода. Содержит небольшие ОрепСЕ-программы и объясняет нх работу. Здесь же поясняются несколько основных терминов компьютерной графики. е Синтаксис команд ОрепС1.. Представляет некоторые соглашения и условные обозначения, используемые в командах ОрепС1.. ° ОрепСЕ как конечный автомат. Описывает использование параметров со- стояния в ОрепС1 и команд запроса, включения и выключения состояний.
° Конвейер рисования ОрепСЕ. Показывает типичныс последовательности операций для обработки геометрических данных и изображений. ° Библиотеки, связанные с ОрепСЕ. Описывает наборы связанных с ОрепС1. подпрограмм, в том числе содержит подробный обзор платформно-независимого пакета разработчика СЫ)Т (СгарЬ!сз 1ДЬгагу ()В!Ьу Тоо!Ьй). ° Анимация. Раскрывает в общих терминах процесс создания подвижных изображений на экране. Что такое Орепб~ ОрепС1 — это программный интерфейс к графическому оборудованию.
Этот интерфейс содержит порядка 250 оздельных команд (около 200 в ядре ОрепС1. и еще 50 в библиотеке ОрепСЕ Ш!!Ву РЗЪгагу), которые используются для задания объектов и операций, необходимых для создания интерактивных приложений трехмерной графики. ОрепСЕ разработан как аппаратно-независимый интерфейс для работы на различных аппаратных платформах. Поэтому в ОрепС1 не включены команды для управления окнами н для организации пользовательского ввода. Вся такая работа ведется через операционную систему.
Аналогично, ОрепС1 не имеет высокоуровневых команд для описания трехмерных сложных моделей: автомобилей, частей человеческого тела, самолетов или молекул. Задача ОрепСŠ— помочь вам построить вашу модель из небольшого набора графических примитивов; точек, линий н многоугольников. Высокоуровневые же средства предоставляются библиотеками, являющимися надстройками нал ОрепС1.. Для моделирования кривых и поверхностей предназначена библиотека СЫ) (ОрепСЕ \М!!гу Ь!Ьгагу), имеюпзая множество инструментов, таких как вычислители и Ь!()КВЯ.
Библиотека СЬУ является стандартной составляющей любой реализации ОрепС1.. 24 Глава 1 ° Введение в Ореп61. Теперь, когда вы знаете, что ОрепС1. не умеет делать, пришла пора выяснить, что же делать можно. Посмотрите на цветные рисунки', иллюстрируюшие типичное использование ОрепС! . На них изображена сцена, лоплроентгая (так называемый ренде/тивг) компьютером в порядке постепенного усложнения задачи. Ниже объясняется, как получен этот рисунок. ° Цветной рисунок 1 показывает сцену в виде каркасной модели — как будто сплетенной из проволоки.
Каждая линия соответствует границе примитива (многоугольника). Например, поверхность стола состоит из треугольников. Впечатление такое, как если бы мы разрезали пирог на ломтики. Заметим, что в таких условиях можно видеть даже те части объектов, которые были бы скрыты в случае полноценной — залитой — поверхности. Например, можно вилеть холмы за окном, большая часть которых в этой модели скрыта стеной комнаты.
Глобус выглядит почти сплошным, так как он состоит из сотни цветных блоков, и взгляду доступны линии каркаса для всех граней всех блоков, даже тех, что образуют обратную сторону глобуса. Пример глобуса показывает, как можно создавать сложные объекты путем сборки из простых (низкоуровневых) объектов. ° Цветной рисунок 2 показывает обаемное представление этой же каркасной сцены. Заметим, что линии, расположенные дальше от наблюдателя, бледнее, как и в реальной жизни, за счет чего появляется визуальное восприятие глубины.
Для получения эффекта глубины ОрепСЕ использует также атмосферные эффекты (нгуман). ° Цветной рисунок 3 демонстрирует версию каркасной сцены с устраненной ступенчатостью. Эффект ступенчатости (а!газгпй) возникает в результате растеризации векторных примитивов па пикселах, составляющих прямоугольную сетку, Такая ступенчатость наиболее заметна на линиях, близких к горизонтали или вертикали, ° Цветной рисунок 4 демонстрирует лишенную полутонов, неосвещенную версию сцены (без соответствуютцих эффектов освещения). Объекты в сцене показаны сплошными — для закраски каждого многоугольника используется только один цвет.
Потому они выглядят «плоскимиеи а не округлыми. ° На цветном рисунке 5 нарисована уже освеи/енная, с полутотичи версия сцены. Видно, что сцена более реалистична и трехмерна за счет того, что полутона находятся в гармонии с источниками света в комнате, в сравнении с просто объемными объектами. ° На цветном рисунке б к сцене добавлены тени и текстуры. Тени — это нечетко определенная возможность ОрепС1. (нет специальной команды «тень»), но вы можете их создавать по технологии, описанной в главах 9 и 14.
Текстлурироеание позволяет накладывать двухмерные изображения на трехмерные объекты. В рассматриваемой сцене наиболее ярким примером текстурирования являет- ' цаетные рисунки к книге см. на садте ианательстаа Ьигк//иввцитессоот/Еоинаид. — Примеч. ред.