Графика в компьютерных играх

Определение сущности шейдера - программы для визуального определения поверхности объекта. Исследование и анализ специфических особенностей бампмаппинга. Характеристика эффектов глубин и наложения неровностей. Ознакомление с понятием фотограмметрии.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 22.03.2018
Размер файла 36,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Введение

На заре становления персонального компьютера игры в основном были текстовыми: описывалась обстановка в которой находится игрок, последний должен был набирать на клавиатуре команды типа "открыть дверь" или "взять чашку" в процессе решения различного рода головоломок. Такие игры называют текстовыми квестами (от анг. quest - искать). Время шло, появились графические двумерные квесты. На экране монитора отображались локации (от анг. location - расположение или местонахождение), по которым путешествовал нарисованный герой. Стоит вспомнить прекрасные квесты от Sierra Entertainment: Mystery House - первый графический квест в истории компьютерных игр, King's Quest IV, Leisure Suit Larry, Space Quest.

Все эти игры были "плоскими", локации рисовались художниками и в общем были статическими. Многим игрокам хотелось того, что в английском называют action - действия, т.е. динамического развития событий, когда локации изменяются в зависимости не только от местонахождения игрока, но и его взгляда. В первую очередь это так называемый вид от первого лица. А для этого статической плоской картинки уже недостаточно, а мощности компьютера должны быть в состоянии каждую секунду пересчитывать картинку в так называемой перспективе, когда удаленные предметы выглядят меньше, чем приближенные. Самые известные из динамических игр от первого лица - это так называемые шутеры (от анг. shoot - стрелять). Игрок в таких играх обычно с оружием бегает по локациям и уничтожает врагов, а игровой движок (game engine, программа которая отвечает за вывод трехмерной картинки и взаимодействие персонажа с игровым миром) несколько раз в секунду (для комфортной игры не менее 30 раз) обновляет картинку на экране. У игрока создается впечатление движения.

Но если еще буквально 10 лет назад графика в играх была, мягко сказать, со слегка заметными полигонами и угловатыми текстурами, то сегодня игры могут похвастаться очень реалистичным миром с детальной прорисовкой и освещению близкому к реальной жизни. Порой становится трудно на первый взгляд отличить, что перед вами, кадры гейплея или кадры, снятые на камеру с наложенным фильтром Blur.

1. Элементы 3D графики в играх

Геймеры обычно замечают серьёзные улучшения в 3D графике каждые два или три года. Когда Microsoft привязывает новую версию DirectX к Windows, или когда AMD/Nvidia объявляют новые интересные функции графических процессоров. Игры прошли через впечатляющее развитие. Графика, без сомнения, прогрессировала сильнее всего, хотя управление тоже постоянно улучшалось.

Мир 3D графики, в том числе игровой, наполнен терминами. Рассмотрим подробнее некоторые термины 3D графики, которые получили большее распространение в последнее время в качестве отличительных особенностей и технологий, применяемых в игровых графических движках и в качестве наименований графических настроек современных игр.

2. Shader (шейдер)

Шейдером в широком смысле называется программа для визуального определения поверхности объекта. Это может быть описание освещения, текстурирования, постобработки и т.п. Шейдеры выросли из работ Кука (Cook's shade trees) и Перлина (Perlin's pixel stream language). Сейчас наиболее известны шейдеры RenderMan Shading Language. Программируемые шейдеры были впервые представлены в RenderMan компании Pixar. Эти шейдеры чаще всего программно выполняются универсальными процессорами и не имеют полной аппаратной реализации.

Видеочипы раннего времени не были программируемы и исполняли только заранее запрограммированные действия (fixed-function), например, алгоритм освещения был жестко зафиксирован в железе, и нельзя было ничего изменить. Затем, компании-производители видеочипов постепенно ввели в свои чипы элементы программируемости, сначала это были очень слабые возможности (NV10, известный как NVIDIA GeForce 256, уже был способен на некоторые примитивные программы), которые не получили программной поддержки в Microsoft DirectX API, но со временем возможности постоянно расширялись. Следующий шаг был за и NV20 (GeForce 3) и NV2A (видеочип, примененный в игровой консоли Microsoft Xbox), которые стали первыми чипами с аппаратной поддержкой шейдеров DirectX API. Версия Shader Model 1.0/1.1, появившаяся в DirectX 8, была сильно ограничена, каждый шейдер (особенно это относится к пиксельным) мог быть сравнительно малой длины и сочетать весьма ограниченный набор команд. В дальнейшем, Shader Model 1 (SM1 для краткости) была улучшена с пиксельными шейдерами версии 1.4 (ATI R200), которые предлагали большую гибкость, но также имели слишком ограниченные возможности. Шейдеры того времени писались на так называемом assembly shader language, который близок к ассемблеру для универсальных процессоров. Его низкий уровень доставляет определенные сложности для понимания кода и программирования, особенно, когда код программы большой.

Последние версии серьезно расширили возможности шейдеров реального времени, предложив более длинные и сложные шейдеры и заметно расширившийся набор команд. Была добавлена возможность расчетов с плавающей запятой в пиксельных шейдерах, что также стало важнейшим улучшением. DirectX 9, в лице возможностей SM2, также привнес и язык шейдеров высокого уровня -- high-level shader language (HLSL). В целом, шейдеры добавили к графическому конвейеру множество новых возможностей по трансформации и освещению вершин и индивидуальной обработке пикселей так, как этого хотят разработчики каждого конкретного приложения.

Vertex shader (вершинный шейдер)

