який набір дій, що чиниться системою при діалозі з актором. При цьому нічого не говориться про те, яким чином буде реалізовано взаємодію акторів з системою [3]. На підставі вище сказаного була побудована UML-діаграма варіантів використання, представлена ??в додатку Б.
Більш докладно опис варіантів використання представлено в таблиці 2.1. Таблиця містить опису загальних варіантів використання, не включаючи розширення і включення.
Таблиця 2.1 - Варіанти використання
Назва варіанту іспользованіяОпісаніеОтображеніе колірної корекції за допомогою градієнтної картиОтображеніе колірної корекції за допомогою градієнтної карти і можливість регулювати параметри, пов'язані з нейОтображеніе колірної корекції за допомогою тривимірної текстуриОтображеніе колірної корекції за допомогою тривимірної текстури і можливість регулювати параметри, пов'язані з нейОтображеніе колірної корекції за допомогою буфера глубіниОтображеніе колірної корекції за допомогою буфера глибини і можливість регулювати параметри, пов'язані з нейПереключеніе колірної коррекцііПереключенія виду колірної корекції за допомогою введення клавіатуриЗагрузка і отрисовка тривимірної сцениВключает в себе завантаження тривимірної моделі, текстур для неї, необхідних шейдеров поверхні і отрисовка сцени в текстуруУправленіе камеройВключает управління напрямком огляду і переміщення камери у пространствеВивод інформації на екранВключает в себе висновок текстової довідки та виведення кількості кадрів в секунду для сцени
. 5.3 Розробка діаграми варіантів використання
Діаграма класів по праву займає центральне місце в об'єктно-орієнтованому підході. Фактично будь методологія включає в себе деяку різновид діаграм класів.
На підставі діаграми варіантів використання (див. додаток Б) була розроблена Діаграма класів, опис якої наведено в таблиці 2.2, представлена ??у додатку В.
Таблиця 2.2 - Опис класів
Назва варіанту іспользованіяОпісаніеControlsКласс, що забезпечує огляд сцени за допомогою мишіModelLoaderКласс, що забезпечує завантаження тривимірної моделі в форматі Wavefront OBJShaderLoaderКласс, що забезпечує завантаження шейдерних программFontManagerКласс, що забезпечує завантаження шрифтів з текстури і виведення тексту на екранTextureLoaderКласс, що забезпечує завантаження двомірних і тривимірних текстур у форматах DDS і BMPIndexerVBOКласс, що забезпечує індексацію буфера вершінColorCorrectionКласс, що забезпечує колірну корекцію ізображеніяRenderToTextureКласс, що забезпечує отрисовку зображення і буфера глибини в текстуру
. 5.4 Розробка діаграми компонентів
Діаграма компонентів представляє з себе статичну структурну діаграм lt; # justify gt; .5.5 Розробка діаграми послідовності
Діаграма послідовності - діаграма, на якій показано взаємодію об'єктів (обмін між ними сигналами і повідомленнями), впорядковане за часом, з відображенням тривалості обробки і послідовності їх прояви. Використовується в мові UML. Додаток Д.
3. Розробка і тестування програмного модуля кольорокорекції
Розробка програмного продукту складається з модуля колірної корекції зображення і демонстраційної програми.
Модуль колірної корекції зображення включає в себе:
- трьох фрагментних і один вершинний шейдер колірної корекції;
- класи TextureLoader, ShaderLoader і ColorCorrection.
Демонстраційна програма включає в себе:
- шейдер поверхні (підтримка дифузної карти, карти нормалей і карти віддзеркалень);
- шейдер для відображення тексту;
- класи Controls, ModelLoader, FontManager, IndexerVBO і RenderToTexture.
3.1 Реалізація шейдеров колірної корекції
Шейдери колірної корекції реалі?? овивалісь на шейдерному мовою GLSL (при розробці використовувалася шейдерная модель 3.3). Для колірної корекції розроблено два види шейдерів - вершинний шейдер, який є спільним, і три фрагментних шейдера, для кожного типу колірної корекції.
Верховий шейдер оперує даними, зіставленими з вершинами багатогранників. До таких даних, зокрема, відносяться координати вершини в просторі, текстурні координати, тангенс-вектор, вектор бинормали, вектор нормалі. У разі колірної корекції, вершинний шейдер використовується для генерації текстурних координат.
3.1.1 Реалізація шейдера колірної корекції за допомогою градієнтної карти
Будь шейдер колірної корекції являє собою піксельний (Фрагментний) шейдер, який працює з фрагментами растрового зображе...