Русский   English
ДонНТУ   Портал магістрів

Реферат за темою випускної роботи

Зміст

1. Актуальність теми

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

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

Малюнок 1 — Реалістична 3D графіка у грі Assassin’s Creed

Малюнок 1 — Реалістична 3D графіка у грі Assassin’s Creed

2. Мета і завдання дослідження

Метою роботи є розгляд вже наявних засобів розробки динамічного ігрового оточення для комп’ютерних ігор і розробка динамічного ігрового оточення для 3D гри.

Основні завдання дослідження:

  1. Зробити огляд наявних засобів розробки динамічного ігрового оточення;
  2. Розглянути основні динамічні ефекти, які можуть бути реалізовані засобами шейдерной графіки;
  3. Розробити алгоритми реалізації анімаційних ефектів для ігрових сцен;
  4. Розробити систему генерації динамічних зображень з використанням шейдерной графіки;
  5. Проаналізувати отримані результати та оцінити ефективність розробленого проекту.

Об’єкт дослідження: процес розробки динамічного ігрового оточення.

Предмет дослідження: методи та алгоритми створення динамічних погодних, атмосферних ефектів і освітлення за допомогою шейдерів.

Основні характеристики наукового дослідження, які характеризують його наукову новизну , полягають в наступному: розглядається область розробки динамічних фотореалістичних ефектів оточення, які в даний момент недостатньо висвітлені в російськомовних наукових джерелах; представлена реалізація динамічного ігрового оточення для 3D ігор, яка може бути використана для створення фотореалістичних ефектів оточення для розробки ігор під безліч платформ.

3. Огляд досліджень і розробок

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

3.1 Огляд міжнародних джерел

Шейдери виросли з робіт Кука і Перлина. Так, у статті Shade Trees [1] Роберт Кук розглядає гнучку деревоподібну модель затінення тривимірних об’єктів, яка може представляти широкий спектр характеристик затінення. Модель є високоефективною, оскільки дозволяє адаптувати розрахунки затінення для різних типів поверхні.

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

У статті The GeForce 6 Series GPU Architecture [2] Emmett Kilgariff і Randima Fernando описують архітектуру графічних процесорів GeForce серії 6 від NVIDIA, які забезпечують сотні гігафлоп обчислень з плаваючою точкою одинарної точності. Дається загальний огляд, де ГП вписується в загальну комп’ютерну систему, а потім описується архітектура графічного процесора з його характеристиками.

Стаття Shader Performance Analysis on a Modern GPU Architecture [3] авторів Victor Moya, Carlos Gonzalez, Jordi Roca, Agustin Fernandez і Roger Espasa являє собою аналіз продуктивності блоків обробки шейдерів в сучасних графічних процесорах, на основі реальних графічних додатків. У статті описана архітектура сучасного графічного процесора, аналізуються ефекти продуктивності різних конфігурацій блоків обробки шейдерів і порівнюється класичний графічний процесор з уніфікованим шейдерним графічним процесором.

Cem Cebenoyan у статті Graphics Pipeline Performance [4] розглядає особливості роботи конвеєра рендерінга, приводить аналіз продуктивності багатопроцесорних систем, заснованих на графічному процесорі. У статті представлений алгоритм оптимізації програм на ГП, пошуку вузьких місць в них.

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

У статті Effective Water Simulation from Physical Models Mark Finch і Cyan Worlds [5] представляють систему для моделювання і рендерінга великих водойм з використанням графічного процесора. Запропонована авторами система поєднує в собі геометричні нерівності основної сітки з генерацією динамічної карти нормалей. Система підходить для використання в ігрових сценаріях в режимі реального часу.

Juan Guardado і Daniel Sanchez-Crespo у статті Rendering Water Caustics [ 6 ] представляють нову техніку для візуалізації каустик водної поверхні в режимі реального часу, описуючи метод візуалізації виходячи з фізичних основ каустик водної поверхні. Техніка є процедурної і припускає використання мов шейдерів високого рівня для її реалізації.

Стаття Arul Asirvatham і Hugues Hoppe Terrain Rendering Using GPU‑Based Geometry Clipmaps [7] присвячена заснованої на використанні графічного процесора реалізації рендерінга ландшафту на основі геометрії clipmaps. У запропонованому методі всі обчислення виконані на графічному процесорі, шляхом обробки геометрії рельєфу у вигляді набору зображень.

