Рефераты. Адитивна кольорова модель RGB

Адитивна кольорова модель RGB

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ

Бердичівський політехнічний коледж

КОНТРОЛЬНА РОБОТА

з предмета “Комп'ютерна графіка”

Виконав:студент групи Пзс-504

Горпинич О.О.

Перевірив викладач: Козік В.Ю.

м. Бердичів

2007 р.

1. Адитивна кольорова модель RGB

Ця модель використовується для опису кольорів, які можуть бути отримані за допомогою пристроїв, що основані на принципі випромінювання. У якості основних кольорів вибрано червоний (Red), зелений (Green) та синій (Blue). Інші кольори та відтінки можуть бути отримані змішуванням певної кількості кожного з основних кольорів.

Стисло історія системи RGB така. Томас Юнг (1773-1829) узяв три ліхтарі і пристосував до них червоний, зелений і синій світлофільтри. Так були отримані джерела світла відповідних кольорів. Направивши на білий екран світло цих трьох джерел, вчений одержав таке зображення (рис. 1.21).

На екрані світло від джерел давало кольорові кола. У місцях перетинання кіл спостерігалося змішування кольорів. Жовтий колір давало змішування червоного й зеленого, блакитний -- суміш зеленого Й синього, пурпурний -- синього й червоного, а білий колір утворювався змішанням усіх трьох основних кольорів. Якийсь час потому, Джеме Максвелл (1831-1879) виготовив перший колориметр, за допомогою якого людина могла порівнювати монохроматичний колір і колір змішування в заданій пропорції компонентів RGB. Регулюючи яскравість кожного з компонентів, що змішуються, можна домогтися вирівнювання кольорів суміші й монохроматичного випромінювання. Це описується в такий спосіб:

де r, g і Ь -- кількості відповідних основних кольорів.

Співвідношення коефіцієнтів r, g i b Максвелл наочно показав за допомогою трикутника, згодом названого його ім'ям [1]. Трикутник Максвелла є рівнобічним, у його вершинах розташовуються основні кольори -- R, G І В (рис. 1.22). Із заданої точки проводяться лінії, перпендикулярні сторонам трикутника. Довжина кожної лінії й показує відповідну величину коефіцієнта r, g чи Ь. Однакові значення r = g = Ь мають місце в центрі трикутника і відповідають білому кольору. Слід також зазначити, що деякі кольори відображаються точками зовні трикутника RGB -- це означає від'ємне значення відповідного колірного коефіцієнта. Сума коефіцієнтів дорівнює висоті трикутника, а при висоті, що дорівнює одиниці, r + g + b = 1.

Як основні кольори, Максвелл використовував випромінювання з такими довжинами хвиль: 630, 528 і 457 нм.

До теперішнього часу система RGB є офіційним стандартом. Рішенням Міжнародної Комісії з Освітлення -- МКО (СІЕ -- Commision International de VEclairage) у 1931 році були стандартизовані основні кольори, які було рекомендовано використовувати в якості R, G і В. Це монохроматичні кольори світлового випромінювання з довжинами хвиль відповідно:

R -- 700 нм, G -- 546.1 нм, В -- 435.8 нм.

Червоний колір виходить за допомогою лампи розжарювання з фільтром. Для одержання чистих зелених і синіх кольорів використовується ртутна лампа. Також стандартизоване значення світлового потоку для кожного основного кольору [1].

Ще одним важливим параметром для системи RGB є колір, одержаний після змішування трьох компонентів у рівних кількостях. Це білий колір. Виявляється, для того, щоб змішуванням компонентів R, G і В одержати білий колір, яскравості відповідних джерел не повинні бути рівними, а знаходитися у пропорції

Якщо розрахунки кольору робляться для джерел випромінювання з однаковою яскравістю, то зазначене співвідношення яскравостей можна врахувати відповідними масштабними коефіцієнтами [14].

Тепер розглянемо інші аспекти. Колір, створюваний змішуванням трьох основних компонентів, можна представити вектором у тривимірній системі координат R, G і В, зображеній на рис. 1.23.

Чорному кольору відповідає центр координат -- точка (0, 0, 0). Білий колір виражено максимальним значенням компонентів. Нехай це максимальне значення уздовж кожної осі дорівнює одиниці. Тоді білий колір -- це вектор (1, 1, 1). Точки, що лежать на діагоналі куба від чорного до білого, мають однакові значення координат: Ri= Gi= Bi. Це градації сірого -- їх можна вважати білим кольором різної яскравості. Узагалі говорячи, якщо усі компоненти вектора (r, g, b) помножити на однаковий коефіцієнт (k = 0 ... 1 ... 1), то колір (kr, kg, kb) зберігається, змінюється тільки яскравість. Тому для аналізу кольору важливе співвідношення компонентів. Якщо в колірному рівнянні

розділити коефіцієнти r, g i b на їхню суму:

