Технології побудови тривимірного зображення. СПК

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

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

Для отримання тривимірного зображення на площині потрібні наступні кроки:

•	моделювання - створення тривимірної математичної моделі сцени і об'єктів в ній.

• рендеринг (візуалізація) - побудова проекції відповідно до обраної фізичною моделлю. • висновок отриманого зображення на пристрій виведення - дисплей або принтер.


Однак, у зв'язку зі спробами створення 3D-дисплеїв і 3D-принтерів, тривимірна графіка не обов'язково включає в себе проектування на площину.

1. Моделювання Схема проектування сцени на екран комп'ютера

Сцена (віртуальний простір моделювання) включає в себе кілька категорій об'єктів:

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

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

2. Рендеринг

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

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

   Z-буфер (використовується в OpenGL і DirectX 10);
   Сканлайн (scanline) - він же Ray casting ("кидання променя", спрощений алгоритм зворотного трасування променів) - розрахунок кольору кожної точки картинки побудовою променя з точки зору спостерігача через уявне отвір в екрані на місці цього пікселя "в сцену" до перетину з першою поверхнею. Колір пікселя буде таким же, як колір цієї поверхні (іноді з урахуванням освітлення і т. д.);
   Трасування променів (рейтрейсінг, англ. raytracing ) - Те саме, що і сканлайн, але колір пікселя уточнюється за рахунок побудови додаткових променів (відображення, заломлення і т. д.) від точки перетину променя погляду. Незважаючи на назву, застосовується тільки зворотній трасування променів (тобто саме від спостерігача до джерела світла), пряма вкрай неефективна і споживає занадто багато ресурсів для отримання якісної картинки;
   Глобальне освітлення ( англ. global illumination , Radiosity) - розрахунок взаємодії поверхонь і середовищ у видимому спектрі випромінювання за допомогою інтегральних рівнянь. 

Грань між алгоритмами трасування променів в даний час практично стерлася. Так, в 3D Studio Max стандартний визуализатор називається Default scanline renderer, але він вважає не тільки внесок дифузного, відбитого та власного (кольори самосвеченія) світла, а й згладжені тіні. З цієї причини, частіше поняття Raycasting відноситься до зворотної трасуванні променів, а Raytracing - до прямої.

Найбільш популярними системами рендеринга є:

   PhotoRealistic RenderMan (PRMan)
   mental ray
   V-Ray
   FinalRender
   Brazil R / S
   BusyRay
   Turtle
   Maxwell Render
   Fryrender
   Indigo Renderer
   LuxRender
   YafaRay
   POV-Ray 

Внаслідок великого обсягу однотипних обчислень рендеринг можна розбивати на потоки (распараллелівать). Тому для рендеринга вельми актуально використання багатопроцесорних систем. Останнім часом активно ведеться розробка систем рендеринга використовують GPU замість CPU, і вже сьогодні їх ефективність для таких обчислень набагато вище. До таких систем відносяться:

   Refractive Software Octane Render
   AAA studio FurryBall
   RandomControl ARION (гібридна) 

Багато виробників систем візуалізації для CPU також планують ввести підтримку GPU (LuxRender, YafaRay, mental images iray).

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

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

Програмні пакети, що дозволяють створювати тривимірну графіку, тобто моделювати об'єкти віртуальної реальності і створювати на основі цих моделей зображення, дуже різноманітні. Останні роки стійкими лідерами в цій галузі є комерційні продукти: такі як 3D Studio Max, Maya, Lightwave 3D, Softimage, Sidefx Houdini, Maxon Cinema 4D і порівняно нові Rhinoceros 3D, Nevercenter Silo або ZBrush. Крім того, існують і відкриті продукти, поширювані вільно, наприклад, пакет Blender (дозволяє створювати 3D моделі, c подальшим рендерингом (комп'ютерної візуалізацією)), K-3D і Wings3D.

3.1. SketchUp

Безкоштовна програма SketchUp дозволяє створювати моделі, сумісні з географічними ландшафтами ресурсу Google Планета Земля, а також переглядати в інтерактивному режимі на комп'ютері користувача кілька тисяч архітектурних моделей, які викладені на безкоштовному постійно поповнювати ресурси Google Cities in Development (видатні будівлі світу), створені спільнотою користувачів.

Тривимірна графіка активно застосовується в системах автоматизації проектних робіт (САПР) для створення твердотільних елементів: будівель, деталей машин, механізмів, а також в архітектурної візуалізації (сюди відноситься і так звана "віртуальна археологія"). Широко застосовується 3D графіка і в сучасних системах медичної візуалізації.