Вершинные шейдеры -- это программы, выполняемые видеочипами, которые производят математические операции с вершинами (vertex, из них состоят 3D объекты в играх), иначе говоря, они предоставляют возможность выполнять программируемые алгоритмы по изменению параметров вершин и их освещению. Каждая вершина определяется несколькими переменными. Вершины также могут быть описаны характеристиками цвета, текстурными координатами и т.п. Вершинные шейдеры, в зависимости от алгоритмов, изменяют эти данные в процессе своей работы, например, вычисляя и записывая новые координаты и/или цвет. То есть, входные данные вершинного шейдера -- данные об одной вершине геометрической модели, которая в данный момент обрабатывается. Обычно это координаты в пространстве, нормаль, компоненты цвета и текстурные координаты. Результирующие данные выполняемой программы служат входными для дальнейшей части конвейера, растеризатор делает линейную интерполяцию входных данных для поверхности треугольника и для каждого пикселя исполняет соответствующий пиксельный шейдер.

Примеры того, как и где применяются вершинные шейдеры:

· Скининг (skinning). Для скелетной анимации персонажей с большим количеством "костей". Примеры можно увидеть практически во всех играх.

· Деформация объектов. Как самый явный и эффектный пример -- создание реалистичных волн в динамике.

· Анимация объектов. Например, травы и деревьев.

· Toon shading/Cel shading. Используется в некоторых играх для создания специального эффекта "мультяшного" изображения.

· Имитация ткани (Cloth Simulation). Для имитации поведения подобных ткани материалов, которой очень не хватает в большинстве игр.

Pixel shader (пиксельный шейдер)

Пиксельные шейдеры -- это программы, выполняемые видеочипом во время растеризации для каждого пикселя изображения, они производят выборку из текстур и/или математические операции над цветом и значением глубины пикселей. Все инструкции пиксельного шейдера выполняются попиксельно, после того, как операции с трансформированием и освещением геометрии завершены. Пиксельный шейдер в итоге своей работы выдает конечное значение цвета пикселя и Z-значение для последующего этапа графического конвейера, блендинга. Наиболее простой пример пиксельного шейдера, который можно привести: смешение двух текстур (diffuse и lightmap, например) и наложение результата вычисления на пиксель.

До появления видеочипов с аппаратной поддержкой пиксельных шейдеров существенно ограничивались возможности по многим визуальным эффектам. Пиксельные шейдеры сделали возможным освещение любых поверхностей попиксельно, используя запрограммированные разработчиками материалы. Это, пожалуй, самый востребованный класс шейдеров, чаще других обсуждаемый и активнее всех эволюционирующий. Именно появление пиксельных шейдеров в GeForce 3 задало новый тренд развития игровой графики.

Примеры применения пиксельных шейдеров:

· Мультитекстурирование. Несколько слоев текстур. Используется вообще во всех играх.

· Попиксельное освещение. Применяется практически везде.

· Постобработка кадра.

· Процедурные текстуры, такие, как текстура дерева или мрамора.

Procedural textures (процедурные текстуры)

Процедурные текстуры -- это текстуры, описываемые математическими формулами. Такие текстуры не занимают в видеопамяти места, они создаются пиксельным шейдером "на лету", каждый их элемент (тексель) получается в результате исполнения соответствующих команд шейдера. Наиболее часто встречающиеся процедурные текстуры: разные виды шума, дерево, вода, лава, дым, мрамор, огонь и т.п., то есть те, которые сравнительно просто можно описать математически. Процедурные текстуры также позволяют использовать анимированные текстуры при помощи всего лишь небольшой модификации математических формул. Например, облака, сделанные подобным образом, выглядят вполне прилично и в динамике и в статике.

Преимущества процедурных текстур также включают в себя неограниченный уровень детализации каждой текстуры, пикселизации просто не будет, текстура как бы всегда генерируется под необходимый для ее отображения размер. Большой интерес представляет и анимированный Normal Mapping, с его помощью можно сделать волны на воде, без применения предпросчитанных анимированных текстур. Еще один плюс таких текстур в том, что чем больше их применяется в продукте, тем меньше работы для художников (правда, больше для программистов) над созданием обычных текстур.

Bump mapping (бампмаппинг)

Бампмаппинг -- это техника симуляции неровностей (или моделирования микрорельефа) на плоской поверхности без больших вычислительных затрат и изменения геометрии. Для каждого пикселя поверхности выполняется вычисление освещения, исходя из значений в специальной карте высот, называемой bumpmap. Цвет каждого текселя определяет высоту соответствующей точки рельефа.

Степень освещенности точки зависит от угла падения лучей света. Чем меньше угол между нормалью и лучом света, тем больше освещенность точки поверхности. То есть, если взять ровную поверхность, то нормали в каждой ее точке будут одинаковыми и освещенность также будет одинаковой. А если поверхность неровная (собственно, практически все поверхности в реальности), то нормали в каждой точке будут разными. И освещенность разная, в одной точке она будет больше, в другой -- меньше. Отсюда и принцип бампмаппинга -- для моделирования неровностей для разных точек полигона задаются нормали к поверхности, которые учитываются при вычислении попиксельного освещения. В результате получается более натуральное изображение поверхности, это дает поверхности большую детализацию, такую, как неровности на кирпиче, поры на коже и т.п. Причем, при изменении положения источника света освещение этих неровностей правильно изменяется.

Существуют три составляющие освещения:

Равномерная (ambient) составляющая освещения --"начальное" освещение для каждой точки сцены, при котором все точки освещаются одинаково и освещенность не зависит от других факторов.

Диффузная (diffuse) составляющая освещения зависит от положения источника освещения и от нормали поверхности. Эта составляющая освещения разная для каждой вершины объекта, что придает им объем. Свет уже не заполняет поверхность одинаковым оттенком.

Бликовая (specular) составляющая освещения проявляется в бликах отражения лучей света от поверхности. Эти блики существенно увеличивают реалистичность изображения, ведь редкие реальные поверхности не отражают свет, поэтому specular составляющая очень важна. Особенно в движении, потому что по бликам сразу видно изменение положения камеры или самого объекта.

Displacement mapping (карта смещения)

Наложение карт смещения (Displacement Mapping) является методом добавления деталей к трехмерным объектам. В отличие от бампмаппинга и других попиксельных методов, что дает лишь иллюзию увеличения сложности поверхности, карты смещения позволяют получить настоящие сложные 3D объекты из вершин и полигонов, без ограничений, присущих попиксельным методам. Этот метод изменяет положение вершин треугольников, сдвигая их по нормали на величину, исходя из значений в картах смещения. Карта смещения (displacement map) -- это обычно черно-белая текстура, и значения в ней используются для определения высоты каждой точки поверхности объекта. Часто карты смещения используются для создания земной поверхности с холмами и впадинами. Так как рельеф местности описывается двухмерной картой смещения, его относительно легко деформировать при необходимости, так как это потребует всего лишь модификации карты смещения и рендеринга на ее основе поверхности в следующем кадре.

Большим преимуществом наложения карт смещения является не просто возможность добавления деталей к поверхности, а практически полное создание объекта. Берется низкополигональный объект, разбивается (тесселируется) на большее количество вершин и полигонов. Вершины, полученные в результате тесселяции, затем смещаются по нормали, исходя из значения, прочитанного в карте смещения. Получаем в итоге сложный 3D объект из простого, используя соответствующую displacement карту.

Наложение карт смещения впервые получило поддержку в DirectX 9.0. Но у карт смещения есть и некоторые ограничения, они не могут быть применены во всех ситуациях. Например, гладкие объекты, не содержащие большого количества тонких деталей, будут лучше представлены в виде стандартных полигональных сеток или иных поверхностей более высокого уровня. С другой стороны, очень сложные модели, такие как деревья или растения, также нелегко представить картами смещения. Есть также проблемы удобства их применения, это почти всегда требует специализированных утилит, ведь очень сложно напрямую создавать карты смещения (если речь не идет о простых объектах, вроде ландшафта).

MOTION BLUR (СМАЗЫВАНИЕ В ДВИЖЕНИИ)

Человеческое зрение обладает свойством инертности, а потому резко и/или быстро перемещающиеся объекты воспринимаются нами смазанными. Полноценная реализация этого эффекта появилась в играх серии NFS, а затем моду переняли шутеры, ролевые и прочие игры.

По изображению без смазывания нельзя даже сказать, движутся объекты или нет, в то время как motion blur дает четкое представление о скорости и направлении движения объектов. Кстати, отсутствие смазывания при движении служит и причиной того, почему движение в играх при 25-30 кадрах в секунду кажется дерганым, хотя кино и видео при этих же параметрах частоты кадров смотрится прекрасно. Для компенсации отсутствия смазывания в движении желательна или высокая частота кадров (60 кадров в секунду или выше) или использование методов дополнительной обработки изображения.

Возможные применения этого эффекта в играх: все гоночные игры (для создания эффекта очень высокой скорости движения и для применения при просмотре ТВ-образных повторов), спортивные игры (те же повторы, а в самой игре смазывание можно применять для очень быстро движущихся объектов, вроде мяча или шайбы), файтинги (быстрые движения холодного оружия, рук и ног) и т.д.

3. Эволюция игр

Игры реального времени прошли через впечатляющее развитие. Графика, без сомнения, прогрессировала сильнее всего, хотя управление тоже постоянно улучшалось. Warcraft победно прокатился по миру в 1994 году. Использовалась простая графика с одним углом обзора, к которой были добавлены фиксированные нарисованные тени, объекты при этом выглядели пластиковыми. В продолжении, вышедшем в 1995 году, графика была немного улучшена, но самой значимой переменой стало повышение разрешения, что позволило сделать пиксели менее заметными. Это был необходимый шаг вперёд, в частности, по удобству читаемости текста. Реальная 3D графика тогда ещё не использовалась. Она впервые появилась в третьей части серии, которая вышла в 2002 году - сразу же замечаешь, что окружение и персонажи, как будто, упали в коробку с красками. Всё было чрезмерно окрашено и насыщенно, каждый эффект демонстрировался визуально. Магия и специальные возможности сопровождались эффектами освещения, игра повсюду сияла и светилась.

Дальнейшие продвижения в области стратегий реального времени немного сбавили яркие цвета, увеличили уровень детализации объектов и, в целом, привели к более естественному виду. Отдельных персонажей стало возможно отличать по обмундированию, можно приближать и удалять камеру, да и число войск значительно увеличилось. Однако для этого потребовался мощный CPU. Распределение персонажей на карте, расчёт искусственного интеллекта и управление увеличивающимся числом отдельных юнитов потребовало немалого количества вычислительных ресурсов. Да и современные видеокарты должны предоставлять достаточно ресурсов, чтобы с приемлемой скоростью отрисовывать эффекты шейдеров. Современные игры, такие как World in Conflict, ставят больший акцент на эффекты освещения, массивные взрывы, реалистичный дым, лучи солнца и массивные водяные поверхности.