Реалізації рельєфу поверхні на ГП присвячена також стаття Terrain Geomorphing in the Vertex Shader Деніела Вагнера [8], в якій описується метод швидкої візуалізації рельєфу поверхні за допомогою гео‑міпмаппінга, який заснований на поділі місцевості на набір невеликих сіток. Для рендерінга застосовується довільну кількість текстур у поєднанні з використанням декількох проходів рендерінга для альфа‑змішування.

У статті GPU‑Generated Procedural Wind Animations for Trees [9] описаний процедурний метод синтезу візуалізації реалістичного руху дерев від поривів вітру. Основна мета такого підходу полягає в моделюванні та візуалізації великого відкритого оточення з великою кількістю рослинності. Цей метод використовує всю потужність графічного процесора, використовуючи процедурні розрахунки анімації у вершинних шейдерах.

Стаття Real‑Time Simulation and Rendering of 3D Fluids [10] присвячена анімації таких ефектів, як дим, вода і вогонь. Описано методи моделювання таких ефектів, їх подання в режимі реального часу і способи інтеграції в додатки реального часу. Моделювання ефектів засноване на їх фізичних характеристиках.

Добре освітленим є також питання подання динамічного неба з використанням шейдерів.

Так, у роботі Clouds and Stars: Efficient Real‑Time Procedural Sky Rendering Using 3D Hardware авторів Timothy Roden, Ian Parberry [11] запропонований ряд алгоритмів, заснованих на використанні графічного процесора, для інтерактивного рендерінга неба, повністю придатних для використання в режимі реального часу. У методі моделюються багатошарові динамічні хмари і зірки.

У статті Generating and Rendering Procedural Clouds in Real Time on Programmable 3D Graphics Hardware [12] обговорюється процес генерації і рендерінга процедурних хмар для 3D середовища за допомогою програмованого 3D графічного обладнання. Хмари генеруються за допомогою алгоритму шуму Перлина. У статті також порівнюється продуктивність запропонованого методу з продуктивністю деяких інших відомих алгоритмів візуалізації динамічних хмар.

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

3.2 Огляд національних джерел

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

У роботі К. В. Рябініна [14] запропонований спосіб згладжування меж об’єктів на зображенні, заснований на суперпозиції модифікованих алгоритмів суперсемплінга і швидкого апроксимованого антиаліасінга. Даний спосіб забезпечує високу візуальну якість результату, швидкість візуалізації і незалежність від програмно‑апаратної платформи.

А. В. Мальцев в роботі Реалізація системи частинок в реальному часі на GPU [15] пропонує технологію розподіленого моделювання та візуалізації явищ навколишнього середовища, що не мають чітких геометричних меж (наприклад, диму, полум’я , струменів води, дощу, снігу тощо) із застосуванням сучасних багатоядерних графічних процесорів. Технологія включає два етапи: перший — обчислення стану системи частинок в заданий момент часу у вигляді масиву даних про частки, другий — візуалізація отриманого масиву з синтезом на льоту необхідної геометрії частинок, розрахунком їх освітленості і накладенням текстур. Обидва етапи повністю виконуються на графічному конвеєрі відеокарти, що дозволяє досягти високого ступеня паралелізму. Для цього задіяний механізм шейдерной обробки, включаючи вершинний, геометричний і Фрагментний шейдери. У статті також описуються практичні результати пропонованих рішень, орієнтовані на використання в системах візуалізації реального часу.

Цьому автору належить ще ряд робіт, присвячених використанню графічного процесора для тривимірних сцен. Так, у роботі Застосування тіньових карт для моделювання тіней у віртуальний 3D сценах в реальному часі [16] пропонуються методи і алгоритми моделювання тіней в тривимірних віртуальних сценах, що містять спрямовані і всенаправлені джерела світла, з використанням різних типів тіньових карт: планарних, параболічних і каскадних. Детально розглядається процес створення і застосування таких карт в масштабі реального часу. Для реалізації алгоритмів використовуються сучасні засоби візуалізації, включаючи шейдери і механізм FBO для прямої візуалізації в текстуру.

