Главная » Просмотр файлов » Ю.М. Баяковский, А.В. Игнатенко - Начальный курс OpenGL (DOC)

Ю.М. Баяковский, А.В. Игнатенко - Начальный курс OpenGL (DOC) (1124366), страница 2

Файл №1124366 Ю.М. Баяковский, А.В. Игнатенко - Начальный курс OpenGL (DOC) (Ю.М. Баяковский, А.В. Игнатенко - Начальный курс OpenGL (DOC)) 2 страницаЮ.М. Баяковский, А.В. Игнатенко - Начальный курс OpenGL (DOC) (1124366) страница 22019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Книга состоит из трех частей и двух приложений. Первая часть посвящена непосредственно описанию работы с библиоте­кой, основным командам и переменным. Во второй части рас­сматриваются принципы реализации более сложных алгоритмов компьютерной графики с помощью средств OpenGL. В третьей части приводится описание настройки работы с OpenGL в раз­личных интегрированных средах программирования и создание приложений, применяющих OpenGL для синтеза изображений. В приложениях можно найти демонстрационные программы на OpenGL и примеры практических заданий для самоконтроля.

В пособии рассматривается стандарт OpenGL 1.2.

Часть I

Основы OpenGL

Глава 1.

Графический процесс и OpenGL

Прежде чем перейти к описанию функций OpenGL, необхо­димо понять ее место в процессе формирования изображения на экране, определить область, задачи которой можно решать с по­мощью библиотеки.

1.1. Графический процесс

Традиционной задачей компьютерной графики является син­тез изображений объектов реального мира (как существующих, так и воображаемых). Для того, чтобы сделать такой синтез воз­можным, на входе алгоритма необходимы следующие данные:

Геометрические модели задают форму и внутреннюю струк­туру объекта, обычно в трехмерном евклидовом простран­стве. Примеры простых моделей:

• сфера, заданная с помощью положения центра и ра­диуса;

17

18

Глава 1. Графический процесс и OPENGL

• куб, заданный через положение центра и длины ребра.

Анимация служит для задания модели движения, изменения формы или материала объекта с течением времени. На­пример, продольное перемещение объекта вдоль оси х со скоростью s м/с может быть задано с помощью формулы: x(t) = st.

Материалы и текстуры определяют, как поверхность объек­та взаимодействует со светом. Материалы необходимы для получения изображения объекта, с их помощью вычисля­ется количество отраженного света, попадающего в «глаз» виртуального наблюдателя. Простейшая модель материа­ла— цвет объекта.

Освещение задает расположение и характеристики источников света, что в совокупности с материалом позволяет высчи­тать цвет каждой точки объекта, изображение которого требуется построить. Пример модели освещения: солнце, задаваемое направлением и мощностью излучения.

Виртуальная камера определяет, как трехмерные данные бу­дут отображаться (проецироваться) на двухмерное изобра­жение.

Заметим, что для задач, не требующих реалистичности по­лучаемого изображения (например, научная визуализация), ма­териалы могут сводиться к простейшим формам, например, к разным цветам объектов, а освещение — отсутствовать.

Далее в дело вступает алгоритм синтеза изображений, в опи­сываемом частном случае называемый процессом экранизации (rendering). Имея на входе набор моделей, алгоритм должен по­строить соответствующее изображение на экране монитора.

Описанная схема графической обработки от получения гео­метрической модели объекта до синтеза изображения на экране называется графическим процессом.

1.2. Геометрические модели

19

Остановимся более подробно на том, какую помощь OpenGL оказывает в реализации графического процесса.

Вэа и модействие

чт-

Редактирование и обработка


Получение/—' N. .
эа-рузка ^

данных П/'

Экранизация

Выводе буфер кадраг

Вывод на

П рикладная программа

OpenGL

Оконная подсистема

Рис. 1.1. Графический процесс и место OpenGL в нем.

1.2. Геометрические модели

В компьютерной графике используется большое количество разнообразных моделей для описания формы. Причиной этого является очевидная невозможность полностью оцифровать ре­альный объект. Следовательно, необходимо выбирать те особен­ности объекта, которые важны для конкретной задачи и задан­ного класса объектов. В частности, модели можно поделить на объемные и граничные. Объемные модели позволяют описать внутренность объекта, а граничные — геометрические свойства поверхности. Пример объемной модели показан на рисунке 1.2.

В настоящее время наибольшую популярность завоевали гра­ничные модели, получаемые с помощью локальной кусочно-линейной аппроксимации поверхности. Такая модель представ­ляет собой набор связанных через общие вершины многоугольни­ков (полигонов), поэтому эти модели еще называет полигональ-

20

Глава 1. Графический процесс и OPENGL

Рис. 1.2. Объемная (воксельная) модель тора

ными. Причина популярности полигональных моделей кроется в их чрезвычайной гибкости и простоте, что позволило поддер­жать операции с такими моделями в графической аппаратуре. Пример граничной модели приведен на рисунке 1.3.

Основным типом геометрических моделей, поддерживаемым OpenGL, являются как раз граничные полигональные модели. Отметим, что при этом библиотека не содержит каких-либо средств поддержки хранения данных на внешних носителях. Также в библиотеке нет средств для обработки и редактиро­вания моделей — единственной задачей OpenGL является реали­зация алгоритмов экранизации трехмерных моделей.

Более подробно работа с моделями описана в главе 3.

1.3. Анимация

Анимация в настоящее время в основном задается вручную (в пакетах компьютерного моделирования), либо с помощью устройств сканирования движения (motion capture), позволяю­щих оцифровать перемещение объектов (например — человека) или их частей (движения рук, ног, туловища).

