Реферат по теме выпускной работы
Содержание
- 1. Актуальность темы
- 2. Цель и задачи исследования, планируемые результаты
- 3. Обзор исследований и разработок
- 3.1 Обзор международных источников
- 3.2 Обзор национальных источников
- 3.3 Обзор локальных источников
- 4. Основы написания программ для графического процессора
- Выводы
- Список источников
1. Актуальность темы
В настоящее время в связи со стремительным развитием
индустрии компьютерных игр, одним из важнейших критериев качества
игр нередко становится фотореалистичность игрового 3D мира.
Динамические визуальные эффекты, такие как цикл смены дня и ночи
и имитация погодных эффектов, способствуют более полному
погружению
пользователей в игровой мир и созданию у них
ощущения реальности окружения.
Пример реалистичной игровой графики представлен на рисунке 1.
Кроме того, в настоящее время созданы все необходимые технические предпосылки для разработки динамического игрового окружения средствами шейдерной графики: постоянное совершенствование архитектуры графических процессоров, увеличение их быстродействия, переход к программируемым графическим процессорам и появление уже третьего поколения графических процессоров, поддерживающих шейдеры, разработка высокоуровневых языков программирования шейдеров.
2. Цель и задачи исследования
Целью работы является рассмотрение уже имеющихся средств разработки динамического игрового окружения для компьютерных игр и разработка динамического игрового окружения для 3D игры.
Основные задачи исследования:
- Сделать обзор имеющихся средств разработки динамического игрового окружения;
- Рассмотреть основные динамические эффекты, которые могут быть реализованы средствами шейдерной графики;
- Разработать алгоритмы реализации анимационных эффектов для игровых сцен;
- Разработать систему генерации динамических изображений с использованием шейдерной графики;
- Проанализировать полученные результаты и оценить эффективность разработанного проекта.
Объект исследования: процесс разработки динамического игрового окружения.
Предмет исследования: методы и алгоритмы создания динамических погодных, атмосферных эффектов и освещения с помощью шейдеров.
Основные характеристики научного исследования, которые характеризуют его научную новизну, заключаются в следующем: рассматривается область разработки динамических фотореалистичных эффектов окружения, которые в данный момент недостаточно освещены в русскоязычных научных источниках; представлена реализация динамического игрового окружения для 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.
Графический процессор получает от программы так называемый вершинный поток — данные, содержащие информацию о положении вершин в пространстве, их цвете, нормалях, текстурных координатах. Эти данные передаются в вершинный шейдер графического процессора, где начинает выполняться исходный код шейдера, написанный программистом на специальном языке. Вершинные шейдеры представляют собой программы, производящие математические операции с вершинами. Обязательно выполняются все матричные преобразования и установка освещения. В процессе своей работы они могут изменять переданные от программы данные, вычисляя и записывая, например, новые координаты вершин, их цвет [25].
Выходные данные вершинного шейдера проходят затем процесс растеризации и интерполяции. Растеризация необходима для точного заполнения примитивов своими пикселями. Интерполяция позволяет добиться плавности перехода от одного цвета к другому [26].
После растеризации и интерполяции все данные поступают в пиксельный шейдер. Пиксельный шейдер выполняется для каждого пикселя изображения. Здесь происходят математические операции над цветом и глубиной пикселей.
Далее над выходными данными пиксельного шейдера выполняется операция Z‑буфера. Вершины объектов расставляются в зависимости от дальности расположения, за счет чего создается объемность изображения. После этого все данные поступают в так называемый фрейм‑буфер, или просто кадр [26].
На сегодняшний день существует два наиболее известных не привязанный к конкретной аппаратуре API для трехмерной визуализации — OpenGL и Microsoft Direct3D [27].
Программы, ориентированные для использования одного из этих стандартов, будут работать и под другими, но вопрос эффективности в этом случае остается открытым [28].
Разработку OpenGL начала Silicon Graphics в конце 1980 годов. Первая версия OpenGL вышла в 1990 году. На данный момент последняя версия OpenGL имеет номер 1.5, то есть спецификации обновляются не слишком часто. OpenGL действует как конечный автомат, то есть установка значений параметров сводится к управлению состояниями автомата. На сегодняшний день OpenGL предоставляет набор из нескольких сотен функций, предоставляющих простой доступ к возможностям видеокарты [27].
Первая работоспособная версия графического API от Microsoft вышла в 1998 году, и с этого момента начала распространятся среди разработчиков. Новые версии API выходят довольно часто, самой свежей на данный момент является версия 9.0. Вершинные и пиксельные шейдеры были впервые реализованы в версии 8.0. Структура Direct3D в последнее время становится все больше похожей на структуру OpenGL, однако Direct3D остается лучше структурированным за счет использования модели COM‑объектов [27].
Выводы
Анализ источников показывает, что вопрос рендеринга изображений на графическом процессоре становится все более актуальным. Англоязычные исследования и разработки охватывают широкий ряд тем, начиная анализом архитектуры и производительности графических процессоров, заканчивая созданием всевозможных визуальных 2D и 3D эффектов. Среди эффектов динамического окружения наиболее полно освещены вопросы рендеринга реалистичного неба, создания реалистичной водной поверхности, а также моделирование систем частиц для создания таких эффектов, как дым, туман, огонь, облака.
В русскоязычных источниках представлены в основном вопросы выполнения на графическом процессоре некоторых математических алгоритмов с большим количеством вычислений для разгрузки центрального процессора. Тем не менее, некоторые работы посвящены рендерингу динамических эффектов для игровых сцен, рассматриваются вопросы формирования динамического освещения и затенения для различных источников света, создания системы частиц в реальном времени.
Список источников
- Robert Cook — Shade Trees [Электронный ресурс]. — Режим доступа: http://www.cs.cmu.edu/afs/cs/academic/... .
- 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 .
- 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 .
- 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 .
- 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 .
- 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 .
- 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 .
- R. Vagner — Terrain Geomorphing in the Vertex Shader[Электронный ресурс]. — Режим доступа: http://www.gamedev.net/page/resources... .
- 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 .
- 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 .
- 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 .
- 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 .
- Сайт разработчиков Nvidia .
- Рябинин К. В. — Адаптивное сглаживание границ объектов на изображении для мобильный устройств [Электронный ресурс]. — Режим доступа: http://elibrary.ru/item.asp?id=22014741 .
- Мальцев А. В. — Реализация системы частиц в реальном времени на GPU [Электронный ресурс]. — Режим доступа: http://elibrary.ru/item.asp?id=23286179 .
- Мальцев А. В. — Применение теневых карт для моделирования теней в виртуальных 3D сценах в реальном времени [Электронный ресурс]. — Режим доступа: http://elibrary.ru/item.asp?id=22938246 .
- Мальцев А. В., Михайлюк М. В. — Реализация теней для направленных источников света в 3D в реальном режиме времени [Электронный ресурс]. — Режим доступа: http://elibrary.ru/item.asp?id=16360912 .
- Викторович А. А. — Программирование графических процессов при помощи расширяемых языков [Электронный ресурс]. — Режим доступа: http://cyberleninka.ru/article/... .
- Тушницкий Р. Б., Кожух И. Я. — Исследование распараллеленных алгоритмов сегментации изображений с использованием вычислений на графическом процессоре [Электронный ресурс]. — Режим доступа: http://cyberleninka.ru/article/... .
- Гонахчян В. И. — Обзор методов упрощения полигональных моделей на графическом процессоре [Электронный ресурс]. — Режим доступа: http://cyberleninka.ru/article/... .
- Романюк О. Н., Довгалюк Р. Ю., Олійник С. В. — Класифікація графічних відеоадаптерів// Наукові праці Донецького національного технічного університету, серія
Інформатика, кібернетика та обчислювальна техніка
, вып. 14 (188), Донецк, ДонНТУ, 2011. — С.211–215. - Зори С. А., Лисеенко В. В. — Методы синтеза реалистичных изображений рельефов и ландшафтов для параллельных вычислительных систем трехмерной компьютерной графики. Материалы 4‑й международной научно‑технической конференции Моделирование и компьютерная графика — 2011. Донецк, 5–8 октября 2011 г. Стр. 114–118.
- 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/... .
- Романюк А. Н., Обидник М. Д., Романюк О. В., Костюкова Н. С. — Особенности архитектурного построения систем формирования трехмерных изображений //Научные труды ДонНТУ. Серия
Информатика, кибернетика и вычислительная техника
. — 2010. — Вып. 12 (165). — С. 87–94 - Современная терминология 3D графики [Электронный ресурс] — Режим доступа: http://www.ixbt.com/video2/terms2k5.shtml .
- Свет [Xbox 360] [Электронный ресурс] — Режим доступа: http://gfaq.ru/publ/igrovye_stati/razrabotka_igr/... .
- С. Сент–Лаурент — Шейдеры для программистов игр и художников [Электронный ресурс] — Режим доступа: http://netlib.narod.ru/library/book0053/index.htm .
- Аппаратное и программное ускорение графических функций [Электронный ресурс] — Режим доступа: http://www.chieftec-ru.com/guide/... .