Таблиця 1.2 - Общесистемное і спеціальне програмне забезпечення
Програмне обеспеченіеНазначеніеMicrosoft Word 2010Программное забезпечення для роботи з електронними документаміGLEWКроссплатформенная бібліотека на C/C ++, яка спрощує запит і завантаження розширень OpenGLGLFWКроссплатформенная бібліотека для створення і відкриття вікон, створення OpenGL контексту і управління введенням
. 5 Розробка технічного завдання
Технічне завдання визначає основні вихідні дані при проектуванні програмного забезпечення для реалізації модуля колірної корекції зображення з використанням засобів OpenGL.
Технічне завдання оформляється відповідно до ГОСТу 19.201-78 [10] і містить наступні пункти:
а) підстави для розробки;
б) призначення розробки;
в) вимоги до програми або програмного виробу;
г) вимоги до програмної документації;
д) стадії і етапи розробки;
е) порядок контролю та приймання.
Розширене технічне завдання наведено в додатку А.
На підставі теоретичного дослідження, проведеного в рамках даної глави, були визначені основні позиції, що стосуються реалізації програмного модуля колірної корекції зображення з використанням засобів OpenGL:
а) реалізація трьох різних методів колірної корекції зображення;
б) Середа Enterprise Architect для проектування програми;
в) бібліотеки GLEW і GLFW для роботи з OpenGL та реалізації демонстраційної програми.
2. Проектування програмного модуля кольорокорекції
Проектування програмного модуля колірної корекції зображення з використанням засобів OpenGL полягає в математичному описі різних принципів колірної корекції, і проектировка шейдеров, що використовують ці принципи, на мові GLSL. Також проектування програмного модуля включає в себе розробку структури програмного модуля, а також структури демонстраційного додатки. Тому є логічним розбиття процессе проектування на наступні завдання:
- опис різних методів колірної корекції і проектировка відповідних шейдеров;
- проектування структури модуля колірної корекції, що використовує OpenGL;
- проектування демонстраційного додатки.
Проектування додатка увазі використання CASE-засобів, що дозволяють графічно позначити вимоги, пропоновані до програмного забезпечення.
. 1 Шейдерні програми
Шейдер - це програма для одного із ступенів графічного конвеєра, використовувана в тривимірній графіці для визначення остаточних параметрів об'єкта або зображення. Вона може включати в себе довільної складності опис поглинання і розсіяння світла, накладення текстури, віддзеркалення і заломлення, затемнення, зміщення поверхні і ефекти пост-обробки.
Програмовані шейдери гнучкі і ефективні. Складні з вигляду поверхні можуть бути візуалізовані за допомогою простих геометричних форм. Наприклад, шейдери можуть бути використані для малювання поверхні з тривимірною керамічної плитки на абсолютно плоскій поверхні.
В даний час шейдери діляться на три типи: вершинні, геометричні та фрагментних (піксельні).
. 1.1 Вершинні шейдери
Верховий шейдер оперує даними, зіставленими з вершинами багатогранників. До таких даних, зокрема, відносяться координати вершини в просторі, текстурні координати, тангенс-вектор, вектор бинормали, вектор нормалі. Вершинний шейдер може бути використаний для видового і перспективного перетворення вершин, генерації текстурних координат, розрахунку освітлення і т. Д.
. 1.2 Геометричні шейдери
Геометричний шейдер, на відміну від вершинного, здатний обробити не тільки одну вершину, але і цілий примітив. Це може бути відрізок (дві вершини) і трикутник (три вершини), а за наявності інформації про суміжні вершинах (adjacency) може бути оброблено до шести вершин для трикутного примітиву. Крім того, геометричний шейдер здатний генерувати примітиви «на льоту», що не задіюючи при цьому центральний процесор. Вперше почав використовуватися на відкритих Nvidia серії 8.
. 1.3 фрагментних шейдери
Піксельний шейдер працює з фрагментами растрового зображення. Під фрагментом зображення в даному випадку розуміється піксель, якому поставлене відповідність певний набір атрибутів, таких як колір, глибина, текстурні координати. Піксельний шейдер використовується на останній стадії графічного конвеєра дл...