При такій колірній корекції можливе застосування комплексних колірних операцій, так як можливо довільне перетворення входів-виходів. Тривимірні текстури колірної корекції, стали стандартами для ICC-профілювання, так як дозволяють змоделювати комплексні взаємодії різних пристроїв.
При використанні тривимірної текстури для колірної корекції можна представити будь-який вид колірного перетворення, а такі тривіальні операції як зміна яскравості, насиченості і контрасту виглядають на такий текстурі наочно.
Однак слід зазначити, що даний метод колірної корекції зображення має деякі недоліки:
- не вирішує проблему урахування становища об'єктів у просторі. Даний вид колірної корекції може обробляти зображення тільки попиксельно;
- колірний простір корректируемого зображення повинне лежати в суворо визначених рамках. Якщо трапляється зворотна ситуація, частина інформації при корекції зображення може бути втрачена.
У тривимірній текстурі перетворення відбувається за принципом зіставлення кожного вихідного значення кольору певного вимірюванню. Червоний канал відповідає ширині тривимірної текстури перетворення, зелений відповідає довжині, і синій - глибині.
Схема роботи шейдера колірної корекції за допомогою тривимірної текстури показана на малюнку 2.4:
Малюнок 2.4 - Схема роботи шейдера колірної корекції зображення за допомогою тривимірної текстури
. 4 Кольорова корекція з використанням буфера глибини
Використання буфера глибини є самим просунутим методом при колірної корекції тривимірного зображення. Така колірна корекція, приміром, може використовуватися для відображення великих ландшафтів - на великій відстані кольору будуть менш насичені.
Для колірної корекції з використанням буфера глибини використовуються дві градієнтні карти, одна з яких коректує зображення на близькій дистанції, друга - на дальній. Для того, щоб шейдерная програма мала інформацію про дальності об'єктів, на його вхід передається текстурная карта, в яку був відмалювали буфер глибини для поточного кадру. У шейдерам відбувається процедура лінеаризації буфера глибини, і надалі змішання двох результатів колірної корекції (для близької і далекої відстані) залежно від його значення.
Такий метод колірної корекції активно використовується в сучасних тривимірних іграх, де присутня стилістична необхідність витримати певний колірний баланс в сцені. Наприклад, віддалені об'єкти ми можемо привести до загальної колірної гамі, а близькі об'єкти матимуть природні кольори, практично не піддаючись колірної корекції.
Продуктивність при такому підході до колірної корекції буде нижче, ніж в інших випадках, що обумовлено рендером буфера глибини в текстуру, проте це буде не дуже істотно. Також, якщо врахувати, що в сучасних тривимірних додатках буфер глибини може бути використаний не тільки для колірної корекції, це не буде додатково навантажувати додаток, в якому використовується модуль.
Схема роботи колірної корекції зображення з використанням буфера глибини показана на малюнку 2.5
2.5 Проектування бібліотеки кольорокорекції
. 5.1 Розробка архітектури програми
У сучасному підході до програмування важлива універсальність і гнучкість розроблюваного програмного забезпечення. Це необхідно для швидкої адаптації програмного забезпечення під будь-які потреби, пов'язані з основними завданнями, яке воно виконує. У відповідності з даним підходом розроблюваний програмний модуль буде мінімальним, і в нього входитимуть тільки найнеобхідніші блоки.
Оскільки в рамках диплома розробляється демонстраційна програма, яка показує роботу модуля колірної корекції, у пояснювальній записці буде розглядатися відразу вся архітектура, як модуля колірної корекції, так і демонстраційної програми.
Рисунок 2.5 - Схема роботи шейдера колірної корекції зображення з використанням буфера глибини
. 5.2 Розробка діаграми варіантів використання
Суть даної діаграми полягає в наступному: проектована система представляється у вигляді безлічі сутностей або акторів, що взаємодіють з системою за допомогою так званих варіантів використання. При цьому актором називається будь сутність, що взаємодіє з системою ззовні. Це може бути людина, технічний пристрій, програма або будь-яка інша система, яка може служити джерелом впливу на моделируемую систему так, як визначить сам розробник. У свою чергу, варіант використання служить для опису сервісів, які система надає акторові. Іншими словами, кожен варіант використання визначає де...