Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »Информатика

Графічна бібліотека OpenGl

Тип: контрольная работа
Категория: Информатика
Скачать
Купить
МІНІСТЕРСТВО ОСВІТИ УКРАЇНИБердичівський політехнічний коледжКонтрольна роботаз предмета “Комп’ютерна графіка”(варіант №12)Виконав:студент групи Пзс-504Побережний Д.В..Перевіриввикладач:Козік В.Ю.м. Бердичів2007 р.1. Крива Без'єЦей алгоритм дозволяє обчислити координати (х, у) точки кривої Без'є за значенням параметра t.1. Кожна сторона контуру багатокутника, що проходить по точках-орієнтирах, ділиться пропорційно значенню t.2. Точки поділу з'єднуються відрізками прямих і утворюють новий багатокутник. Кількість вузлів нового контуру на одиницю менша, ніж кількість вузлів попереднього контуру.3. Сторони нового контуру знову діляться пропорційно значенню t. І так далі. Це продовжується до тих пір, доки не буде отримано єдину точку поділу. Та точка й буде точкою кривої Без'є (рис. 3.9).Наведемо запис геометричного алгоритму на мові C++:Результат роботи алгоритму — координати однієї точки кривої Без'є — записуються в R[0].Фігурою тут будемо вважати плаский геометричний об'єкт, який складається з ліній контуру та точок, що містяться всередині контуру. Контурів може бути декілька — наприклад, коли об'єкт має всередині порожнини (рис. 3.10). У деяких графічних системах одним об'єктом може вважатися й більш складна багатоконтурна фігура — сукупність островів із порожнинами.Графічний вивід фігур поділяється на дві задачі: вивід контуру й вивід точок заповнення. Позаяк контур являє собою лінію, то вивід контуру проводиться на основі алгоритмів виводу ліній. У залежності від складності контуру, це можуть бути відрізки прямих, кривих або довільна послідовність сусідніх пікселів.Для виводу точок заповнення відомі методи, котрі розділяються в залежності від використання контуру на два типи: алгоритми зафарбовування від внутрішньої точки до границь довільного контуру й алгоритми, що використовують математичний опис контуру.2. Графічна бібліотека OpenGlOpenGL — це "програмний інтерфейс для апаратури, яка створює графіку" [88]. Цей інтерфейс зроблений у вигляді бібліотеки функцій (Open Graphic Library — OpenGL). Розробник — фірма Silicon Graphics.OpenGL стала індустріальним стандартом, вона підтримується багатьма операційними системами для різноманітних апаратних платформ — від персональних комп'ютерів до надпотужних суперкомп'ютерів. Бібліотека OpenGL дозволяє досить просто створювати швидкодіючі графічні програми, які використовують апаратні можливості ЗD-акселераторів. Тому вона часто використовується розроблювачами комп'ютерних ігор (наприклад, Quake) та систем тривимірного моделювання. В операційній системі Windows бібліотека OpenGL (версії 1.1) підтримана, починаючи з Windows 95 версії OSR 2, — були додані відповідні модулі DLL, а також включені кілька функцій і структур даних у АРІ Win32.Перша версія OpenGL побачила світ у 1992 році. Розширення OpenGL втілювалися у версіях 1.1-1.5. Зараз на порядку денному впровадження OpenGL версії 2. Ця версія буде забезпечувати використання усіх можливостей графічних процесорів, у тому числі повну підтримку шейдерів.Розробка графічних програм OpenGL для середовища Windows подібна програмуванню графіки GDI функцій АРІ, що ми розглянули в главах 7-10. Однак є особливості, деякі з яких ми вивчимо. Для одержання докладніших відомостей можна порекомендувати такі літературні джерела, як довідники для систем програмування для АРІ Win32 [86, 87].Стосовно літератури. Незважаючи на те, що видано багато різноманітної літератури з OpenGL, в тому числі й кирилицею, радимо вам завжди намагатися читати першоджерела (це стосується будь-якої теми). Для OpenGL таким джерелом є знаменита "Red Book" від Silicon Graphics.Швидкодія графічних програм, що використовують OpenGL, істотно залежить від відеоадаптера. Апаратна реалізація всіх базових функцій OpenGL — гарантія високої швидкодії. У даний час багато відеоадаптерів містять спеціальний графічний процесор (один чи декілька) для підтримки функції графіки. Крім того, що відеоадаптер повинен апаратно виконувати усі базові функції OpenGL (такі як перетворення координат, відсікання, вивід полігонів, розрахунок освітлення, накладення текстур), для досягнення високої швидкодії повинен бути встановлений спеціальний драйвер. Драйвери типу ICD (Installable Client Driver) забезпечують інтерфейс, що сприяє ефективному використанню апаратних можливостей відеоадаптера. Інший тип драйвера — MCD — встановлюється зазвичай тоді, коли не всі функції підтримані апаратно, в цьому випадку вони виконуються програмно центральним процесором, що істотно повільніше.Розглянемо створення програм OpenGL мовою С, C++ у середовищі Windows. У главі 7 при розгляді графіки GDI ми визначили ключовий момент — це створення контексту графічного пристрою (device context). Графіка OpenGL у цьому плані схожа — необхідно спочатку створити контекст, що названий тут контекстом відображення {rendering context), і спрямовувати поточний вивід графіки на нього. Потім необхідно закрити цей контекст, звільнити пам'ять.Будемо програмувати в стилі програм StudEx попередніх глав цієї книги. Цей стиль полягає в безпосередньому виклику функцій API Windows без будь-яких посередників типу MFC (чи інших подібних бібліотек). По-перше, це зменшує виконуваний код (оскільки кожному посереднику потрібно платити — ось тільки тут за що?), а по-друге, дозволить нам більш детально ознайомитися власне з OpenGL.Дамо загальну схему програми OpenGL.1. Створення вікна програми. Тут необхідно обов'язково установити стиль вікна ws_clipchildren і ws_clipsiblings. Це здійснюється завданням значень аргументів функції CreateWindow.2. Після створення вікна можна відкривати контекст відображення. Рекомендується відкриття цього контексту робити п...
Другие файлы:

Концепції програмування. Графічна система OpenGL
Об'єктно-орієнтоване програмування за допомогою Delphi. Основні види проекцій. Поняття контексту відображення та пристрою в бібліотеці OpenGL. Побудов...

OpenGL Insights
Описание: Get Real-World Insight from Experienced Professionals in the OpenGL Community With OpenGL, OpenGL ES, and WebGL, real-time rendering is beco...

Pro OpenGL ES for iOS
In Pro OpenGL ES for iOS, you'll find out how to harness the full power of OpenGL ES, and design your own 3D applications by building a fully-function...

OpenGL Programming Guide, 8th Edition
Лучшая книга по OpenGL переиздана. Книга переписана практически на 100%. Из нее удалено описание множества устаревших технологий и дано описание новых...

The Official Guide to Learning OpenGL, Versions 3.0 and 3.1, 7th Edition
The OpenGL®Programming Guide, Seventh Edition, provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. The previou...