Формування та обробка тривимірних графічних зображень. Інші види комп'ютерної графіки. Де застосовується комп'ютерна графіка

Надіслати свою гарну роботу до бази знань просто. Використовуйте форму нижче

Студенти, аспіранти, молоді вчені, які використовують базу знань у своєму навчанні та роботі, будуть вам дуже вдячні.

Подібні документи

    Комп'ютерна графіка як наука, предметом вивчення якої є створення, зберігання та обробка моделей та їх зображень за допомогою ЕОМ. Області застосування графічних редакторів: Adobe Photoshop та Illustrator, Corel Draw. Растрова та векторна графіка.

    презентація , доданий 17.01.2012

    Комп'ютерна графіка як область інформатики, що займається проблемами отримання різних зображень на комп'ютері. Області застосування комп'ютерної графіки. Двовимірна графіка: фрактальна, растрова та векторна. Особливості тривимірної графіки.

    реферат, доданий 05.12.2010

    Подання графічних даних. Растрова, векторна та фрактальна види комп'ютерної графіки. Колір та колірні моделі: метод кодування інформації для її відтворення на екрані монітора. Основні програми обробки растрової графіки.

    реферат, доданий 01.08.2010

    Механізм графічного представлення даних. Види комп'ютерної графіки: фрактальна, тривимірна, растрова, векторна. Роздільна здатність екранного зображення, лініатури концепції. Зв'язок між параметрами зображення та розміром файлу. Динамічний діапазон.

    реферат, доданий 27.12.2012

    Сфери застосування машинної графіки. Види комп'ютерної графіки. Колірна роздільна здатність та колірні моделі. Програмне забезпечення для створення, перегляду та обробки графічної інформації. Графічні можливості текстових процесорів, графічні редактори.

    контрольна робота , доданий 07.06.2010

    Концепція комп'ютерної графіки. Переваги формату GIF. Відмінні особливостіпрограми "Corel Draw". Команди головного меню Adobe Photoshop. Інструменти та їх дії. Опис використання графічного редактора Photoshop для обробки знімків.

    курсова робота , доданий 18.04.2015

    Комп'ютерна графіка - сфера інформатики, що займається проблемами отримання різних зображень. Види комп'ютерної графіки: растровий, векторний, фрактальний. Програми для створення комп'ютерної анімації, сфера застосування, формати зберігання.

    За останній десяток років графічні карти, пізніше названі 3D-акселераторами,
    пройшли чималий шлях розвитку - від перших SVGA-прискорювачів, про 3D взагалі нічого
    не знали, і до найсучасніших ігрових "монстрів", що беруть на себе
    всі функції, пов'язані з підготовкою та формуванням тривимірного зображення,
    яке виробники називають "кінематографічним". Звичайно, з
    кожним новим поколінням відеокарт творці додавали їм не лише додаткові
    мегагерці і мегабайти відеопам'яті, але і безліч різних функцій і ефектів.
    Давайте ж подивимося, чому, а головне, навіщонавчилися акселератори
    останніх років і що це дає нам, любителям тривимірних ігор.

    Але спочатку незайвим буде з'ясувати, які дії виконує програма (або гра)
    щоб отримати в результаті тривимірну картинку на екрані монітора. Набір
    таких дій прийнято називати 3D-конвеєром- Кожен етап у конвеєрі
    працює з результатами попереднього (тут і далі курсивом виділено терміни,
    які більш детально висвітлені в нашому "Глосарії 3D-графіки" в кінці
    статті).

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

    Далі настає черга власне 3D-конвеєра. Першим кроком у ньому є теселяція- Поділ складних поверхонь на трикутники. Наступні обов'язкові етапи – взаємопов'язані процеси трансформації координат точокабо вершин, з яких складаються об'єкти, їх освітлення, а також відсіканняневидимих ​​ділянок сцени.

    Розглянемо трансформацію координат. У нас є тривимірний світ, в якому розташовані різні тривимірні об'єкти, а в результаті потрібно отримати двомірне плоске зображення цього світу на моніторі. Тому всі об'єкти проходять кілька стадій перетворення в різні системи координат, які ще називають просторами (spaces). На початку локальні,або модельні,координати кожного об'єкта перетворюються на глобальні, або світові,координати. Тобто, використовуючи інформацію про розташування, орієнтацію, масштаб і поточний кадр анімації кожного об'єкта, програма отримує вже набір трикутників в єдиної системикоординат. Потім слід перетворення на систему координат камери (camera space), за допомогою якої ми дивимося на світ, що моделюється. Після чого відлік буде починатися з фокусу цієї камери - по суті як би "з очей" спостерігача. Тепер найлегше виключити з подальшої обробки цілком невидимі ( відбраковування,або culling) та "обрізати" частково видимі ( відсікання,або clipping) для спостерігача фрагменти сцени.

    Паралельно проводиться освітлення (lighting). За інформацією про розташування, колір, тип і силу всіх розміщених у сцені джерел світла розраховується ступінь освітленості та колір кожної вершини трикутника. Ці дані будуть використані пізніше при розтеризації. Наприкінці, після корекції перспективи, координати трансформуються ще раз, тепер уже в екранний простір (screen space).

    У цьому закінчується тривимірна векторна обробка зображення і настає черга двовимірної, тобто. текстуруванняі розтеризації. Сцена тепер є псевдотривимірними трикутниками, що лежать у площині екрана, але ще з інформацією про глибину щодо площини екрану кожної з вершин. Розтеризатор обчислює колір усіх пікселів, що становлять трикутник, і заносить його в кадровий буфер. Для цього на трикутники накладаються текстури, часто в кілька шарів (основна текстура, текстура освітлення, детальна текстура тощо) і з різними режимами модуляції. Також проводиться остаточний розрахунок освітленняз використанням будь-якої моделі затінення, тепер вже для кожного пікселя зображення. На цьому етапі виконується остаточне видалення невидимих ​​ділянок сцени. Адже трикутники можуть розташовуватися на різній відстані від спостерігача, перекривати один одного повністю або частково, або навіть перетинатися. Зараз повсюдно застосовується алгоритм із використанням Z-буфера. Результуючі пікселі заносяться в Z-буфер, і як тільки все буде готове зображення, його можна відображати на екрані і починати будувати наступне.

    Тепер, коли нам зрозуміло пристрій 3D-конвеєра в загальному виглядідавайте поглянемо
    архітектурні відмінності різних поколінь 3D-прискорювачів. Кожна стадія 3D-конвеєра
    дуже ресурсомістка, вимагає мільйонів та мільярдів операцій для отримання одного
    кадру зображення, причому двовимірні етапи текстурування та растеризації набагато
    "ненажерливіше" геометричної обробки на ранніх, векторних, стадіях
    конвеєра. Так що перенесення якомога більшої кількості стадій у "відеозалізо"
    благотворно впливає на швидкість обробки 3D-графіки та значно розвантажує CPU.
    Перше покоління прискорювачів брало на свої плечі тільки останній етап текстурування
    і розтеризацію, всі попередні кроки програма мала прорахувати сама за допомогою
    CPU. Рендеринг відбувався набагато швидше, ніж за повної відсутності 3D-акселерації,
    адже відеокарта вже виконувала найважчу частину роботи. Але все ж із збільшенням
    складності сцен у 3D-іграх програмна трансформація та освітлення ставали вузькими
    шийкою, що перешкоджає збільшенню швидкості. Тому в 3D-акселератори починаючи
    з перших моделей NVidia GeForce і ATI Radeon було додано блок, іменований T&L-блоком.
    Як видно з назви, він відповідає за трансформаціюі освітлення,
    тобто тепер і за початкові стадії 3D-конвеєр. Його навіть правильніше називати
    TCL-блоком (TransformationClippingLighting), оскільки
    відсікання - теж його завдання. Таким чином, гра, що використовує апаратний T&L,
    практично повністю звільняє центральний процесор від роботи над графікою,
    отже, з'являється можливість "навантажити" його іншими розрахунками,
    чи то фізика чи штучний інтелект.

    Здавалося б, усе гаразд і чого ще бажати? Але не варто забувати, що будь-яке перенесення функцій "в залізо" означає відмову від гнучкості, властивої програмним рішенням. І з появою апаратного T&L у програмістів та дизайнерів, які бажають реалізувати якийсь незвичайний ефект, залишилося лише три варіанти дій: вони могли або повністю відмовитися від T&L і повернутися до повільних, але гнучких програмних алгоритмів, або намагатися втручатися в цей процес, виконуючи постобробку зображення (що не завжди можливо і вже дуже повільно) ... або чекати реалізації потрібної функції в наступному поколінні відеокарт. Виробників апаратури такий розклад теж не влаштовував - адже кожне додаткове T&L-розширення призводить до ускладнення графічного чіпа та "роздування" драйверів відеокарт.

    Як бачимо, бракувало способу гнучко, на " мікрорівні " , керувати відеокартою. І таку можливість підказали професійні пакети для створення 3D-графіки. Називається вона шейдер (shader). По суті, шейдер - це невелика програма, що складається з набору елементарних операцій, які часто використовуються в 3D-графіці. Програма, що завантажується в акселератор і безпосередньо управляє роботою самого графічного процесора. Якщо раніше програміст був обмежений набором заздалегідь визначених способів обробки та ефектів, то тепер він може становити простих інструкційбудь-які програми, що дозволяють реалізовувати різні ефекти.

    За своїми функціями шейдери поділяються на дві групи: вершинні(vertex shaders)
    і піксельні(pixel shaders). Перші замінюють собою всю функціональність
    T&L-блок відеокарти і, як видно з назви, працюють з вершинами трикутників.
    В останніх моделях акселераторів цей блок фактично прибраний - його емулює
    відеодрайвер за допомогою вершинних шейдерів Піксельні шейдери надають
    гнучкі можливості для програмування блоку мультитекстурування та працюють
    вже з окремими пікселями екрану.

    Шейдери також характеризуються номером версії - кожна наступна додає до попередніх нові і нові можливості. Найбільш свіжою специфікацією піксельних і вершинних шейдерів на сьогоднішній день є версія 2.0, що підтримується DirectX 9, - на неї і орієнтуватимуться як виробники акселераторів, так і розробники нових ігор. На їхню підтримку апаратурою варто звертати увагу і користувачам, які бажають придбати сучасну ігрову відеокарту. Проте експансія ігор, побудованих на шейдерних технологіях, тільки починається, так що і старіші вершинні шейдери (1.1), і піксельні (1.3 і 1.4) будуть використовуватися ще як мінімум рік, хоча б для створення порівняно простих ефектів – поки що DirectX 9 -сумісні акселератори не набудуть більшого поширення.

    Перші шейдери складалися всього з кількох команд, і їх неважко було написати низькорівневою мовою асемблера. Але зі зростанням складності шейдерних ефектів, що налічують іноді десятки та сотні команд, виникла потреба у більш зручній, високорівневій мові написання шейдерів. Їх з'явилося відразу два: NVidia Cg (C for graphics) та Microsoft HLSL (High Level Shading Language) — останній є частиною стандарту DirectX 9. Переваги та недоліки цих мов та інші нюанси будуть цікаві лише програмістам, тому докладніше на них ми зупинятися не станемо.

    Тепер давайте подивимося, що необхідно для того, щоб отримати всі ті можливості,
    які дає така корисна технологія, як шейдери останнього покоління. А потрібно
    наступне:

    • найсвіжіша версія DirectX, на даний момент це DirectX 9.0b;
    • відеокарта із підтримкою DirectX 9;
    • найсвіжіші драйвери відеокарти (у старіших деякі функції можуть бути відсутні);
    • гра, яка використовує всі ці можливості.

    Тут же хотілося б розвіяти ймовірні помилки. Деякі трактують популярний нині термін "DirectX 9-сумісна відеокарта" наступним чином: "така відеокарта працюватиме і розкриватиме всі свої можливості тільки під API DirectX 9", або "DirectX 9 варто встановлювати на комп'ютер тільки з такою відеокартою". Це не зовсім правильно. Подібне визначення швидше означає: "дана відеокарта має можливості, що вимагаються від неї специфікацією DirectX 9".

    Глосарій 3D-графіки

    Імітація хутра за допомогою шейдерів

    Набір бібліотек, інтерфейсів та угод для роботи з 3D графікою. Зараз широко
    використовуються два 3D API: відкритий та крос-платформний OpenGL (Open Graphics)
    Library) і Microsoft Direct3D (він же DirectX Graphics), що є частиною універсального
    мультимедійний API DirectX.

    3D-акселератор, або 3D-прискорювач (3D-accelerator)

    Відеокарта, здатна брати на себе обробку тривимірної графіки, звільняючи у такий спосіб центральний процесор від цієї рутинної роботи.

    3D-конвеєр, або конвеєр рендерингу (3D-pipeline, або rendering pipeline)

    Багатоступінчастий процес перетворення внутрішніх даних програми на зображення на екрані. Зазвичай включає як мінімум трансформацію та освітлення, текстурування та розтеризацію.

    3D-сцена

    Частина віртуального тривимірного світу підлягає рендерингу в даний момент часу.

    Depth of Field (глибина різкості)

    "Кіноефект", що імітує глибину різкості (фокусна відстань) реальної кінокамери, при цьому об'єкти, що знаходяться у фокусі, мають чіткий вигляд, а решта виглядає розмитими.

    Displacement mapping (текстурування картами зміщення)

    Метод моделювання дрібних деталей рельєфу. При його використанні спеціальною
    текстурою - картою зміщення - задається, наскільки різні частини поверхні
    будуть опуклими або втиснутими щодо базового трикутника, до якого
    застосовується цей ефект. На відміну від рельєфного текстурування, цей метод є
    "чесним" і справді змінює геометричну формуоб'єкт. Бувай
    лише деякі новітні 3D-акселератори безпосередньо підтримують карти усунення.

    MIP-mapping

    Допоміжний метод поліпшення якості та підвищення швидкості текстурування, що полягає у створенні декількох варіантів текстури зі зменшеною роздільною здатністю (наприклад, 128 128, 64 64, 32 32 і т. д.), званих MIP-рівнями. У міру видалення об'єкта вибиратимуться все більш "дрібні" варіанти текстури.

    Motion-blur (він же тимчасовий антиаліасінг)

    Досить нова методикабільш реалістичної передачі руху за рахунок "змащування" зображення об'єктів у напрямку їхнього переміщення. Глядачі звикли до цього ефекту, характерного для кіно, тому без нього картинка здається неживою навіть за високих FPS. Реалізується motion-blur через багаторазове малювання об'єкта в кадр у різних фазах його руху або "розмазуванням" зображення вже на піксельному рівні.

    Z-буфер (Z-buffer)

    Z-буферизація – один із методів видалення невидимих ​​ділянок зображення. При
    його використання для кожного пікселя на екрані у відеопам'яті зберігається відстань
    від цієї точки до спостерігача. Сама відстань називається глибиною сцени, а ця
    ділянка пам'яті - Z-буфером. При виведенні чергового пікселя на екран його глибина
    порівнюється зі збереженою в Z-буфері глибиною попереднього пікселя з такими ж
    координатами, і якщо вона більша, то поточний піксел не малюється - він буде невидимим.
    Якщо ж менше, його колір заноситься в буфер кадру (frame buffer), а нова глибина
    - В Z-буфер. Таким чином гарантується перекриття далеких об'єктів більше
    близькими.

    Альфа-канал (alpha channel) та альфа-змішування (alpha-blending).

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

    Антіаліасінг (antialiasing)

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

    Детальні текстури (detail textures)

    Прийом, що дозволяє уникнути розпливання текстур на близькій відстані від об'єкта
    і досягти ефекту дрібного рельєфу поверхні без надмірного збільшення розміру
    текстури. Для цього використовується основна текстура нормального розміру, на яку
    накладається менша — із регулярним шумовим малюнком.

    Кадровий буфер (frame buffer)

    Ділянка відеопам'яті, в якій виконується робота з формування зображення. Зазвичай використовуються два (рідше три) буфери кадру: один (передній, або front-buffer) відображається на екрані, а другий (задній, або back-buffer) виконується рендеринг. Щойно черговий кадр зображення буде готовий, вони поміняються ролями: другий буфер буде показано на екрані, а перший перемальований заново.

    Карти освітленості (lightmap)

    Простий метод імітації освітлення, що й досі часто застосовується, полягає в накладенні на основну текстуру ще однієї — карти освітленості, світлі і темні місця якої відповідно освітлюють або затіняють зображення базової. Карти освітленості розраховуються наперед, ще на етапі створення 3D-світу, і зберігаються на диску. Цей метод добре підходить для великих, статично освітлених поверхонь.

    Карти середовища (environment mapping)

    Імітація поверхонь, що відбивають, за допомогою спеціальної текстури — карти середовища, що являє собою зображення навколишнього об'єкта світу.

    Мультітектурування (multitexturing)

    Накладення кількох текстур за один прохід акселератора. Наприклад, основний текстури,
    карти освітленості та карти з детальною текстурою. Сучасні відеокарти вміють
    обробляти щонайменше 3-4 текстури за раз. Якщо мультитекстурування не підтримується
    (або необхідно накласти більше шарів текстур, ніж це може зробити акселератор
    "в один прийом"), то використовується кілька проходів, що, природно,
    набагато повільніше.

    Освітлення (lighting)

    Процес розрахунку кольору та ступеня освітленості пікселя кожного трикутника
    в залежності від розташованих рядом джерел світла з використанням одного
    із методів затінення. Часто застосовуються такі методи:

    • плоске затінення (flat shading). Трикутники мають однакову освітленість по всій поверхні;
    • затінення Гуро (Gouraud shading). Інформація про рівень освітленості та колір, розрахована для окремих вершин трикутника, просто інтерполюється поверхнею всього трикутника;
    • затінення Фонга (Phong shading). Висвітлення розраховується індивідуально для кожного пікселя. Найбільш якісний метод.

    Піксел (pixel)

    Окрема точка на екрані, мінімальний елемент зображення. Характеризується глибиною кольору в бітах, що визначає максимально можливу кількість кольорів, і власне значення кольору.

    Простір (space), або система координат

    Деяка частина тривимірного світу, де відлік ведеться від якогось свого початку координат. Обов'язково є система світових (world) координат, щодо початку якої вимірюються положення та орієнтація всіх інших об'єктів у 3D-світі, при цьому кожен з них має свою систему координат.

    Процедурні текстури

    Текстури, що генеруються різними алгоритмами "на льоту", а не малюються художниками заздалегідь. Процедурні текстури може бути як статичними (дерево, метал та інших.), і анімованими (вода, вогонь, хмари). Перевагами процедурних текстур є відсутність малюнку, що повторюється, і менші витрати відеопам'яті для анімації. Але є й недолік — потрібен розрахунок із використанням CPU чи шейдерів.

    Рельєфне текстурування (bump mapping)

    Ефект надання поверхні шорсткості рельєфу за допомогою додаткової текстури, яка називається картою рельєфу (bump map). Геометрія поверхні у своїй не змінюється, отже ефект добре помітний лише за наявності динамічних джерел світла.

    Рендеринг (rendering)

    Процес візуалізації тривимірного зображення. Складається з багатьох етапів, в сукупності званих конвеєром.

    Тексел (texel)

    Піксел, але не екран, а текстури. Мінімальний її елемент.

    Текстурування або накладання текстур (texturing або texture mapping)

    Найпоширеніший метод реалістичного моделювання поверхонь – накладення на них текстур із зображенням. При цьому, звичайно, враховуються відстань, перспектива, орієнтація трикутника.

    Текстура (texture)

    Двовимірне зображення - bitmap, що "натягується" на 3D-об'єкт. За допомогою текстур задаються різні параметри матеріалу, з якого складається об'єкт: його малюнок (найбільш традиційне застосування), ступінь освітленості різних його частин (карта освітленості, або lightmap), здатність відображати світло (specular map) і розсіювати його (diffuse map), нерівності (bump map) та ін.

    Тесселяція (tesselation)

    Процес поділу складних полігонів та кривих поверхонь, описаних математичними функціями, на прийнятні для 3D-акселератора трикутники. Крок цей часто необов'язковий, скажімо, 3D-моделі в більшості ігор зазвичай і так складаються з трикутників. Але, наприклад, закруглені стіни в Quake III: Arena — приклад об'єкта, для якого тесселяція необхідна.

    Крапка, або вершина (vertex)

    Крапка у просторі, задана трьома координатами (x, y, z). Окремі точки рідко використовуються, але є основою для складніших об'єктів: ліній, трикутників, точкових спрайтів. Крім самих координат, до точки можуть "прив'язуватися" інші дані: координати текстури, властивості освітлення та туману тощо.

    Трансформація

    Загальний термін для позначення процесу багатоступеневого перетворення 3D-об'єктів у двовимірне зображення на екрані. Є перекладом набору вершин з однієї системи координат в іншу.

    Трикутник (triangle)

    Практично вся тривимірна графіка складається з трикутників як найпростіших і зручніших для обробки примітивів — три точки завжди однозначно задають площину у просторі, чого не скажеш про складніші багатокутники. Всі інші багатокутники і криволінійні поверхні розбиваються на трикутники (по суті плоскі ділянки), які потім використовуються для обчислення освітленості та накладання текстур. Процес цей називається тесселяцією.

    Фільтрування текстур (texture filtering)

    Метод покращення якості текстурування при зміні відстані до спостерігача. Найпростіший метод – білінійна (bilinear) фільтрація – використовує усереднене значення кольору чотирьох суміжних тексел текстури. Більш складний – трилінійна (trilinear) фільтрація – задіює також інформацію з MIP-рівнів. Найсучасніший і якісніший (а заразом і найповільніший) метод — анізотропна (anisotropic) фільтрація, який підраховує результуюче значення, застосовуючи цілий набір (зазвичай від 8 до 32) текселів, розташованих поруч.

    Шейдер (Шейдер)

    Невелика програма для графічного процесора (GPU) акселератора
    йому спосіб обробки тривимірної графіки.

    Деякі можливості, що реалізуються

    За допомогою шейдерів

    • Оптично точне (попіксельне) освітлення та м'які тіні від усіх об'єктів,
      довільні моделі освітлення;
    • різні ефекти відбиття та заломлення променів для моделювання
      води, льоду, скла, вітражів, підводних відблисків тощо;
    • реалістична бриж і хвилі на воді;
    • "кінематографічні" ефекти Depth of Field (глибина
      різкості
      ) та Motion blur;
    • якісна, детальна анімація скелетних моделей (що складаються із системи
      керуючих анімацією моделі "кісточок"), міміка;
    • так званий "нефотореалістичний рендеринг" (Non-Photorealistic
      Rendering, NPR): імітація стилів малювання різних художників, ефект
      олівцевого начерку або класичної, мальованої 2D-анімації;
    • реалістична імітація тканини, хутра та волосся;
    • процедурні текстури (у тому числі анімаційні), що не потребують витрат
      CPU та завантаження кожного кадру у відеопам'ять;
    • повноекранні фільтри постобробки зображення: серпанок, гало, краплі
      дощу на склі, шумовий ефект тощо;
    • об'ємний рендеринг: більш реалістичні дим та вогонь;
    • багато іншого.
    Цікаві посилання

    www.scene.org
    Величезний архів творчості сотень "демомейкерських" груп та окремих
    майстрів демо-сцени за останні роки. Для тих, хто не знайомий із цим явищем,
    пояснимо: "demo" в даному випадку називається програма, що генерує
    у реальному часі невеликий (зазвичай 5-10 хвилин) ролик із графікою, звуком
    та музикою. Демо останніх років активно використовують найсвіжіші технічні
    напрацювання та, звичайно ж, шейдери.

    www.nvidia.com/view.asp?PAGE=demo_catalog
    Каталог "великих" технологічних демок від NVidia.

    www.nvidia.com/search.asp?keywords=Demo
    Всі технодемки NVidia, у тому числі дуже прості, що складаються з одного
    ефект.

    www.cgshaders.org
    Приклади шейдерних ефектів написаних мовою Cg.

    Істотний прогрес комп'ютерна графіка зазнала з появою можливості запам'ятовувати зображення та виводити їх на комп'ютерному дисплеї, електронно-променевій трубці.

    поточний стан

    Основні сфери застосування

    Розробки в галузі комп'ютерної графіки спочатку рухалися лише академічним інтересом та йшли у наукових установах. Поступово комп'ютерна графіка міцно увійшла до повсякденного життя, стало можливим вести комерційно успішні проекти у цій галузі. До основних сфер застосування технологій комп'ютерної графіки відносяться:

    • Спецефекти, Візуальні ефекти (VFX), цифрова кінематографія;
    • Цифрове телебачення, Всесвітнє павутиння, відеоконференції;
    • Цифрова фотографія та істотно збільшені можливості обробки фотографій;
    • Візуалізація наукових та ділових даних;
    • Комп'ютерні ігри, системи віртуальної реальності (наприклад, тренажери керування літаком);
    • Комп'ютерна графіка для кіно та телебачення

    Наукова робота

    Комп'ютерна графіка є також однією з галузей наукової діяльності. В галузі комп'ютерної графіки захищаються дисертації, а також проводяться різноманітні конференції:

    • конференція Siggraph, проводиться в США
    • конференція Графікон, проводиться в Росії
    • CG-подія проводиться в Росії
    • CG Wave, що проходила в Росії

    На факультеті ВМіК МДУ існує лабораторія комп'ютерної графіки.

    Технічний бік

    За способами завдання зображення графіку можна розділити на категорії:

    2D графіка

    Разом про те, не всяке зображення можна як набір з примітивів. Такий спосіб подання хороший для схем, використовується для шрифтів, що масштабуються, ділової графіки, дуже широко використовується для створення мультфільмів і просто роликів різного змісту.

    Растрова графіка

    Приклад растрового малюнка

    Растрова графіказавжди оперує двовимірним масивом (матрицею) пікселів. Кожному пікселю зіставляється значення – яскравості, кольору, прозорості – чи комбінація цих значень. Растровий образ має кілька рядків і стовпців.

    Без особливих втрат растрові зображення можна лише зменшувати, хоча деякі деталі зображення тоді зникнуть назавжди, що інакше у векторному поданні. Збільшення ж растрових зображень обертається «красивим» виглядом на збільшені квадрати того чи іншого кольору, які раніше були пікселями.

    У растровому вигляді представимо будь-яке зображення, проте цей спосіб зберігання має свої недоліки: більший обсяг пам'яті, необхідний роботи із зображеннями, втрати під час редагування.

    Фрактальна графіка

    Фрактальне дерево

    Фрактал- Об'єкт, окремі елементи якого успадковують властивості батьківських структур. Оскільки детальніший опис елементів меншого масштабу відбувається за простим алгоритмом, описати такий об'єкт можна лише кількома математичними рівняннями.

    Фрактали дозволяють описувати цілі класи зображень, детального описуяких потрібно щодо мало пам'яті. З іншого боку, фрактали слабко застосовні до зображень поза цими класами.

    Тривимірна графіка

    Тривимірна графіка(3D – від англ. три dimensions- «три виміри») оперує з об'єктами у тривимірному просторі. Зазвичай результати є плоскою картинкою, проекцією. Тривимірна комп'ютерна графіка широко використовується в кіно, комп'ютерних ігорах.

    У тривимірній комп'ютерній графіці всі об'єкти зазвичай видаються як набір поверхонь або частинок. Мінімальну поверхню називають полігоном. Як полігон зазвичай вибирають трикутники.

    Усі візуальні перетворення в 3D-графіці керують матрицями (див. також: афінне перетворення в лінійній алгебрі). У комп'ютерній графіці використовується три види матриць:

    • матриця зсуву
    • матриця масштабування

    Будь-який полігон можна подати у вигляді набору з координат його вершин. Так, трикутник матиме 3 вершини. Координати кожної вершини є вектором (x, y, z). Помноживши вектор на відповідну матрицю, отримаємо новий вектор. Зробивши таке перетворення з усіма вершинами полігону, отримаємо новий полігон, а перетворивши всі полігони, отримаємо новий об'єкт, повернутий/зрушений/масштабований щодо вихідного.

    Щорічно відбуваються конкурси тривимірної графіки, такі як Magick next-gen чи Dominance War.

    CGI графіка

    Основна стаття: CGI (кіно)

    Подання кольорів на комп'ютері

    Для передачі та зберігання кольору в комп'ютерній графіці використовуються різні формийого уявлення. У загальному випадку колір є набір чисел, координат в деякій колірній системі.

    Стандартні способи зберігання та обробки кольорів у комп'ютері обумовлені властивостями людського зору. Найбільш поширені системи RGB для дисплеїв та CMYK для роботи в друкарській справі.

    Іноді використовується система з більшим, ніж три, числом компонентів. Кодується спектр відображення або випромінювання джерела, що дозволяє більш точно описати Фізичні властивостікольори. Такі схеми використовуються у фотореалістичному тривимірному рендерингу.

    Реальна сторона графіки

    Будь-яке зображення на моніторі, через його площині, стає растровим, оскільки монітор це матриця, він складається з стовпців і рядків. Тривимірна графіка існує лише в нашій уяві, тому що те, що ми бачимо на моніторі – це проекція тривимірної фігури, а вже створюємо простір ми самі. Таким чином, візуалізація графіки буває тільки растрова і векторна, а спосіб візуалізації це тільки растр (набір пікселів), а від кількості пікселів залежить спосіб завдання зображення.

    Див. також

    • Графічний інтерфейс користувача
    • Фрактальна монотипія

    Посилання

    • Селіверстов М. «3D кіно – нове чи добре забуте старе?»
    • 3D Комп'ютерна графікау каталозі посилань Open Directory Project (dmoz).

    Примітки

    Література

    • Нікулін Є. А.Комп'ютерна геометрія та алгоритми машинної графіки. – СПб: БХВ-Петербург, 2003. – 560 с. - 3000 екз. - ISBN 5-94157-264-6
    • Комп'ютер малює фантастичні світи (ч.2) // Комп'ютер знаходить розум = Artificial Intelligence Computer Images / за ред. В.Л. Стефанюка. – М.: Світ, 1990. – 240 с. - 100 000 екз. - ISBN 5-03-001277-X (рус.); 7054 0915 5 (англ.)
    • Дональд Херн, М. Паулін Бейкер.Комп'ютерна графіка та стандарт OpenGL = Computer Graphics with OpenGL. - 3-тє вид. – М.: «Вільямс», 2005. – С. 1168. – ISBN 5-8459-0772-1
    • Едвард Ангел.Інтерактивна комп'ютерна графіка Вступний курс з урахуванням OpenGL = Interactive Computer Graphics. Підхід зверху вниз із Open GL. - 2-ге вид. – М.: «Вільямс», 2001. – С. 592. – ISBN 5-8459-0209-6
    • Сергєєв Олександр Петрович, Кущенко Сергій Володимирович.Основи комп'ютерної графіки. Adobe Photoshop і CorelDRAW – два в одному. Самовчитель. – М.: «Діалектика», 2006. – С. 544. –

    Це наука, один із розділів інформатики, що вивчає способи формування та обробки зображень за допомогою комп'ютера. Комп'ютерна графіка є одним із наймолодших напрямів інформатики, вона існує близько 40 років. Як і будь-яка наука, вона має свій предмет, методи, цілі та завдання.

    Якщо розглядати комп'ютерну графіку у сенсі, можна виділити три класу завдань, розв'язуваних засобами комп'ютерної графіки:
    1. Переклад опису зображення.
    2. Переведення зображення до опису (завдання розпізнавання образів).
    3. Редагування зображення.
    Хоча сфера застосування комп'ютерної графіки дуже широка, проте, можна назвати кілька основних напрямів, де кошти комп'ютерної графіки стали найважливішими на вирішення завдань:
    1. Ілюстративний, найширший із напрямків, що охоплює завдання від візуалізації даних до створення анімаційних фільмів.
    2. Саморозвиваюче - комп'ютерна графіка дозволяє розширювати та вдосконалювати свої можливості.
    3. Дослідницьке - створення засобами комп'ютерної графіки зображення абстрактних понять чи моделей, фізичного аналога яких поки що немає з метою коригування їх властивостей.


    Слід, проте, відзначити, виділення цих напрямів дуже умовно може бути розширено і детально. Основними областями застосування комп'ютерної графіки вважаються:
    1. Інформаційний дисплей.
    2. Дизайн.
    3. Моделювання.
    4. Створення інтерфейсу користувача.
    Більшість сучасних графічних систем використовують принцип конвеєрної архітектури. Побудова деякого зображення екрані монітора відбувається поточечно, причому кожна точка проходить деякий фіксований цикл обробки. Спочатку перша точка проходить перший етап цього циклу, потім переходить на другий етап, в цей час друга точка починає проходження першого етапу обробки і так далі, тобто будь-яка графічна система паралельно обробляє кілька точок зображення, що формується.


    Такий підхід дозволяє суттєво зменшити час обробки всього зображення в цілому, причому чим складніше зображення, тим більше виходить виграш у часі. Конвеєрна архітектура застосовується для графічних систем як програмному, і на апаратному рівні. На вхід такого конвеєра потрапляють координати точки реального світу, а на виході виходять координати точки в системі координат екрану і її колір.
    У розглянутому циклі обробки точки можна виділити кілька етапів, основними є такі:
    1. Геометричні перетворення.
    2. Відсікання.
    3. Проеціювання.
    4. Зафарбовування.
    На етапі геометричних перетворень координати всіх об'єктів реального світу наводяться до єдиної системи координат (світова система координат). У комп'ютерній графіці нерідко використовуються прийоми, за допомогою яких складні об'єкти видаються як сукупність простих (базових) об'єктів, при цьому кожен з базових об'єктів може бути підданий деяким геометричним перетворенням. В якості базових об'єктів може бути обраний довільний набір об'єктів, але можна використовувати фіксований набір Платонових тіл. Як правило, складні геометричні перетворення подаються також через композицію щодо простих (базових) перетворень, як яких використовуються афінні перетворення.


    На етапі відсікання визначається, які з точок потраплять у поле зору спостерігача, і з цієї множини вибираються ті, що залишаться видимими. На цьому етапі застосовуються алгоритми видалення невидимих ​​ребер та поверхонь.
    На етапі проектування координати точки (до цих пір залишаються тривимірними) перетворюються на координати екрана за допомогою перетворення проектування.
    На етапі зафарбовування здійснюється розрахунок кольору точки, що відображається за допомогою методів локального або глобального зафарбовування. Як правило, на цьому етапі не вдається використовувати інформацію про освітлення всієї сцени в цілому, тому будуються моделі освітленості різного ступеня детальності, яка залежить від необхідності побудови статичного або динамічного зображення.

    Урок "Комп'ютерна графіка"

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

    Історія комп'ютерної графіки

    Про комп'ютерну графіку заговорили після дослідів Джей У. Форрестера (інженер комп'ютерної лабораторії Массачусетського технологічного інституту) у 1951 році.

    До попередників комп'ютерних малюнків можна віднести перші невигадливі картинки з точок і літер, одержувані на телетайпах телеграфу, та - на друкуючих пристроях, підключених до ЕОМ.

    Отже, на початку були точки та прості лінії. Цей набір швидко збагачувався. 1970-ті роки стали часом широкого використання машинної графіки. Однією з найважливіших відмінностей сучасних ПК є можливість виведення на екран графічного зображення.

    На доступний для багатьох інструмент комп'ютерна графіка перетворилася завдяки Айвену Сазерленду, автору однієї з перших графічних систем.

    Напрями комп'ютерної графіки

    Напрям

    Призначення

    Програмне забезпечення

    Наукова

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

    Ділова

    Створення ілюстрацій, що використовуються для складання ілюстрації статистичних звітів та ін.

    Використовується у роботі установ.

    Електронні таблиці

    Конструкторська

    Створення плоских та тривимірних зображень.

    Використовується у роботі інженерів-конструкторів.

    Системи автоматизованого проектування (САПР)

    Ілюстративна

    Створення довільних малюнків та креслень.

    Графічні редактори

    Створення реалістичних зображень. Використовується для створення рекламних роликів, мультфільмів, комп'ютерних ігор, відеоуроків, відеопрезентацій та ін.

    Графічні редактори (зі складним математичним апаратом)

    Комп'ютерна анімація

    Створення зображень, що рухаються, на екрані монітора. Слово "анімація" означає "оживлення".

    Аналоговий та дискретний способи уявлення

    ГРАФІЧНИХ ЗОБРАЖЕНЬ

    Людина здатнасприймати та зберігати інформацію у формі образів (зорових, звукових, дотикових, смакових, нюхових).

    Зорові образи можуть бути збережені у вигляді зображень (рисунків, фотографій, …)

    При аналоговому уявленні фізична величина набирає безліч значень, причому її значення змінюютьсябезперервно.

    При дискретному поданні фізична величина набуває кінцевої множини значень, причому її величина змінюєтьсястрибкоподібно.

    Усі органи чуття людини мають справу з аналоговими сигналами.

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

    Таким чином, уявлення про аналоговий спосіб слід розглядати як необхідну передумову переходу до цифрових технологій.

    Растрова графіка

    Якість кодування зображеннязалежить від :

    Розмір точки - Чим менший її розмір, тим більша кількість точок у зображенні

    - кількості кольорів (палітри) - чим більша кількість можливих станів точки, тим якісніше зображення

    Переваги растрової графіки:

    1. Кожному відеопікселю можна надати будь-який з мільйонів відтінків кольорів. Якщо розміри пікселів наближаються до розмірів відеопікселів, то растрове зображення виглядає не гіршим за фотографію. Таким чином, растрова графіка ефективно представляє зображення фотографічної якості.

    2. Комп'ютер легко керує пристроями виводу, які використовують точки для представлення окремих пікселів. Тому растрові зображення можна легко роздрукувати на принтері.

    Недоліки растрової графіки:

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

    Найпростішим рішенням проблеми зберігання растрових зображень є збільшення ємності пристроїв, що запам'ятовують комп'ютера. Сучасні жорсткі та оптичні диски надають значні обсяги пам'яті даних. Оборотною стороною цього рішення є вартість, хоча ціни на ці пристрої, що запам'ятовують, останнім часом помітно знижуються.

    Інший спосіб вирішення проблеми полягає в стисненні графічних файлів,тобто використання програм, що зменшують розміри файлів растрової графіки за рахунок зміни способу організації даних. Існує кілька методів стиснення графічних даних.

    2. Проблемою растрових файлів є масштабування:

    - при суттєвому збільшенні зображення з'являється зернистість, ступінчастість

    При великому зменшенні суттєво знижується кількість точок, тому зникають найдрібніші деталі, відбувається втрата чіткості

    Для обробки растрових файлів використовують редактори: MS Paint, Adobe Photoshop

    Векторна графіка

    Векторні зображення формуються з об'єктів (точка, лінія, коло, прямокутник...), які зберігаються в пам'яті комп'ютера у вигляді графічних примітивів і математичних формул, що їх описують.

    Переваги векторної графіки

    1. При кодуванні векторного зображення зберігається не саме зображення об'єкта, а координати точок, використовуючи які програма щоразу відтворює зображення знову.

    Тому обсяг пам'яті векторних зображень дуже малий у порівнянні з растровою графікою.

    ПРЯМОКУТНИК 1, 1, 200, 200, червоний, зелений

    Нестиснений растровий опис квадрата вимагає приблизно в 1333 рази більшої пам'яті, ніж векторний.

    2. Векторні зображення можна легко масштабувати без втрати якості.

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

    Недоліки векторної графіки

    1. Векторна графіка не призначена для створення фотографій якості. У векторному форматі зображення завжди виглядатиме як малюнок.

    У останніх версіях векторних програм впроваджується дедалі більше елементів " живопису " (падаючі тіні, прозорості та інші ефекти, раніше властиві виключно програмам точкової графіки).

    2. Векторні зображення іноді не виводяться на друк або виглядають на папері не так, як хотілося б.

    Це тому, що векторні зображення описуються тисячами команд.

    У процесі друку ці команди передаються принтеру, а може, не розпізнавши будь-який примітив, замінити його іншим – схожим, зрозумілим принтеру.

    Інформація про векторне зображення кодується як звичайна буквено-цифрова та обробляється спеціальними програмами:CorelDRAW, Adobe Illustrator.

    Фрактальна графіка

    Зображення будується за такою формулою. У пам'яті комп'ютера зберігається не зображення, а лише формула, за допомогою якої можна отримати безліч різних зображень.

    Фрактали - це геометричні об'єкти із дивовижними властивостями: будь-яка частина фракталу містить його зменшене зображення.

    Тобто скільки фрактал не збільшуй, з будь-якої його частини на вас буде дивитися його зменшена копія.

gastroguru 2017