Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
комп.граф.часть 2.docx
Скачиваний:
0
Добавлен:
11.12.2019
Размер:
20.9 Кб
Скачать

Контрольні запитання

Що становить собою бібліотека OpenGL?

OpenGL - (англ. Open Graphics Library - відкрита графічна бібліотека) - специфікація, що визначає незалежний від мови програмування крос-платформовий програмний інтерфейс (API) для написання застосунків, що використовують 2D та 3D комп'ютерну графіку. Цей інтерфейс містить понад 250 функцій, які можуть використовуватися для малювання складних тривимірних сцен з простих примітивів. Бібліотека OpenGL широко застосовується індустрією комп'ютерних ігор і віртуальної реальності, у графічних інтерфейсах, при візуалізації наукових даних, в системах автоматизованого проектування тощо.

OpenGL орієнтована на виконання наступних двох завдань:

• сховати складності адаптації різних 3D-прискорювачів, надаючи розробнику єдиний API;

• сховати розходження в можливостях апаратних платформ, вимагаючи реалізації відсутньої функціональності за допомогою програмної емуляції.

2. Для якої операційної системи реалізована бібліотека OpenGL?

Ефективні реалізації OpenGL існують для операційних систем Linux, MacOS X, Microsoft Windows та багатьох UNIX-подібних ОС, а також для таких ігрових боксів, як Sony PlayStation 3. Різні програмні реалізації OpenGL існують для платформ, виробники яких не підтримують дану специфікацію.

3. Чи існують апаратні реалізації OpenGL?

На базовому рівні, OpenGL — це всього лиш специфікація, себто, це — просто документ, який описує набір функцій і їх точну поведінку. На основі цих специфікацій виробники апаратного забезпечення створюють реалізації — бібліотеки функцій, які відповідають заявленій в OpenGL специфікації. Ці реалізації проектуються для того, щоб при можливості використовувати можливості апаратного забезпечення. Коли апаратне прискорення не допускається, виконання функцій здійснюється за допомогою програмного забезпечення. Виробники повинні пройти спеціальні тести на відповідність, перш, ніж їхню реалізацію класифікуватимуть, як реалізацію OpenGL. Таким чином, розробникам програмного забезпечення необхідно всього лиш навчитися використовувати описані у специфікації функції, іі лишити їхню реалізацію за розробниками апаратного забезпечення.

4. Що таке графічний конвеєр?

Основним принципом роботи OpenGL є отримання наборів векторних графічних примітивів у вигляді точок, ліній і багатокутників з наступною математичною обробкою отриманих даних і побудовою растрової картинки на екрані та / або в пам'яті. Векторні трансформації та растеризация виконуються графічним конвеєром (graphics pipeline). Абсолютна більшість команд OpenGL потрапляють в одну з двох груп: або вони додають графічні примітиви на вхід в конвеєр, або конфігурують конвеєр на різне виконання трансформацій.

Графічний конвеєр

В системах комп'ютерної графіки (як наприклад OpenGL) графічний конвеєр складається з

• вершинних операцій

• перетворення координат вершин об'єкта з системи координат об'єкта у систему координат вікна відображення

• розрахунок освітленості вершин об'єкта

• відтинання частин об'єкта, що лежать за межами видимого об'єму

• растеризації: перетворення геометричних даних у фрагменти. Фрагменти складаються із екранних координат, кольору, текстурних координат та інших даних що формують зображення у буфері кадру

• операцій над фрагментами, які розраховують значення для запису у буфер кадру

5. Як і для чого використовують операторні дужки Begin/End вOpenGl?

Вершины описывают форму желаемого геометрический объект. Чтобы указать вершины, вы используете glVertex * () команды в сочетании с glBegin () и glEnd () для создания точки, линии или полигона. Вы также можете использовать glRect * () , чтобы описать весь прямоугольник сразу

.

Як визначити положеннМы рассмотрели задание атрибутов одной вершины. Однако, чтобы задать атрибуты графического примитива, одни

материала.

Значение по умолчанию: (0.0, 0.0, 0.0, 1.0).

GL_AMBIENT_AND_DIFFUSE эквивалентно двум вызовам команды glMaterial…() со значением pname GL_AMBIENT и GL_DIFFUSE и одинаковыми значениями params.

Из этого следует, что вызов команды glMaterial[i f]() возможен только для установки степени зеркального отражения материала. В большинстве моделей учитывается диффузный и зеркальный отраженный свет; первый определяет естественный цвет объекта, а второй - размер и форму бликов на его поверхности.

Параметр face определяет тип граней, для которых задается этот материал и может принимать значения GL_FRONT, GL_BACK или GL_FRONT_AND_BACK.

Если в сцене материалы объектов различаются лишь одним параметром, рекомендуется сначала установить нужный режим, вызвав glEnable() c параметром GL_COLOR_MATERIAL, а затем использовать команду

void glColorMaterial(GLenum face, GLenum pname)

где параметр face имеет аналогичный смысл, а параметр pname может принимать все перечисленные значения. После этого, значения выбранного с помощью pname свойства материала для конкретного объекта (или вершины) устанавливается вызовом команды glColor…(), что позволяет избежать вызовов более ресурсоемкой команды glMaterial…() и повышает эффективность программы.

8. Як визначається джерела світла в OpenGL?

В дополнение к определению цвета и нормальных векторов, вы можете определить требуемые условия освещения с glLight * () иglLightModel * () , и желаемый свойств материала с glMaterial * () . Похожие команды можно использовать для управления освещением расчеты производятся включают glShadeModel () , glFrontFace () , и glColorMaterial () .

9. Роз'ясніть роботу з матрицями в OpenGL.

Вершин и нормалей преобразуются видовую матрицу и матрицу проекции, прежде чем они используются для получения изображения в буфере кадра. Вы можете использовать такие команды, как glMatrixMode () , glMultMatrix () , glRotate () , glTranslate () , и glScale () , чтобы выбрать композицию преобразований, или вы можете напрямую задать матрицы с glLoadMatrix () и glLoadIdentity () . ИспользуйтеglPushMatrix () и glPopMatrix () для сохранения и восстановления вида модели и проекции матрицы на соответствующие стеки.

10. Які бувають види матриць в OpenGL?

три типа матриц: матрица проецирования, матрица вида, текстурная матрица

11. Для чого викликають функції та glPopMatrix()?

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

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

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

glPopMatrix () используется для загрузки данных из стека

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]