Міністерство освіти і науки України
Рівненський державний гуманітарний університет
Факультет математики та інформатики
Кафедра інформатики та прикладної математики
КУРСОВА РОБОТА
на тему:
Використання opengl. Моделювання вогню
Виконав:
студент 4 курсу
спеціальності “інформатика”
групи І-41: Антонішин В.В.
Науковий керівник:
Ярощак Сергій Вікторович
Рівне – 2010
ЗМІСТ
ВСТУП
РОЗДІЛ 1. Програмний код та синтаксис OpenGL
1.1 Програмний код OpenGL
1.2 Синтаксис команд OpenGL
РОзділ 2. Конвеєр візуалізації та бібліотеки, що відносяться до OpenGL
2.1 Конвеєр візуалізації OpenGL
2.1.1 Конвеєр
2.1.2 Списки виводу
2.1.3 Обчислювачі
2.1.4 Операції обробки вершин
2.1.5 Збірка примітивів
2.1.6 Операції обробки пікселів
2.1.7 Збірка текстури
2.1.8 Растеризація
2.1.9 Операції обробки фрагментів
2.2 Бібліотеки, що відносяться до OpenGL
2.2.1 Бібліотека OpenGL
2.2.2 Файли, що підключаються
2.2.3 GLUT, інструментарій утиліт бібліотеки OpenGL
РОЗДІЛ 3. АНІМАЦІЯ КОМП'ЮТЕРНОЇ ГРАФІКИ НА ПРИКЛАДІ МОДЕЛЮВАННЯ ВОГНЮ
3.1 Анімація комп'ютерної графіки
3.2 Моделювання вогню
ВИСНОВКИ
ЛІТЕРАТУРА
ВСТУП
Комп'ютерна графіка знайшла широке поширення і застосування в повсякденному житті. Учені використовують комп'ютерну графіку для аналізу результатів моделювання. Інженери і архітектори використовують тривимірну графіку для створення віртуальних моделей. Кінематографісти створюють спецефекти або повністю анімовані фільми («Шрек», «Історія іграшок» та ін.). Останніми роками широке поширення отримали також комп'ютерні ігри, що максимально використовують тривимірну графіку для створення віртуальних світів.
Поширення комп'ютерної графіки супроводили свої труднощі. У 1990-х розробка програмного продукту, здатного працювати на великій кількості графічного устаткування, була зв'язана з великими часовими і фінансовими витратами. Було необхідно окремо створювати модулі для кожного типу графічних адаптерів, що іноді призводило до розмноження однакового програмного коду. Це сильно гальмувало розвиток і поширення комп'ютерної графіки.
Silicon Graphics Incorporated (SGI) спеціалізувалася на створенні високотехнологічного графічного устаткування і програмних засобів. Будучи у той час лідером в тривимірній графіці, SGI бачила проблеми і бар'єри в рості ринку. Тому було прийнято рішення стандартизувати метод доступу до графічної апаратури на рівні програмного інтерфейсу.
Таким чином з'явився програмний інтерфейс OpenGL, який стандартизує доступ до графічної апаратури шляхом зміщення відповідальності за створення апаратного драйвера на виробника графічного пристрою. Це дозволило розробникам програмного забезпечення використовувати вищий рівень абстракції від графічного устаткування, що значно прискорило створення нових програмних продуктів і понизило на них витрати.
У 1992 році компанія SGI очолила OpenGL ARB — групу компаній по розробці специфікації OpenGL. OpenGL еволюціонував з 3D-інтерфейса SGI — IRIS GL. Одним з обмежень IRIS GL було те, що він дозволяв використовувати тільки можливості, підтримувані устаткуванням; якщо можливість не була реалізована апаратно, застосування не могло її використовувати. OpenGL долає цю проблему за рахунок програмної реалізації можливостей, що не надаються апаратно і дозволяє використовувати цей інтерфейс на відносно малопотужних системах.
У 1995 році була випущена бібліотека Direct3D від Microsoft. Незабаром Microsoft, SGI і Hewlett - Packard почали проект під назвою Fahrenheit, який передбачав створення більше універсального програмного інтерфейсу на основі Direct3D і OpenGL. Ідея здавалася багатообіцяючою, покликаною навести лад в області інтерактивної тривимірної графіки, проте, в результаті фінансових труднощів в SGI і відсутності належної індустріальної підтримки, проект був закритий. Правда, пізніше, 16 вересня 2005 року, він все-таки був випущений.
OpenGL орієнтується на наступні два завдання:
· Приховати складнощі адаптації різних 3D-прискорювачів, надаючи розробникові єдиний API.
· Приховати відмінності в можливостях апаратних платформ, вимагаючи реалізації бракуючої функціональності за допомогою програмної емуляції.
Основним принципом роботи OpenGL є отримання наборів векторних графічних примітивів у вигляді точок, ліній і багатокутників з наступною математичною обробкою отриманих даних і побудовою растрової картинки на екрані і в пам'яті. Векторні трансформації і растеризування виконуються графічним конвеєром , який по суті представляє з себе дискретний автомат. Абсолютна більшість команд OpenGL потрапляють в одну з двох груп : або вони додають графічні примітиви на вхід в конвеєр, або конфігурують конвеєр на різне виконання трансформацій.
OpenGL є низькорівневим процедурним API, що змушує програміста диктувати точну послідовність кроків, щоб побудувати результуючу растрову графіку (імперативний підхід). Це є основною відмінністю від дескрипторних підходів, коли уся сцена передається у вигляді структури даних, які обробляються і будуються на екрані. З одного боку, імперативний підхід вимагає від програміста глибокого знання законів тривимірної графіки і математичних моделей, з іншого боку — дає свободу впровадження різних інновацій.
Метою цієї роботи є вивчити особливості роботи з відкритою графічною бібліотекою OpenGL та навчитися її застосовувати в комп’ютерному моделюванні.
Завдання полягає у написанні програми моделювання горіння вогню з використанням графічної бібліотеки OpenGL.
Предметом дослідження є комп’ютерна графіка, а об’єктом дослідження побудова графічних зображень з використанням відкритої графічної бібліотеки OpenGL.
РОЗДІЛ 1. Програмний код та синтаксис команд OpenGL
0 комментариев