Реферат за темою випускної роботи
Зміст
Зростання комп'ютерних технологій відбувається інтенсивними темпами. Розширюються сфери їх застосування. Підвищується потреба їх поліпшення і розвитку. Однією з таких областей є комп'ютерна графіка. Комп'ютерна графіка почала свій розвиток з 50-х років. З кожним роком вона набувала все більшої значущості. З'являлися нові технології і алгоритми. На сьогоднішній день існує безліч способів візуалізації для досягнення різних ефектів в залежності від поставлених завдань.
1. Апаратно-програмна підтримка трасування променів
За допомогою методу трасування променів досягається отримання зображень з високою реалістичністю. З його допомогою легко реалізуються такі ефекти, як відображення, прозорість, затемнення і безліч інших. І при цьому метод дозволяє відстежувати промені, що розширює його застосування не тільки для простої побудови зображень, але і для моделювання різноманітних процесів.
Метою роботи є зменшення витрат апаратури на формування променів і пошук їх перетинів з об'єктами сцени при реалізації алгоритму зворотного трасування променів. Для досягнення мети в роботі вирішуються наступні завдання:
Предмет дослідження – синтез зображень на основі методу трасування променів.
Об'єкт дослідження – апаратурні рішення при реалізації трасувальника променів.
Наукове значення роботи полягає в подальшому розвитку теорії та практики проектування графічних систем синтезу зображень і їх використання для вдосконалення алгоритмічних і архітектурних рішень, орієнтованих на функціонування в реальному масштабі часу.
2. Особливості трасування променів
Отже, що ж таке трасування променів? Трасування променів – це процес простеження шляхів від заданої точки в сцені і оцінки впливу на цю точку матеріалу інших точок з тривимірного оточення. Результатом є змінений колір аналізованої точки. Таким чином можна прораховувати тіні, відображення, заломлення і пряму освітленість об'єкта [1].
При прямому трасуванні променів (випромінюваності) з джерела світла (1) виходить пучок променів. Їх траєкторія відстежується і при попаданні на об'єкт (2). Далі відстежується траєкторія з цієї точки до глядача (4), при цьому отримуємо значення пікселя на сцені (3) (рисунок 1).
Рисунок 1 – Приклад отримання значення пікселя методом випромінюваності
Метод випромінюваності базується на припущенні дифузного віддзеркалення світла, що дозволяє попередньо, на етапі пре процесування, розрахувати енергетичні параметри поверхонь відображуваних об'єктів і тим самим виключити етап розрахунку параметрів освітленості з робочою стадії і об'єднати етапи геометричних перетворень, розшарування/раструваня і видалення невидимих елементів. В результаті рішення системи формуються значення щільності потоку енергії, для кожної ділянки перераховуються в інтенсивності ділянок, значення яких не залежать від положення спостерігача. Для побудови зображення значення інтенсивностей перераховуються в вузли апроксимації граней ділянками, а на етапі відтворення виконується лінійна або білінійна інтерполяція інтенсивностей найближчих до точки перетину променя візування з межею вузлів. Метод випромінюваності складається з чотирьох обчислювальних кроків:
При цьому перші три кроки можуть бути виконані на стадії препроцесуваня і тільки останній – на робочій стадії.
Даний метод має серйозний недолік: безліч зайвих розрахунків. З джерела світла до об'єктів доходить лише частина променів. При цьому витрачається час на розрахунок променів, які в підсумку не досягнуть об'єктів і не гратимуть ролі для візуалізації певної сцени. Тому існує метод зворотного трасування променів.
2.2 Зворотне трасування променів
При зворотному трасуванні відслідковуються промені, які потрапляють в око спостерігача. Від ока випускаються промені. При перетині таким променем об'єкта сцени відстежується: чи видно ця точка одному з джерел світла (якщо їх декілька). Для цього з цієї точки випускаються промені до кожного джерела світла. Якщо промінь знаходить перетин з іншим об'єктом перш, ніж досягне джерела, то така точка знаходиться в тіні і висвітлювати її не потрібно. Якщо ж промінь досяг джерел, то освітленість даної точки буде дорівнює сумі освітленостей від кожного такого джерела. Якщо ж об'єкт має ще й відображають властивості, то для відбитого променя повторюється аналогічна трасування. Такий метод автоматично скорочує обчислювальну навантаження.
3. Значення апаратурною підтримки
Для реалізації алгоритму трасування променів у реальному часі необхідна його апаратурна підтримка. При візуалізації зображення доводиться виконувати велику кількість розрахунків. При цьому їх число можна скоротити, якщо приймати суміжні пікселі рівними. Для цього використовують метод інтерполяції. Наприклад, якщо для зображення 1024×1024 провести інтерполяцію по блокам 4×4, то число процесів зменшиться в 7 разів [2].
Не дивлячись на всілякі модифікації даного алгоритму кількість розрахунків для високоякісної візуалізації залишає бажати кращого. Але при цьому даний алгоритм має високу здатність до розпаралелюваня. Ця здатність обмежена лише технічними можливостями сучасних графічних карт і систем. Тому для звичайних користувачів трасування променів доступна тільки частково. Графічні системи з використанням даного методу є дорогими. Тому їх можуть дозволити собі використовувати лише великі компанії, які професійно займаються комп'ютерною графікою або дослідженнями з використанням моделювання.
Розглянемо приклад розпаралелювання алгоритму на прикладі математичного виразу для пошуку перетину променя з полігональним об'єктом. Промінь задан параметричним рівнянням (1). Кожна грань об'єкта – масивами координат вершин {x [n], y [n], z [n]} і нормальним вектором N = {nx, ny, nz}, заданими в системі координат об'єкту (СКО).
де – координата початку променя в СКО;
– параметри променя (вектора) в СКО.
Параметр t визначає перетин променя з многогранником і визначається відношенням (2) чисельника (dev) до знаменника (div), взятому з протилежним знаком.
Знаменник являє собою скалярне множення вектора променя на нормальний вектор межі (вираз 3).
Чисельник є підстановка точки початку променя в рівняння площини грані (5). При цьому вільний член рівняння площини, d, визначається з виразу (4) підстановкою координат будь-якої вершини межі в рівняння.
UML дозволяє створити платформу для незалежного опису, яке потім може бути використано для прийняття рішень про програмну (мікропрограму) або апаратну реалізацію тієї чи іншої частини системи. UML підтримується значною частиною інструментальних засобів [3]. Для побудови UML-діаграм виділимо блоки елементарних обчислень (рисунок 2).
Рисунок 2 – UML уявлення блоків елементарних обчислень EBL: а) Sub-machine M1, b) Sub-machine A1, c) Sub-machine В1
Реалізація виразу (3) вимагає 3-х множень і 2-х складань (рисунок 3), такий блок назвемо P0BL. Використовуючи введені вище блоки елементарних обчислень отримуємо UML-діаграма блоку обчислення скалярного твори.
Рисунок 3 – UML-діаграма блоку обчислення скалярного множення (P0BL)
Блок обчислення чисельника має ту ж організацію, але в Sub-machine A1 разом з Res2 потрібно подати значення d. Позначимо такий блок P1BL. Ділене і дільник незалежні і, отже, можуть обчислюватися паралельно. При цьому для чисельника необхідно попередньо обчислити параметр d. Рисунок 4 показує такий порядок обчислень.
Рисунок 4 – UML-діаграма послідовно-паралельної реалізації виразів (3)–(5)
Якщо для обчислення dev замість блоку з P1BL структурою застосувати блок з P0BL структурою, а потім до результату (dev0) додати параметр d (вираження 6), то вирази (3), (4) і перша частина з (6) можуть бути розраховані паралельно (рисунок 5).
Рисунок 5 – UML-діаграма паралельної реалізації виразів (3)–(5)
Таким чином можна наочно оцінити реалізацію різними способами і вибрати оптимальне рішення поставленого завдання.
4. Аналіз сучасного стану використання методу
Через те, що за допомогою методу трасування променів досягаються дуже реалістичні зображення, то зацікавленість у цьому методі досить висока. Його використовують для комп'ютерної графіки в мультфільмах і кіно. Така компанія, як PIXAR давно співпрацює з NVIDIA і створює нові мультиплікації з меншими витратами часу і з якісною графікою.
Рисунок 6 – Використання NVIDIA OptiX и Katana в реальному часі (PIXAR) (анимація: 306×146px, 5 кадрів, 10 циклів, 146kb)
NVIDIA активно розробляє різноманітні технології (CUDA, Iray) і графічні процесори (GeForce, Quadro і Tesla) для прискорення обчислень методом трасування променів.
Imagination Technologies продемонструвала роботу своїх апаратних прискорювачів трасування променів. Спеціалізовані прискорювачі Caustic 2500 (з двома чіпами RT2 і 16 Гбайт пам'яті DDR2) і Caustic 2100 (один чіп RT2 і 8 Гбайт пам'яті DDR2) (рисунок 7) були представлені в січні 2013 року [4].
Рисунок 7 – Плата з прискорювачем трасування променів Caustic 2500, розміщеному під відеокартою
Ще в 2014 році Imagination Technologies представили PowerVR GR6500, який став першим мобільним GPU, що містить виділений блок Ray Tracing Unit (RTU), який відповідає саме за формування зображення методом трасування променів. Правда, до споживчого сегмента ця технологія все ще не достигла, хоча професійні настільні прискорювачі продаються вже досить давно [5]. На Mobile World Congress2016 компанія представила серію графічних процесорів для бюджетного сегмента з новою GPU-архітектурою - Series8XE (рисунок 8). Вона буде використовуватися в смартфонах, планшетах, телевізорах, обладнанні для потокового мовлення і автомобілях [6].
Рисунок 8 – Imagination Technologies Series8XE
Не відстає від них і AMD. У 2016 році компанія відкрила вихідні тексти бібліотеки побудови тривимірних зображень методом трасування променів FireRays 2.0 і публікації її вихідних текстів. Бібліотека може використовувати різні бекенд (OpenCL GPU, OpenCL CPU, Embree і скоро Vulkan) для прискорення розрахунку взаємодії променів з поверхнями і підтримує роботу в Linux, OS X і Windows. Крім відеокарт AMD FirePro (відеокарти для робочих станцій) і Radeon (відеокарти для настільних ПК і ноутбуків), апаратне прискорення також забезпечується для GPU Intel (HD 4300 HD 5300) і NVIDIA (GeForce GTX970 і Titan X). Код відкритий під ліцензією MIT і переданий під заступництво проекту GPUOpen [7].
У свою чергу в INTEL існують розробки без використання GPU. OSPRay (open source, scalable, and portable ray tracing) – движок для високої продуктивності візуалізації високої точності на базі архітектури INTEL CPU. OSPRay повністю заснований на CPU, і працює на будь-якому ноутбуці, робочій станції або обчислювальному вузлі в системах для високопродуктивних обчислень. OSPRay побудований в першу чергу на Embree і ISPC (INTEL SPMD Program Compiler), і повністю використовує сучасні набори інструкцій, таких як INTEL SSE, AVX, AVX2 і AVX-512 для досягнення високої продуктивності рендеринга [8]. Embree являє собою набір відтворювальних ядер трасування променів, розроблених в INTEL [9].
Прикладом нетрадиційного використання технологій NVIDIA є вирішення проблеми, що виникла з зведеної в Лондоні вежею. Виявилося, що зігнуте скло, за яке 37-поверховий хмарочос прозвали Walkie-Talkie (тобто рацією), здатне створювати небезпечні концентрації сонячних променів. Ця будівля вже розплавило припаркований поруч Jaguar XJ і буквально зварити шампунь в магазинчику неподалік. На щорічній конференції NVIDIA по GPU-технологіям GTC 2015 за допомогою графічних процесорів NVIDIA було показано, яким чином п'яте за висотою будівля у світі перетворилося в небезпечного палія. Змоделювавши ситуацію з лондонським хмарочосом, дослідники виявили, що відбиті від Walkie-Talkie сонячні промені могли заподіяти ще більшої шкоди. Скляні вигини створюють на поверхні точки, в яких температура може підніматися до 93 градусів Цельсія. Якщо ще трохи змінити вигин поверхні, ця будівля могла б розтопити і свинець.
Разом з компанією Honda NVIDIA продемонстрували першу інтерактивну візуалізацію цілого автомобіля. У процесі демонстрації не просто крутили цифровий прототип автомобіля. Показали, як знімати шари, щоб дістатися до нутрощів машини, включаючи дроти і пружини сидінь. Представлена технологія обіцяє вирішити багато відомих проблеми. І деякі маловідомі.
До останнього часу моделювання відбитого світла займало вкрай багато часу. Тому зазвичай їм займалися на етапі презентації замовнику практично закінчених проектів, використовуючи специфічні умови освітлення. Найчастіше презентувалися обрані ракурси моделі, а не інтерактивне моделювання взаємодії об'єкта з змінюваним довкіллям (рисунок 9). Нова технологія рендеринга Iray 2015 змінює процес. У парі з відеокартою Quadro M6000, новим флагманом лінійки професійних рішень NVIDIA, Iray 2015 моделює взаємодію світла з об'єктами в сцені в міру зміни макета дизайнерам [10]. Такий підхід дозволить моделювати відображення променів не тільки для побудови зображень, але і для вивчення їх впливу.
Рисунок 9 – Моделювання в реальному часі за допомогою технології NVIDIA Iray
Реалізація методу трасування променів продовжує свій активний розвиток. У сучасних відеокартах для користувачів може здійснюватися часткова трасування зображень, але при цьому збільшуються витрати часу. Головною проблемою на сьогоднішній день є те, що графічні системи з реалізацією даного методу залишаються дорогими, і трасування в реальному часі недоступна більшості користувачів. Але процес візуалізації можна прискорити за рахунок інтерполяції і розпаралелювання обчислень, що значно прискорить витрати часу. Зменшити вартість подібних систем можна зменшенням витрат апаратури, що і належить досліджувати в даній роботі.
При написанні даного реферату магістерська робота ще не завершена. Остаточне завершення: липень 2017 року. Повний текст роботи та матеріали по темі можуть бути отримані у автора або його керівника після зазначеної дати.