3D игры должны совершенствоваться быстрее, они должны становиться ближе к природе. Графика меняется довольно быстро благодаря новым эффектам шейдеров. Вода выглядит вполне реалистично, эффекты погоды и солнечного света становятся более естественными.

4. Освещение и ослепление

HDR-рендеринг стал самым важным шагом в освещении окружения; без эффекта сияния создать отражения на серебре и золоте практически невозможно. HDR-рендеринг размывает освещённые поверхности и сильные источники света. Солнце подсвечивает облака на небе, металлические объекты отражают свет. Подобные эффекты, например, когда оператор направляет камеру напрямую на источник света, компьютерная графика ослепляет зрителя или создаёт специальные эффекты.

Побочным эффектом прямого солнечного света являются блики в объективе, представляющие собой крошечные круги света в поле зрения. В старых играх солнце и эффекты ослепления рисовались на кадре и симулировались, как и фоновая графика. В новых играх круги света могут перемещаться по полю зрения, и даже проявляться, когда источник света медленно открывается объектом.

Ещё одним эффектом HDR-рендеринга можно назвать отображение лучей, которые буквально протыкают тёмное окружение. В голливудских фильмах вы наверняка можете вспомнить пулевые отверстия в фанерных стенках, через которые свет пронзает помещение. Новое поколение игр используют этот эффект, в частности, для усиления захода солнца. Если сияющий солнечный круг скрывается за деревьями или окном, то свет проникает через них в виде чётких лучей.

Особенность Crysis и Stalker: Clear Sky заключается в реалистичной смене дня и ночи, условия освещения меняются в зависимости от расположения солнца и игрока. Впрочем, подобный компьютерный эффект всё ещё не дотягивает до интенсивности фотографий или голливудских фильмов.

5. Тени

Где есть свет, есть и тень. Чтобы объекты в освещённом окружении выглядели более реалистично, необходимы тени, причём они должны перемещаться вместе с источником света. Но включение теней почти всегда стоит немало ценной 3D-производительности, поэтому чем быстрее видеокарта, тем более изощрённые эффекты она может вывести без чрезмерного удара по производительности. В Oblivion было возможно вложить до 30% графической производительности только в тени на лицах, тени от травы и листвы.

Старые игры со стандартными тенями часто выводили тени в виде затемнённого кружка; объект всегда располагался в его центре независимо от освещения. В играх следующего поколения персонаж накладывался на поверхность подобно трафарету, причём часто использовалась упрощенная модель. Это вполне наглядно можно наблюдать в Morrowind, поскольку одежда полностью игнорируется, на поверхность накладывается голое тело.

Doom 3 стал небольшой революцией. Внезапно в игре появилось несколько источников света, таких как потолочные светильники или прожекторы, которые одновременно отбрасывают тени на стены, пол и потолок. По мере движения игрока и монстров, тени перемещаются, следуя фиксированным источникам света, становятся длиннее или короче. Чтобы пощекотать ваши нервы ещё сильнее, в игре есть подвешенные, мигающие и поворачивающиеся лампы, создающие подёргивающиеся и танцующие, тени на стенах.

В современных играх используются мягкие тени, которые полностью накладывают шаблон персонажа с хорошей детализацией. В зависимости от положения солнца, тени персонажа и окружения становятся иногда длиннее, иногда короче. В Stalker или Crysis можно даже увидеть теневое изображение отдельных веток или листьев на полу. Даже если это звучит как простой графический трюк, он очень важен для восприятия в играх реального времени, поскольку позволяет более быстро реагировать на движения.

6. Развитие персонажей

Начнём с 1997 года; Diablo можно считать знаковой игрой, поскольку в ней внешний вид персонажа менялся в зависимости от используемой брони или оружия. По 3D-графике Morrowind тоже стала важным шагом вперёд. Голый персонаж выглядит неказисто, но стоит надеть сложную и многосоставную броню, как уровень детализации меняется просто драматически. Есть обувь, рубашки, брюки, плащи, куртки, нарукавники, нагрудники, наплечники, шлемы, оружие и щиты.

Уровень детализации игр реального времени или приключенческих игр долго не мог сравниться. В 2004 году Half Life 2 установила новый стандарт выражений лица и анимации персонажей. Как раз в то время началась кампания nVidia по продвижению шейдеров, которые позволили создать реалистичные оттенки кожи и индивидуальные выражения лиц. В 2006 году стратегии и ролевые/приключенческие игры стали настолько детализованными, что даже вплотную приблизив камеру, вы вряд ли найдёте разницу между ними и настоящими 3D-играми.

Oblivion тоже стала знаковым событием в мире графики. Впервые в игре стал использоваться HDR-рендеринг (Shader Model 3), а броня и мечи стали действительно сиять. Сложность отрисовки лиц персонажа очень впечатлила; многие движки регулировки включали дополнительно индивидуальный разрез и цвет глаз, форму губ, подбородка, рта и головы, в результате чего герой мог стать различимым, с собственным лицом. Однако столь широкая регулировка опций в игре не приводила к какому-либо эффекту. В Oblivion можно играть только за себя в одиночку, а компьютерных персонажей (NPC) ваш внешний вид и лицо совершенно не интересуют.

Новые игры, подобно Hellgate London, должны выиграть от подобного усложнения, поскольку персонажи могут встречаться через Интернет, и здесь индивидуальная внешность отнюдь не помешает. Разница ограничена размером фигуры, волосами, цветом кожи и различным оснащением, которое позволяет персонажу выделиться среди толпы.

