м колірної корекції.
Зовнішній вигляд демонстраційної програми показаний на малюнку 3.1.
Малюнок 3.1 - Зовнішній вигляд програми
. 3.1 Реалізація завантаження тривимірної моделі в сцену
В якості формату для зберігання тривимірної моделі був обраний Wavefront OBJ. Це формат файлів опису геометрії, розроблений в Wavefornt Technologies для їх анімаційного пакету Advanced Visualizer. Формат файлу є відкритим і був прийнятий іншими розробниками додатки тривимірної графіки і може бути імпортований і експортований в безліч різних програм.
Формат файлів OBJ - це простий формат даних, який містить тільки тривимірну геометрію, а саме, позицію кожної вершини, зв'язок координат текстури з вершиною, нормаль для кожної вершини, а також параметри, які створюють полігони.
OBJ є одним з найбільш популярних форматів передачі тривимірної комп'ютерної геометрії. Інформація про зовнішній вигляд об'єктів (матеріали) передається у файлах-супутниках у форматі MTL (Material Library).
OBJ файл містить декілька типів визначення:
«v 0.123 0.234 0.345 1.0» - вершина з координатами (x, y, z [, w]).
«vt 0.123 0.234 1.0» - текстурні координати (u, v [, w]).
«vn 0.707 0.000 0.707» - нормалі.
«f 1 2 3» - визначення поверхні (сторін).
. 3.2 Реалізація завантаження текстурних карт
Розроблене додаток може завантажувати текстурні карти у двох форматах - DDS і Bitmap, причому Bitmap може завантажуватися в якості тривимірної текстури.
Завантаження BMP файлів є тривіальним завданням, тому використовуються файли без стиснення, які представляють із себе послідовне опис квітів пікселів.
DDS (Direct Draw Surface) - формат зберігання даних, розроблений корпорацією Microsoft для використання в DirectX SDK. найчастіше використовується для зберігання текстур і застосовується в безлічі 3d додатків, а також в сучасних 3d іграх. Дозволяє зберігати текстури як в стислому, так і не в стислому вигляді.
Ця особливість дозволяє використовувати DDS в консолях нового покоління, таких як Xbox360 і Play Station 3. DDS дозволяє зберігати текстурні масиви. Перевага формату dds полягає в тому, що завдяки підтримці відеокартами DXTn їх драйвера можуть виконувати стиснення текстур «на льоту» (в OpenGL для цього використовується інструкція GL_ARB_texture_compression), що заощаджує час, необхідний на декомпресію стислих текстур в таких форматах як Jpeg. Все вищесказане підвищує швидкодію.
Використання формату DDS дозволяє ще й уникнути появи «артефактів», які виникають при стисненні, що зберігає якість текстур.
3.3.3 Реалізація шейдеров поверхні
Розроблений шейдер поверхні включає в себе обробку трьох текстурних карт:
- Дифузна карта;
- Карта нормалей;
- Карта віддзеркалень.
Шейдер імітує джерело освітлення, тому його координати передаються на вхід.
Реалізація шейдера поверхні виглядає наступним чином:
# version 330 core (location=0) in vec3 vertexPosition_modelspace; (location=1) in vec2 vertexUV; (location=2) in vec3 vertexNormal_modelspace; vec2 UV; vec3 Position_worldspace; vec3 Normal_cameraspace; vec3 EyeDirection_cameraspace ; vec3 LightDirection_cameraspace; mat4 MVP; mat4 V; mat4 M; vec3 LightPosition_worldspace; main () {_ Position=MVP * vec4 (vertexPosition_modelspace, 1); _ worldspace=(M * vec4 (vertexPosition_modelspace, 1)). xyz; _cameraspace=vec3 ( 0,0,0) - (V * M * vec4 (vertexPosition_modelspace, 1)). xyz; LightPosition_cameraspace=(V * vec4 (LightPosition_worldspace, 1)). xyz; _cameraspace=LightPosition_cameraspace + EyeDirection_cameraspace; _cameraspace=(V * M * vec4 (vertexNormal_modelspace, 0)). xyz;
UV=vertexUV;
}
. 4 Розробка програмної та експлуатаційної документації для модуля колірної корекції зображення з використанням бібліотеки OpenGL
Результатом розробки програмної та експлуатаційної документації є такі документи:
- опис програми;
- програма і методика випробувань;
- керівництво системного програміста;
- керівництво оператора.
. 4.1 Розробка опису програми
Опис програми являє собою документ, призначений для зазначення області застосування програми, функціонального складу, кола ви...