Це рівняння репрезентує вектори кольору (r', g', b'), що лежать в одиничнiй площині r' + g' + b' = 1. Іншими словами, ми перейшли від куба до трикутника Максвелла.

У ході колориметричних експериментів були визначені коефіцієнти (r', g', b'), що відповідають чистим монохроматичним кольорам. Найпростіший колориметр --це призма з білого гіпсу, грані якої освітлюють джерелами світла. На ліву грань спрямоване джерело чистого монохроматичного випромінювання, а права грань освітлюється сумішшю трьох джерел RGB. Спостерігач бачить одночасно дві грані, що дозволяє фіксувати рівність кольорів (рис. 1.24).

Результати експериментів можна зобразити графічно (рис. 1.25).

Як бачимо, коефіцієнти r', g' і b' можуть бути і позитивними, і від'ємними. Що це означає? Те, що деякі монохроматичні кольори не можуть бути представлені сумою компонентів R, G і B. Але як відняти те, чого немає? Для вирівнювання кольору довелося додати до монохроматичного випромінювання один з компонентів R, G чи В. Наприклад, якщо монохроматичне випромінювання для деякого значення розбавлялося червоним, те це можна виразити так:

Як виявилося, жоден колір монохроматичного випромінювання (за винятком самих кольорів R, G і В) не може бути представлений тільки позитивними значеннями коефіцієнтів змішування. Це наочно можна зобразити за допомогою колірного графіка, побудованого на основі трикутника Максвелла (рис. 1.26).

Верхня частина кривої лінії відповідає чистим монохроматичним кольорам, а нижня лінія -- від 380 нм до 780 нм -- представляє так називані пурпурні кольори (суміш синього й червоного), які не є монохроматичними. Точки, що лежать усередині контуру кривої, відповідають реальним кольорам, а поза цим контуром -- нереальним кольорам. Точки усередині трикутника відповідають позитивним значенням коефіцієнтів r', g' та b' і представляють кольори, які можна одержати змішуванням компонентів RGB.

Таким чином, система RGB має неповне колірне охоплення -- деякі насичені кольори не можуть бути представлені сумішшю зазначених трьох компонентів. У першу чергу, це кольори від зеленого до синього, включаючи усі відтінки блакитного -- вони відповідають лівій частині кривої колірного графіка. Ще раз підкреслимо, що мова тут іде про насичені кольори, оскільки, наприклад, ненасичені блакитні кольори змішуванням компонент RGB одержати можна. Незважаючи на неповне охоплення, система RGB широко використовується в даний час -- у першу чергу, в кольорових телевізорах і дисплеях комп'ютерів. Відсутність деяких відтінків кольору не надто помітна.

Ще одним фактором, що сприяє популярності системи RGB, є її наочність -- основні кольори знаходяться в трьох чітко помітних ділянках видимого спектра.

Крім того, однією з гіпотез, що пояснюють колірний зір людини, є трикомпонентна теорія, яка стверджує, що в зоровій системі людини є три типи світлочутливих елементів. Один тип елементів реагує на зелений, інший тип -- на червоний, а третій тип -- на синій колір. Така гіпотеза висловлювалася ще Ломоносовим [14], її обґрунтуванням займалися багато вчених, починаючи з Т. Юнга. Утім, трикомпонентна теорія не є єдиною теорією колірного зору людини.

2. Об'ємні об'єкти, Tess-, NURBS - об'єкти бібліотеки Opengl

В OpenGL передбачені деякі стандартні, найчастіше використовувані тривимірні об'єкти. Набір таких форм представлений у бібліотеці GLU (Utility Library), що реалізована у вигляді модуля glu32.dll й є невід'ємною частиною OpenGL. Вона містить у собі кілька функцій керування проекціями (одну з яких -- gluPerspective -- ми вже використовували), функції роботи з полігонами, кривими та поверхнями типу B-сплайнів й інші функції.

Розглянемо функції gluCylinder, gluSphere, gluDisk І gluPartialDisk .

Перераховані вище об'єкти названі "quadric objects". Параметри slices і stacks визначають кількість плоских граней, використовуваних для апроксимації поверхні. Для того щоб нарисувати подібний об'єкт, потрібно викликати функцію gluNewQuadric, а після рисування звільнити пам'ять викликом функції gluDeleteQuadric

За умовчанням кожен об'єкт рисується із суцільним заповненням. Змінити стиль показу можна викликом функції gluQuadricDrawStyle. Можна задати такі стилі показу: у вигляді точок, розташованих на вершинах багатокутника; каркасне зображення; суцільне заповнення й силует (різновид каркасного). Наприклад, виклик.

Об'єкти даного типу розташовуються у просторі в центрі координат (0, 0, 0) з врахуванням матриці gl_modelview. Тому, щоб нарисувати зображення об'єкта в необхідному місці, потрібно відповідним чином змінити цю матрицю, наприклад, за допомогою функцій glTranslate і glRotate. Нижченаведений приклад ілюструє показ об'єктів типу "quadric objects ".

Зображення, що створюється програмою Studex55, наведене на рис. 11.16.

При підготовці цього рисунка до друку був змінений колір тла на білий. Однак на екрані монітора значно краще виглядає темно-синій колір. У тексті програми:

Для текстур використовуються растри. Вони можуть бути одномірними чи двовимірними. Щоб накласти текстуру, необхідно виконати наступні операції.

1. Відкрити в пам'яті масив, у якому буде зберігатися растр текстури. Число байтів масиву розраховується, виходячи з кількості бітів на піксел текстури. Розміри растру текстури обов'язково повинні дорівнювати ступеню двійки (плюс трохи пікселів на бордюр). Ця вимога створює деякі незручності для програміста, особливо у випадку, коли текстура читається з довільного растрового файлу. Утім, це не є нерозв'язною проблемою -- будь-який растр текстури можна або обрізати, або розтягнути (стиснути) до необхідних розмірів.

Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.