В Doom 3 используется много света и теней, которые позволяют графике выглядеть более детально. Переход на DirectX 10 можно видеть по играм Assassin's Creed и Mass Effect. Улучшенный HDR-рендеринг (Shader 4) позволяет графике выглядеть более реалистично.

7. Эффекты глубины и наложение неровностей

Первым играм пришлось довольствоваться глобальным источником освещения, тени и структуры просто добавлялись к сцене. Эволюция 3D-графики дала объектам большее число деталей, а различные источники света дали дополнительные тени. Поскольку многие объекты по-прежнему делались из больших поверхностей, структуры подобные стеклу, листьям или песку просто накладывались в качестве плоской текстуры.

Попиксельное освещение позволяло симулировать структуру на поверхности. Песок получил волны, а стена из камня соответствующие неровности. В современных играх, если вы посмотрите на поверхность, то структура будет очень детальной. Однако детализация текстуры зависит от освещения и от угла зрения. С техникой steep parallax mapping эффект глубины структуры ещё более выражен по сравнению с обычной техникой parallax mapping. В Stalker: Clear Sky процедура была улучшена, однако, опять же, структура по-прежнему симулируется - при малых углах обзора неровности структуры исчезают. Следующее поколение технологии получает соответствующую структуру, которая даже генерирует тени; неровности меняют и геометрию объекта. Угол обзора уже не важен, поскольку эффект глубины всегда заметен.

8. Растительность, деревья и лес

С появлением GeForce 256 задачи трансформации и освещения перешли под ответственность графического чипа. До этого расчёты выполнялись на CPU. Более быстрые видеокарты, как предполагалось, должны увеличить уровень детализации и число 3D-объектов. В 3D игре требуется намного больше одного дерева, состоящего из настоящих листьев, хотя даже самые современные игры продолжают использовать трюки. Чтобы вычислительная нагрузка была как можно меньше, только грубые структуры, такие как ствол дерева, толстые ветви или основной каркас куста создаются как реальные объекты. Трава, камыш, листья и ветки являются текстурами, то есть окрашенными поверхностями, симулирующими пышную растительность. Это позволяет нарисовать полноценный лес, но ни листья, ни ветви не будут реагировать на касание - игрок будет проходить сквозь них так, как будто их не существует. Если игра не такая сложная, то листва и кусты даже не обеспечивают возможность скрыться за ними от противника, хотя через них вы ничего не видите.

9. Эволюция строений

Благодаря более быстрым видеокартам и качественным текстурам, уровень детализации строений существенно улучшился. В первых 3D играх дома, стены из камня и туннели выглядели плоскими, неравномерность структур создавалась простой отрисовкой. По мере увеличения вычислительной мощности, в играх появлялось всё больше встроенных структур; интерьеры и архитектуры становились более сложными, число ниш, углов, столбов, выступов и колонн быстро возрастало. В современных играх можно видеть более сложные строения, которые выглядят всё более реалистично.

Города - дело совершенно иное. Разработчикам игр сегодня вполне по силам создать иллюзию небольшого городка. Однако большинство строений будут лишь ширмой - дом с четырьмя стенами и крышей, но без интерьера. Чтобы геймер не потерялся, есть два метода: Morrowind, Gothic и Oblivion позволяют геймеру входить почти во все дома, но число строений небольшое, даже в городах. GTA, Assassin's Creed симулируют большой город, но входить можно только в строения, важные для игры. Всё остальное лишь ширма.

Потрескавшуюся краску и ржавые участки тоже можно хорошо симулировать, но вот с масштабами дело обстоит не так легко. Игровые разработчики не мыслят масштабно, поэтому редко, когда строения, в которые можно войти, достигают по высоте трёх этажей. Всегда есть страх расстояний: в многопользовательских шутерах люди теряются, дальность оружия слишком мала, а видимая область на ПК ограничена либо 3D-производительностью, либо другими ограничениями видеокарты.

10. Техника

Реалистичность гонок издавна упиралась в вычислительную мощность. Часто использовались такие трюки, как уменьшенная детализация окружения, размытые текстуры и ограниченная дальность видимости с помощью тумана. В последнее время такие трюки уже стали ненужными, поскольку 3D-производительность компьютерных систем уже вполне достаточная для вывода улицы, по которой проходит трасса, с такой же детализацией, что и сама машина. Теперь в гонки добавились эффекты скорости, отражения и различные модели повреждений. Вряд ли удивительно, что художники сконцентрируются больше на машинах, которые выглядят реалистично как никогда.

11. Ближайшее будущее игровой графики

Какой бы поразительный визуальный ряд ни выдавали современные игры, разработчикам всегда есть к чему стремиться -- абсолютно реалистичную графику пока не сделал никто. Исследователи графики по всему миру постоянно создают и испытывают прототипы технологий, но широкая аудитория увидит их не так скоро.

12. Графика из облака

Настоящей звездой Crackdown 3, выходящей весной 2018 года, будет Azure. Это не имя одного из персонажей игры, а «облачная» платформа Microsoft. Crackdown 3 станет первой полномасштабной демонстрацией её возможностей в играх -- до этого Azure занималась расчётами для мультиплеера Titanfall.

