Тривимірна графіка (3D Graphics. Три виміри зображення) - розділ комп'ютерної графіки, сукупність прийомів і інструментів (як програмних, так і апаратних), призначених для зображення об'ємних об'єктів.
Тривимірне зображення на площині відрізняється від двовимірного тим, що включає побудову геометричної проекції тривимірної моделі сцени на площину (наприклад, екран комп'ютера) за допомогою спеціалізованих програм (проте, зі створенням і впровадженням 3D-дисплеїв і 3D-принтерів, тривимірна графіка не обов'язково включає в себе проектування на площину). При цьому модель може як відповідати об'єктам з реального світу (автомобілі, будівлі, ураган, астероїд), так і бути повністю абстрактною (проекція чотиривимірного фрактала).
Тривимірна графіка активно застосовується для створення зображень на площині екрану або аркуша друкованої продукції в науці і промисловості, наприклад в системах автоматизації проектних робіт (САПР; для створення твердотільних елементів: будівель, деталей машин, механізмів), архітектурної візуалізації (сюди відноситься і так звана « віртуальна археологія »), в сучасних системах медичної візуалізації.
Саме широке застосування - в багатьох сучасних комп'ютерних іграх. Також як елемент кінематографа, телебачення, друкованої продукції.
Для отримання тривимірного зображення на площині потрібні наступні кроки:
· Моделювання - створення тривимірної математичної моделі сцени і об'єктів в ній;
· Текстурування - призначення поверхонь моделей растрових або процедурних текстур (має на увазі також настройку властивостей матеріалів - прозорість, відбиття, шорсткість та ін.);
· Освітлення - встановлення та налаштування джерел світла;
· Анімація (в деяких випадках) - надання руху об'єктів;
· Динамічна симуляція (в деяких випадках) - автоматичний розрахунок взаємодії частинок, твердих / м'яких тіл і ін. З модельованими силами гравітації, вітру, виштовхування і ін. А також один з одним;
· Візуалізація (візуалізація) - побудова проекції відповідно до обраної фізичної моделлю;
· Висновок отриманого зображення на пристрій виведення - дисплей або принтер.
· Геометрія (побудована за допомогою різних технік (напр. Створення полігональної сітки) модель, наприклад будівля);
· Матеріали (інформація про візуальні властивості моделі, наприклад колір стін і відбиває / заломлююча здатність вікон);
· Джерела світла (настройки напрямки, потужності, спектра освітлення);
· Віртуальні камери (вибір точки і кута побудови проекції);
· Сили і впливу (настройки динамічних спотворень об'єктів, застосовується в основному в анімації);
· Додаткові ефекти (об'єкти, що імітують атмосферні явища: світло в тумані, хмари, полум'я та ін.)
Завдання тривимірного моделювання - описати ці об'єкти і розмістити їх в сцені з допомогою геометричних перетворень відповідно до вимог до майбутнього зображенню.
Призначення матеріалів: для сенсора реальної фотокамери матеріали об'єктів реального світу відрізняються за ознакою того, як вони відображають, пропускають і розсіюють світло; віртуальним матеріалами задається відповідність властивостей реальних матеріалів - прозорість, відбиття, розсіювання світла, шорсткість, рельєф та ін.
Найбільш популярними пакетами суто для моделювання є:
· Robert McNeel Assoc. Rhinoceros 3D;
Для створення тривимірної моделі людини або істоти може бути використана, як прообраз (в більшості випадків) Скульптура.
Текстурування має на увазі проектування растрових або процедурних текстур на поверхні тривимірного об'єкту відповідно до карти UV-координат, де кожній вершині об'єкта ставиться у відповідність певна координата на двомірному просторі текстури.
Полягає в створенні, напрямку і налаштування віртуальних джерел світла. При цьому, в віртуальному світі джерела світла можуть мати негативну інтенсивність, відбираючи світло із зони свого "негативного висвітлення". Як правило, пакети 3D графіки надають такі типи джерел освітлення:
· Omni light (Point light) - всенаправленний
· Spot light - конічний (прожектор), джерело променів, що розходяться
· Directional light - джерело паралельних променів
· Area light (Plane light) - світловий портал, що випромінює світло з площини
· Photometric - джерела світла, що моделюються за параметрами яскравості світіння в фізично вимірних одиницях, із заданою температурою напруження
Існують також інші типи джерел світла, що відрізняються за своїм функціональним призначенням в різних програмах тривимірної графіки і візуалізації. деякі пакети надають можливості створювати джерела об'ємного світіння (Sphere light) або об'ємного освітлення (Volume light), в межах строго заданого обсягу. Деякі надають можливість використовувати геометричні об'єкти довільної форми.
Одне з головних покликань тривимірної графіки - надання руху (анімація) тривимірної моделі, або імітація руху серед тривимірних об'єктів. Універсальні пакети тривимірної графіки мають досить багатими можливостями по створенню анімації. Існують також вузькоспеціалізовані програми, створені суто для анімації і володіють дуже обмеженим набором інструментів моделювання:
· PMG Messiah Studio
На цьому етапі математична (векторна) просторова модель перетворюється в плоску (растрову) картинку. Якщо потрібно створити фільм, то рендерится послідовність таких картинок - кадрів. Як структура даних, зображення на екрані представлено матрицею точок, де кожна точка визначена принаймні трьома числами: інтенсивністю червоного, синього і зеленого кольору. Таким чином рендеринг перетворює тривимірну векторну структуру даних в плоску матрицю пікселів. Цей крок часто вимагає дуже складних обчислень, особливо якщо потрібно створити ілюзію реальності. Найпростіший вид рендеринга - це побудувати контури моделей на екрані комп'ютера за допомогою проекції, як показано вище. Зазвичай цього недостатньо і потрібно створити ілюзію матеріалів, з яких виготовлені об'єкти, а також розрахувати спотворення цих об'єктів за рахунок прозорих середовищ (наприклад, рідини в склянці).
Існує кілька технологій рендеринга, часто комбінованих разом. наприклад:
· Z-буфер (використовується в OpenGL і DirectX 10);
· Сканлайн (scanline) - він же Ray casting ( «кидання променя», спрощений алгоритм зворотного трасування променів) - розрахунок кольору кожної точки картинки побудовою променя з точки зору спостерігача через уявне отвір в екрані на місці цього пікселя «в сцену» до перетину з першій поверхнею. Колір пікселя буде таким же, як колір цієї поверхні (іноді з урахуванням освітлення і т. Д.);
· Трасування променів (рейтрейсінг. Англ. Raytracing) - те саме, що і сканлайн, але колір пікселя уточнюється за рахунок побудови додаткових променів (відбитих, переломлених і т. Д.) Від точки перетину променя погляду. Незважаючи на назву, застосовується тільки зворотна трасування променів (тобто якраз від спостерігача до джерела світла), пряма вкрай неефективна і споживає занадто багато ресурсів для отримання якісної картинки;
· Глобальне освітлення (англ. Global illumination. Radiosity) - розрахунок взаємодії поверхонь і середовищ у видимому спектрі випромінювання за допомогою інтегральних рівнянь.
Грань між алгоритмами трасування променів в даний час практично стерлася. Так, в 3D Studio Max стандартний візуалізатор називається Default scanline renderer, але він вважає не тільки внесок дифузного, відбитого і власного (кольори самосвеченія) світла, а й згладжені тіні. З цієї причини, частіше поняття Raycasting відноситься до зворотного трасування променів, а Raytracing - до прямої.