Схожа стаття Реалізація тіней для спрямованих джерел світла в 3D в режимі реального часу А. В. Мальцева і М. В. Міхаілюк [17] присвячена методам і алгоритмам реалізації в режимі реального часу ефекту тіней для спрямованих джерел світла в тривимірних віртуальних сценах з використанням тіньових карт (shadow maps). Вводиться розширена модель для розрахунку освітленості в точці поверхні віртуального об’єкта, що візуалізується, заснована на моделі млинців і враховує затінення і щільність тіні. Детально розглядається процес створення тіньових карт для спрямованих джерел світла і застосування цих карт в режимі реального часу з використанням розширеної моделі розрахунку освітленості.

А. А. Вікторович у статті Програмування графічних процесорів за допомогою розширюваних мов [18] розглядає систему програмування ГП NUDA, створену на основі розширюваної мови Nemerle. Вона дає програмісту контроль над процесом перенесення програми на ГП, переклавши механічну роботу на компілятор.

У статті Дослідження розпаралелених алгоритмів сегментації зображень з використанням обчислень на графічному процесорі Р. Б. Трушніцкого і І. Я. Кожух [19] розглянуті дослідження паралельних алгоритмів сегментації зображень з використанням обчислень на графічному процесорі. Для порівняння алгоритмів за якістю і швидкодії використовується аналіз гістограм і кластеризація. Наведено результати досліджень і практичні рекомендації до їх використання.

В. І. Гонахчян в роботі Огляд методів спрощення полігональних моделей на графічному процесорі [20] розглядає деякі відомі алгоритми спрощення полігональних моделей, що використовують можливості розпаралелювання незалежних операцій виключення ребер і спекулятивних оцінок візуальної якості полігонального подання. Порівнюються основні характеристики описаних алгоритмів і паралельних програм, а також даються рекомендації щодо їх практичного використання.

3.3 Огляд локальних джерел

Особливостям моделювання та обробки зображень на графічному процесорі присвячені і деякі роботи співробітників ДонНТУ.

Так, у статті Класифікація графічних відеоадаптерів О. Н. Романюк, Р. Ю. Довгалюк, С. В. Олейнік [21] наводиться класифікація графічних відеоадаптерів для визначення ключових характеристик необхідного відеоадаптера залежно від поставлених цілей його використання.

У роботі С. А. Зорі, В. В. Лісеенко Методи синтезу реалістичних зображень рельєфів і ландшафтів для паралельних обчислювальних систем тривимірної комп’ютерної графіки [22] розглядаються основні сучасні методи побудови зображень рельєфів і ландшафтів для дослідження ефективності їх реалізації на паралельних обчислювальних архітектурах систем комп’ютерної графіки.

У статті High‑quality hardware accelerated visualization of particulate materials [23] описується нова підсистема для візуалізації матеріалів у вигляді частинок. Він заснований на методі візуалізації, який приймає переваги сучасних графічних апаратних засобів і виконує інтерактивне уявлення великих збірок частинок. Метод, який був запропонований в даній роботі, дозволяє досягти високого рівня якості зображення з подальшим експортом даних в зображення і відео файли.

А. Н. Романюк, М. Д. Обіднік, О. В. Романюк, Н. С. Костюкова в роботі Особливості архітектурної побудови систем формування тривимірних зображень [24] розглядають особливості функціонально‑архітектурної побудови систем формування тривимірних зображень, основні підходи до розпаралелювання процедур синтезу графічних сцен, технології об’єднання двох або більше відеокарт в одній системі для спільної роботи над одним зображенням. Показано, що підвищення продуктивності та реалістичності можна досягти за рахунок використання нових підходів для формування тривимірних зображень, підвищення функціональних можливостей і продуктивності шейдерних процесорів.

4. Основи розробки програм для графічного процесора

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

Процес відображення графіки на екрані представлений на малюнку 2.

Малюнок 2 — Етапи обробки графіки графічним конвеєром (Розмір анімації: 11,4 Кб, Кількість кадрів: 8, Кількість повторів: 10)

Малюнок 2 — Етапи обробки графіки графічним конвеєром
(Розмір анімації: 11,4 Кб, Кількість кадрів: 8, Кількість повторів: 10)

Графічний процесор отримує від програми так званий вершинний потік — дані, що містять інформацію про становище вершин у просторі, їх колір, нормалі, текстурні координати. Ці дані передаються в вершинний шейдер графічного процесора, де починає виконуватися вихідний код шейдера, написаний програмістом на спеціальній мові. Вершинні шейдери являють собою програми, що виробляють математичні операції з вершинами. Обов’язково виконуються всі матричні перетворення і установка освітлення. В процесі своєї роботи вони можуть змінювати передані від програми дані, обчислюючи і записуючи, наприклад, нові координати вершин, їх колір [ 25 ].