Azure -- это система из серверов, которая генерирует визуальную информацию вместо компьютера (или консоли) игрока. По информации Ars Technica, происходит это так: игра с помощью мощностей компьютера делает все вычисления физики, а затем отправляет их Azure, которая за миллисекунды всё рендерит и отправляет обратно визуальный ряд. При этом система адаптируется к нагрузке -- если в игре нужно взорвать этаж небоскреба, подключится только один облачный сервер, а если всё здание, то сразу пять или шесть.

Потенциал у этой технологии огромный: Azure выводит разрушаемость в играх на новый уровень, если судить по роликам с альфа-версиями Crackdown 3. Можно сравнять с землёй целые кварталы -- DICE с их Frostbite уже наверняка готовят пропорциональный ответ.

Кроме того, у технологии есть и не столь очевидная сторона. Если в облако можно перенести обсчитывание графики, то почему бы не отправить туда вообще всю обработку игры?

Идея, конечно, не нова, и существуют сервисы, которые предлагают нечто подобное, но они до сих пор остаются нишевыми, а у Microsoft, как платформодержателя и просто огромной корпорации, вполне может получиться сделать облачные вычисления мейнстримом и неплохо заработать на лицензировании Azure.

13. Бесконечная детализация

В 2011 году австралийская компания Euclideon, за год до этого получившая двухмиллионный грант от правительства страны, внезапно опубликовала на YouTube демонстрацию работы их движка Unlimited Detail, заявив, что он перевернёт компьютерную графику.

Если вкратце, то сейчас все 3D-объекты в видеоиграх состоят из полигонов: плоских фигур, на которые затем «натягиваются» текстуры. Чем больше полигонов, тем выше детализация моделей. Euclideon предложили альтернативу: на их движке модели формируются из частиц под названием «атомы», для каждой из которых отдельно задаются параметры вроде цвета, степени поглощения света и так далее.

Выходит так, что достаточно задать параметры точек, и получится невероятно детализированное изображение, например один квадратный метр грязи по детальности эквивалентен миллионам полигонов.

Революция? Пока только на словах. Проблема Unlimited Details в том, что для хранения информации об атомах нужно очень много места: остров из ролика занял бы 170 тысяч трёхтерабайтных жёстких дисков, если на один атом приходилось бы по одному байту данных. Причём это ещё оптимистичный прогноз, поскольку, скорее всего, для атома нужно было бы 24 байта информации, то есть остров «весил» бы ещё больше. С такими объёмами данных не справится ни один ПК.

При этом сама по себе технология работает -- подобный метод создания графики использовался в No Man's Sky. И, возможно, когда-нибудь мы действительно будем играть в игры с бесконечной детализацией.

14. Снимки реальности

Зато фотограмметрия -- это вполне реальная технология, которую сейчас используют всё чаще: её вход в мейнстрим начался с Vanishing of Ethan Carter, а сейчас она уже прочно укоренилась в индустрии. С помощью фотограмметрии создавались локации для Star Wars: Battlefront и Battlefront 2, а разработчики Hellblade таким образом создавали мех, одежду, грязь и другие части образа героини игры.

По сути, фотограмметрия работает просто: объект, который нужно перенести в игру, фотографируется со всех сторон, а затем снимки прогоняются через специальную программу (например, Agisoft). На выходе получается облако точек с информацией, или попросту меш (mesh), на основе которого можно делать графику.

Проблема у этой техники одна, но серьёзная: на съёмку нужно тратить очень много времени, даже если сканирование происходит в студии и на специальном оборудовании. Команда первого Battlefront ездила снимать объекты на реальных локациях и столкнулась с проблемами, обычно не свойственными игровой разработке. Например, как согреться, сканируя снег для игровой версии планеты Хот.

Поэтому фотограмметрия пока что используется точечно: основы метода готовы, но практическую сторону вопроса нужно дорабатывать. Те же разработчики Battlefront комбинировали фотограмметрию с другими техниками, например, использовали реальные геолокационные данные, чтобы на их основе создать скалы для одного из уровней.

Однако технология совершенствуется, и через пару лет в играх наверняка появятся локации, полностью перенесённые из реального мира.

15. Реалистичная кожа

Если с фотореалистичным окружением дела идут в целом неплохо, то персонажей игр даже с самой продвинутой графикой пока сложно назвать по-настоящему реалистичными. Во многом это связано с лицевой анимацией -- в лице человека огромное количество мышц и связок, работу которых нужно симулировать.

Мы об этом не задумываемся, но достаточно чуть-чуть ошибиться в создании лица персонажа, и он будет в лучшем случае выглядеть странно, а в худшем -- вызовет эффект «Зловещей долины».

В индустрии эту проблему, в основном, решают совершенствованием мимики, и тут прогресс очевиден -- Нейтан Дрейк во время диалоговых кат-сцен Uncharted 4 действительно напоминает живого человека. Однако какой бы ни была мимика, если лицо героя обтянуто чем-то вроде желтовато-розового пластика, он всё равно будет восприниматься как очень качественная пластиковая кукла. Одной детализации тут недостаточно: на кожу можно потратить много полигонов, но она должна и «вести себя» реалистично.

Нюансов тут очень много. Например, наш цвет лица, помимо химического состава кожи, зависит от того, насколько близко к поверхности находятся кровеносные сосуды. К тому же, свет частично проникает через кожу, влияя на её оттенок. Это симулируется с помощью технологии subsurface scattering, но она пока далека от совершенства.

А что делать с морщинами и прочими изменениями фактуры кожи, которые происходят, когда человек хмурится, надувает щёки, щурится? Тут на помощь приходит динамическая микрогеометрия кожи.