OpenGL содержит аппарат линейных преобразований, кото­рый используется в том числе для задания простой анимации

l.Jh. Материалы

21

Рис. 1.3. Граничная полигональная модель

(поворот, перенос, масштабирование). Более сложные техноло­гии моделирования изменения формы и положения объектов (на­пример, на основе кривых) могут быть реализованы «поверх» библиотеки.

1.4. Материалы

Основными критериями выбора той или иной модели мате­риала для поверхности объекта являются требования по реали­стичности получаемого изображения и скорости работы алгорит­ма экранизации. Модель освещения применяется для каждого пикселя получаемого изображения, поэтому для задач, требую­щих интерактивного взаимодействия программы с пользовате­лем, обычно выбираются простые модели.

OpenGL изначально разрабатывалась как библиотека для программирования интерактивных графических приложений, в

22

Глава 1. Графический процесс и OPENGL

ней встроена одна из самых простых моделей материала — мо­дель Фонга. Также OpenGL поддерживает наложение текстур. В совокупности это позволяет добиваться достаточно реалистич­ной передачи свойств «простых» материалов типа пластика, де­рева и т.п. Подробно вопрос программирования материалов в OpenGL рассматривается в главе 5.

1.5. Освещение

Модель освещения неотделима от модели материала, поэто­му принципы се выбора определяются теми же требованиями. В реальном мире мы сталкиваемся с крайне сложными для мо­делирования условиями освещения — протяженными источника­ми света (небо, люминесцентные лампы), вторичным освещением (освещением от отражающих поверхностей) и т.п.

Стандарт OpenGL поддерживает точечные и параллельные источники света, цвет (мощность) которых задается в цвето­вой системе RGB (Red-Green-Blue). He поддерживаются протя­женные источники, спектральное задание мощности источников, вторичное освещение. Однако существуют алгоритмические при­емы, позволяющие моделировать и эти эффекты с помощью воз­можностей OpenGL. Кроме этого, всегда возможно использовать качественные алгоритмы для просчета освещения и передавать OpenGL уже вычисленные цвета точек, что позволяет задейство­вать аппаратные возможности для обработки геометрии.

1.6. Виртуальная камера

Параметры виртуальной камеры определяют способ отобра­жения трехмерных объектов в их двухмерное изображение. Су­ществует достаточно большое количество разнообразных моде­лей камер, различающиеся свойствами проекции и учетом ха-

1.7. Алгоритм экранизации

23

рактеристик реальных оптических систем (фотокамер, челове­ческого глаза).

В OpenGL поддерживается достаточно широкий класс мо­делей камер, описываемый линейным преобразованием в одно­родных координатах [15]. Этот класс ограничен моделированием камер с бесконечно малым размером диафрагмы (нет возможно­сти передачи глубины резкости) и линейными характеристиками проекции (нет возможности моделирования нелинейных искаже­ний).

1.7. Алгоритм экранизации

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

Алгоритмы трассировки лучей основаны на прослеживании (трассировке) распространения световой энергии от источников света до попадания на сетчатку глаза виртуального наблюдателя (результирующее изображение). Трассировка лучей и смежные алгоритмы в основном используются для получения фотореали­стичных изображений. В силу алгоритмической сложности на данный момент эти алгоритмы не получили распространения в задачах интерактивного синтеза изображений, где в основном используются подходы на основе растеризации.

Алгоритмы растеризации строят изображение с помощью преобразования геометрической модели таким способом, чтобы имитировать параметры используемой модели камеры. Т.е. для каждой точки (x,y,z) модели выполняется преобразование Т (обычно линейное), такое, что (xs,ys) = T(x,y,z), где (xs,ys) — координаты спроецированной точки на экране. В случае поли-

24

Глава 1. Графический процесс и OPENGL

тональной модели преобразование выполняется для каждой вер­шины полигона, после чего получаемая проекция переводится в растр на результирующей картинке. Освещение вычисляет­ся отдельно от преобразований, обычно с помощью достаточно простой модели.

OpenGL основана на экранизации с помощью растеризации. Ориентированность на полигональные модели вкупе с использо­ванием линейной модели камеры позволяет описать весь алго­ритм экранизации в терминах алгебры матриц и векторов 4-го порядка в евклидовом пространстве. В свою очередь, это поз­волило перенести большую часть операций алгоритма на спе­циализированные графические процессоры (в настоящее время ставшие стандартом).

Таким образом, алгоритм экранизации OpenGL ориентиро­ван на интерактивные приложения с достаточно ограниченной поддержкой моделей материалов и освещения. Однако, в силу простоты и гибкости стандарта библиотеки, с помощью ее ба­зовых функций возможно реализовать широкий спектр различ­ных моделей вплоть до физически-точных, оставаясь в рамках требований к интерактивным приложениям (во многом за счет широкой аппаратной поддержки OpenGL).

Глава 2.

Введение в OpenGL

2.1. Основные возможности

Описывать возможности OpenGL мы будем через функции его библиотеки. Вес функции можно разделить на пять катего­рий:

Функции описания примитивов определяют объекты ниж­
него уровня иерархии (примитивы), которые способна отоб­
ражать графическая подсистема. В OpenGL в качестве
примитивов выступают точки, линии, многоугольники и

т.д.

  • Функции описания источников света служат для описа­ния положения и параметров источников света, располо­женных в трехмерной сцене.

  • Функции задания атрибутов. С помощью задания атри­бутов программист определяет, как будут выглядеть на экране отображаемые объекты. Другими словами, если с помощью примитивов определяется, что появится на экране, то атрибуты определяют способ вывода на экран.

25

26

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

Тип файла
Документ
Размер
3,41 Mb
Тип материала
Высшее учебное заведение

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

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