Вихідні дані вершинного шейдера проходять потім процес растеризации та інтерполяції. Растеризация необхідна для точного заповнення примітивів своїми пікселями. Інтерполяція дозволяє домогтися плавності переходу від одного кольору до іншого [26].

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

Далі над вихідними даними пиксельного шейдера виконується операція Z‑буфера. Вершини об’єктів розставляються в залежності від дальності розташування, за рахунок чого створюється об’ємність зображення. Після цього всі дані надходять в так званий фрейм‑буфер, або просто кадр [26].

На сьогоднішній день існує два найбільш відомих не прив’язаних до конкретної апаратури API для тривимірної візуалізації — OpenGL і Microsoft Direct3D [27].

Програми, орієнтовані для використання одного з цих стандартів, працюватимуть і під іншим, але питання ефективності в цьому випадку залишається відкритим [28].

Розробку OpenGL почала Silicon Graphics (SGI) наприкінці 1980 років. Перша версія OpenGL вийшла в 1990 році. На даний момент остання версія OpenGL має номер 1.5, тобто специфікації оновлюються не надто часто. OpenGL діє як кінцевий автомат, тобто установка значень параметрів зводиться до управління станами автомата. На сьогоднішній день OpenGL надає набір з декількох сотень функцій, які надають простий доступ до можливостей відеокарти [27].

Перша працездатна версія графічного API від Microsoft вийшла в 1998 році, і з цього моменту почала поширюватися серед розробників. Нові версії API виходять досить часто, найсвіжішої на даний момент є версія 9.0. Вершинні і піксельні шейдери були вперше реалізовані у версії 8.0. Структура Direct3D останнім часом стає все більше схожою на структуру OpenGL, проте Direct3D залишається краще структурованим за рахунок використання моделі COM‑об’єктів [27].

Висновки

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

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