Технология основана на методе фотограмметрии: «образцы» кожи были взяты у реальных людей. Разработчики вычислили, насколько изменяется внешнее состояние кожи, когда человек демонстрирует эмоции, после чего симулировали изменения структуры виртуальной кожи -- одни фрагменты виртуального лица становятся более чёткими, а другие -- размытыми, из-за чего кажется, что кожа растягивается.

В играх такое пока встречается нечасто, поскольку на обсчитывание фактуры кожи нужно тратить много ресурсов компьютера или консоли. Голова из ролика -- это не техническое демо игры, а разработка Института креативных технологий Южнокалифорнийского университета. Те же люди разработали продвинутую технику захвата лица с переносом мельчайших деталей, вплоть до пор и волосяных луковиц -- прорывы в области графики обычно случаются благодаря учёным, а не разработчикам игр.

Самой совершенной системой захвата лица в игровой индустрии сейчас вполне можно считать ту, которую использовали разработчики Hellblade: Senua's Sacrifice. Игра, помимо остальных своих достоинств, была своего рода техническим демо целого комплекса программ, созданных 3Lateral и Cubic Motion вместе с Ninja Theory и Epic Games.

3Lateral отсканировали более ста выражений лица Мелины Юргенс (Melina Juergens), актрисы, сыгравшей Сенуа. В итоге они собрали её цифрового двойника, способного изображать базовые эмоции и мимические рисунки.

Cubic Motion создали собственную программу для мгновенного переноса выражения лица на модель персонажа в реальном времени, а Epic Games помогали с адаптацией Unreal Engine 4, движка игры. Выглядит это очень эффектно -- ролики, где Сенуа морщится, повторяя за Мелиной, широко использовались в маркетинге игры.

16. Лучи добра

Создание фотореалистичной сцены не ограничивается детализированными моделями -- освещение не менее важно. Самая «горячая» тема здесь -- трассировка лучей или рейтрейсинг (ray tracing).

Обычно графика в играх работает так: когда герой шутера от первого лица забегает в комнату, видеокарта игрока берёт каждый объект сцены, просчитывает, в какой части экрана он видим, а затем для каждого из его пикселей создаётся шейдер, в который записывается материал, текстуры, исходящий свет и освещение в сцене. Это относительно небольшое количество информации, с которым современные видеокарты справляются неплохо. шейдер программа бампмаппинг

Трассировка лучей -- совсем другое дело. Проще всего разобрать это на примере одного объекта. Итак, у нас есть 3D-объект и камера -- точка зрения игрока (белая точка). Между ними находится так называемый Image Plane -- это то, что «видит» камера. Image Plane (изображение части объекта), разбит на пиксели.

Программа-рендерер должна определить цвет каждого из пикселей. Для этого создаётся математический луч, который выходит из камеры, пронизывает пиксель ровно посередине и пересекается с объектом -- словно луч лазерной указки, который указывает на то, какой цвет должен принять пиксель.

Плюс этой технологии в том, что можно очень тонко настраивать все сцены, работать с освещением и связанными с ним эффектами. Примерно как в ролике с шахматными фигурами ниже.

К сожалению, обычные процессоры обсчитывают сцены с трассировкой лучей очень долго -- одна сцена состоит из миллионов пикселей, плюс различные эффекты освещения. Например, если в сцене ярко светит солнце, рендереру нужно отследить то, как все виртуальные солнечные лучи будут отражаться от поверхностей.

В кино трассировка лучей используется часто, поскольку у студий есть достаточно денег, чтобы позволить себе огромные серверные фермы для обработки изображений. Например, уже известно, что рейтрейсингом будут пользоваться художники по спецэффектам на съёмках второго «Аватара». А Pixar с помощью этой технологии создаёт свои последние мультфильмы.

Обратите внимание, насколько сложное и интересное освещение в этих двух сценах

Но в играх трассировка лучей появится ещё не скоро, и дело не только в том, что это дорого. Современные видеокарты из-за особенностей своей архитектуры просто не могут обрабатывать такое количество информации в реальном времени. Тем не менее, рейтрейсинг в реальном времени стал Священным Граалем игровой графики. Поиски его значительно ускорились после популяризации VR, поскольку трассировка лучей решает сразу несколько технических проблем, свойственных виртуальной реальности. Например, с помощью лучей очень просто вычислять, насколько нужно искривлять картинку, чтобы она нормально смотрелась через линзы шлема, или какие части объекта надо показывать, а какие нет -- так отпадает необходимость рендерить сразу всю игровую ситуацию.

И тут на сцену снова выходит Euclideon с их технологией Solid Scan, основанной на трассировке лучей. Она сделана для переноса в цифровое пространство реальных локаций и выглядит, мягко говоря, впечатляюще. Как очень продвинутая фотограмметрия.

Осталось дождаться появления достаточно мощного «железа», и такие сцены с детально просчитанным освещением, тенями, взаимодействием потоков света и прочими графическими нюансами вполне могут стать обычным делом для видеоигр.

Размещено на Allbest.ru

...

Подобные документы

  • Ознакомление с понятием компьютерных игр и их основными жанрами. Выбор сюжета игры и среды программирования. Отрисовка графики; проведение функционального и интерфейсного тестирования программы. Анализ условий труда в данной компьютерной лаборатории.

    дипломная работа [3,2 M], добавлен 13.07.2014

  • Разработка сайта для осведомления любителей компьютерных игр о новинках, публикации новостей, участия в обсуждении игр. Основные понятия Web-технологий. Особенности установки пакета Apache и программы создания и редактирования Web-сайтов Joomla 1.5.

    дипломная работа [5,4 M], добавлен 06.07.2012

  • История появления компьютерных игр, классификация их жанров. Негативные воздействия от компьютерных игр: компьютерное излучение, проблемы со зрением, сбои в работе нервной и сердечнососудистой системы, психологическая зависимость. Польза компьютерных игр.

    научная работа [75,0 K], добавлен 18.02.2010

  • Изучение основных возможностей создания трехмерных объектов в программе OpenGL, методика наложения текстур. Механизм подключения библиотек. Создание поверхности ландшафта. Реализация ориентирования на поверхности. Изменение поверхности ландшафта.

    курсовая работа [21,5 K], добавлен 29.11.2010

  • Гносеологическая специфика модели, ее определение и классификация. Основные цели и процесс моделирования как средства экспериментального исследования. Трехмерная графика, назначение и обзор интерфейса программы Gmax. Моделирование простейшего объекта.

    курсовая работа [2,2 M], добавлен 25.06.2014

  • Особенности 2D графики в компьютерных играх. Анимации движения персонажей. Конвейер контента в проектах. Контент-импортер и контент-процессор. Понятие компонента в XNA и его использование. Визуальные и механические эффекты. Методы исполнения спецэффектов.

    курсовая работа [1,7 M], добавлен 13.07.2014

  • Этапы процедуры принятия решений. Разработка математического алгоритма. Блок-схема алгоритма работы программы. Разработка программы на языке программирования С++ в среде разработки MFC. Текст программы определения технического состояния станка с ЧПУ.

    курсовая работа [823,0 K], добавлен 18.12.2011

  • Определение и характеристика цели автоматизации проектирования. Ознакомление с достоинствами процесса внутреннего шлифования. Исследование и анализ сущности САПР – системы, объединяющей технические средства, математическое и программное обеспечение.

    курсовая работа [949,8 K], добавлен 02.06.2017

  • Ознакомление с понятием, классификацией и структурными элементами баз данных. Виды моделей данных: иерархическая, сетевая, реляционная. Типы связей. Разработка программы для работы с базами данных в книжном магазине. Действие программы и ее листинг.

    курсовая работа [549,3 K], добавлен 22.01.2013

  • Исследование истории компьютерных вирусов и антивирусов. Изучение основных путей проникновения вредоносных программ в компьютер. Виды вирусных и антивирусных программ. Характеристика особенностей сигнатурных и эвристических методов антивирусной защиты.

    реферат [361,5 K], добавлен 08.10.2014

  • Рассмотрение и характеристика специфических особенностей 3D Studio MAX - единственного программного комплекса моделирования, визуализации и анимации объектов, разработанный фирмой Autodesk. Ознакомление с общим представлением о трехмерной графике.

    дипломная работа [1,5 M], добавлен 17.07.2017

  • Ознакомление с понятием, особенностями объявления, инициализацией и принципами работы с одномерными и двумерными массивами. Изучение смысла тернарной операции вывода элементов матрицы. Рассмотрение сущности и способов использования указателей переменных.

    лабораторная работа [22,1 K], добавлен 15.07.2010

  • Методика разработки, практической апробации программы в среде Turbo Pascal по построению графика прямой линии регрессии. Формирование блок-схемы данной программы, ее листинг. Построение графика с помощью математических формул и графического модуля Graph.

    контрольная работа [46,2 K], добавлен 22.07.2011

  • Ознакомление с понятием компьютерной графики. Области применения конструкторской и рекламной графики, компьютерной анимации. Рассмотрение преимущества графической визуализации бизнес-процессов. Особенности кольцевой, биржевой и лепестковой диаграмм.

    реферат [94,6 K], добавлен 02.02.2016

  • Современные алгоритмы машинной графики. Алгоритмы построения изображения. Глобальная модель освещения Уиттеда. Выбор и обоснование языка и среды программирования. Вспомогательные классы свойств трехмерных объектов. Условия применения программы.

    курсовая работа [785,7 K], добавлен 24.06.2009

  • Понятие о компьютерных вирусах, их виды, основные методы определения. Классификация антивирусных программных средств и их сравнительный анализ. Суть Антивируса Касперского, Doctor Web, Norton AntiVirus Professional Edition, NOD 32 Antivirus System.

    отчет по практике [988,5 K], добавлен 07.04.2010

  • Определение кривой переходного процесса модели, идентификация объекта регулирования и определения его динамических параметров. Частотные характеристики объекта. Расчет настроек регулятора графоаналитическим методом, критерии оптимальности процесса.

    курсовая работа [1,3 M], добавлен 09.08.2015

  • Ознакомление с особенностями программной реализации алгоритмов преобразования одномерных массивов. Исследование развития вычислительной техники, которое подразумевает использование компьютерных и информационных технологий. Изучение интерфейса программы.

    курсовая работа [1,0 M], добавлен 02.06.2017

  • Обоснование выбора Microsoft Project - программы управления проектами, разработанной корпорацией Microsoft. Использование программы для определения критического пути проекта. Основные понятия и методы управления проектами. Составление плана работ.

    курсовая работа [2,7 M], добавлен 13.07.2014

  • Научно-технический прогресс как причина появления компьютера и компьютерных технологий. Компьютерные игры (характеристика видов и технология создания) и предпосылки для естественного развития личности. Анализ игровой программы на конкретном примере.

    курсовая работа [65,8 K], добавлен 22.12.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.