Список джерел

  1. Robert Cook — Shade Trees [Электронный ресурс]. — Режим доступа: http://www.cs.cmu.edu/afs/cs/academic/... .
  2. E. Killgariff, R. Fernando The GeForce 6 Series GPU Architecture. — GPU Gems 2: programming techniques for high‑performance graphics and general‑purpose computation (Matt Pharr ed), 2005 [электронный ресурс] — Режим доступа: http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter30.html .
  3. V. Moya, C. Gonzalez, J. Roca, A. Fernandez, R. Espasa — Shader Performance Analysis on a Modern GPU Architecture [Электронный ресурс]. — Режим доступа: http://www.eecg.toronto.edu/~moshovos/ACA05/read/GPU-micro.pdf .
  4. C. Cebenoyan — Graphics Pipeline Performance. — GPU Gems: programming techniques for high‑performance graphics and general‑purpose computation (Matt Pharr ed), 2004 [электронный ресурс] — Режим доступа: http://http.developer.nvidia.com/GPUGems/gpugems_ch28.html .
  5. M. Finch, C. Worlds — Effective Water Simulation from Physical Models. — GPU Gems: programming techniques for high‑performance graphics and general‑purpose computation (Matt Pharr ed), 2004 [электронный ресурс] — Режим доступа: http://http.developer.nvidia.com/GPUGems/gpugems_ch01.html .
  6. J. Guardado, D. Sanches‑Crespo — Rendering Water Caustics. — GPU Gems: programming techniques for high‑performance graphics and general‑purpose computation (Matt Pharr ed), 2004 [электронный ресурс] — Режим доступа: http://http.developer.nvidia.com/GPUGems/gpugems_ch02.html .
  7. A. Asirvathan, H. Hoppe — Terrain Rendering Using GPU‑Based Geometry Clipmaps. — GPU Gems 2: programming techniques for high‑performance graphics and general‑purpose computation (Matt Pharr ed), 2005 [электронный ресурс] — Режим доступа: http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter02.html .
  8. R. Vagner — Terrain Geomorphing in the Vertex Shader[Электронный ресурс]. — Режим доступа: http://www.gamedev.net/page/resources... .
  9. R. Zioma — GPU‑Generated Procedural Wind Animations for Trees — GPU Gems3: programming techniques for high‑performance graphics and general‑purpose computation (Matt Pharr ed), 2004 [электронный ресурс] — Режим доступа: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch05.html .
  10. K. Crane, I. Llamas, S. Tariq — Real‑Time Simulation and Rendering of 3D Fluids — GPU Gems3: programming techniques for high‑performance graphics and general‑purpose computation (Matt Pharr ed), 2004 [электронный ресурс] — Режим доступа: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch30.html .
  11. T. Roden, I. Parberry — Clouds and Stars: Efficient Real‑Time Procedural Sky Rendering Using 3D Hardware [Электронный ресурс]. — Режим доступа: https://larc.unt.edu/ian/pubs/clouds_and_stars.pdf .
  12. M. Hasan, S. Karim — Generating and Rendering Procedural Clouds in Real Time on Programmable 3D Graphics Hardware [Электронный ресурс]. — Режим доступа: http://paris.cs.wayne.edu/~ay2703/research/publications/getPDF2INMIC2005.pdf .
  13. Сайт разработчиков Nvidia .
  14. Рябинин К. В. — Адаптивное сглаживание границ объектов на изображении для мобильный устройств [Электронный ресурс]. — Режим доступа: http://elibrary.ru/item.asp?id=22014741 .
  15. Мальцев А. В. — Реализация системы частиц в реальном времени на GPU [Электронный ресурс]. — Режим доступа: http://elibrary.ru/item.asp?id=23286179 .
  16. Мальцев А. В. — Применение теневых карт для моделирования теней в виртуальных 3D сценах в реальном времени [Электронный ресурс]. — Режим доступа: http://elibrary.ru/item.asp?id=22938246 .
  17. Мальцев А. В., Михайлюк М. В. — Реализация теней для направленных источников света в 3D в реальном режиме времени [Электронный ресурс]. — Режим доступа: http://elibrary.ru/item.asp?id=16360912 .
  18. Викторович А. А. — Программирование графических процессов при помощи расширяемых языков [Электронный ресурс]. — Режим доступа: http://cyberleninka.ru/article/... .
  19. Тушницкий Р. Б., Кожух И. Я. — Исследование распараллеленных алгоритмов сегментации изображений с использованием вычислений на графическом процессоре [Электронный ресурс]. — Режим доступа: http://cyberleninka.ru/article/... .
  20. Гонахчян В. И. — Обзор методов упрощения полигональных моделей на графическом процессоре [Электронный ресурс]. — Режим доступа: http://cyberleninka.ru/article/... .
  21. Романюк О. Н., Довгалюк Р. Ю., Олійник С. В. — Класифікація графічних відеоадаптерів// Наукові праці Донецького національного технічного університету, серія Інформатика, кібернетика та обчислювальна техніка, вып. 14 (188), Донецк, ДонНТУ, 2011. — С.211–215.
  22. Зори С. А., Лисеенко В. В. — Методы синтеза реалистичных изображений рельефов и ландшафтов для параллельных вычислительных систем трехмерной компьютерной графики. Материалы 4‑й международной научно‑технической конференции Моделирование и компьютерная графика — 2011. Донецк, 5–8 октября 2011 г. Стр. 114–118.
  23. Volkov V. P., Dosta M., Heinrich S., Svjatnyj V. A. — High‑quality hardware accelerated visualization of particulate materials [Электронный ресурс]. — Режим доступа: http://ea.donntu.ru:8080/jspui/bitstream/... .
  24. Романюк А. Н., Обидник М. Д., Романюк О. В., Костюкова Н. С. — Особенности архитектурного построения систем формирования трехмерных изображений //Научные труды ДонНТУ. Серия Информатика, кибернетика и вычислительная техника. — 2010. — Вып. 12 (165). — С. 87–94
  25. Современная терминология 3D графики [Электронный ресурс] — Режим доступа: http://www.ixbt.com/video2/terms2k5.shtml .
  26. Свет [Xbox 360] [Электронный ресурс] — Режим доступа: http://gfaq.ru/publ/igrovye_stati/razrabotka_igr/... .
  27. С. Сент–Лаурент — Шейдеры для программистов игр и художников [Электронный ресурс] — Режим доступа: http://netlib.narod.ru/library/book0053/index.htm .
  28. Аппаратное и программное ускорение графических функций [Электронный ресурс] — Режим доступа: http://www.chieftec-ru.com/guide/... .