Компьютерные игры. С недавних пор это словосочетание прочно вошло в нашу жизнь, каждый, кто имеет компьютер наверняка смог почувствовать их притягательность, видимо, игра заложена в саму природу человека с древнейших времен — выследить зверя, заманить его в ловушку — это тоже своего рода игра. Но теперь мы лишены этого в жизни, а инстинкты остались и они находят свой выход в компьютерных играх.

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

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


 Level of Detail

Level of Detail

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

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

Яркие примеры использования LOD — игры Готика 1, Готика 2, Готика 3, Half-Life 2, TES4: Oblivion, серия Grand Theft Auto.


 Motion Blur

Motion Blur

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

Некоторые игры, такие как «Need for Speed: Underground», осуществляют «смазывание» изображения по краям для придания «эффекта скорости» автомобилю, несущемуся на огромной скорости (Zoom Blur).

В графике есть несколько способов рендеринга Motion Blur. Но конкретно в играх — практически всегда используется лишь один: Multiple Exposure.

Принцип этого метода заключается в следующем:

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


 Anti-Aliasing

Anti-Aliasing

Технология, используемая для устранения эффекта «зубчатости».

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

В графической обработке существуют несколько видов сглаживания:

  • Super-Sampling (SSAA), также называемое полносценным или полноэкранным сглаживанием (FSAA), используется для исправления алиасинга (или «зубцов») на полноэкранных изображениях. SSAA было доступно на ранних видеокартах, вплоть до DirectX 7. Начиная с DirectX 8 из-за огромной вычислительной сложности все производители графических процессоров решили отказаться от этого метода.
  • Multisample anti-aliasing (MSAA) даёт несколько худшее качество графики, но и обеспечивает огромную экономию вычислительной мощности.
  • Fast Approximate Anti-Aliasing (FXAA) — метод сглаживания от Nvidia, основанный на постобработке изображения.

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

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

Качество сглаживания ограничено пропускной способностью видеопамяти, поэтому GPU с быстрой памятью сможет просчитать полноэкранное сглаживание с меньшим ущербом для производительности, чем GPU более низкого класса. Сглаживание можно включать в различных режимах. Например, сглаживание 4x даст более качественное изображение, чем сглаживание 2x, но значительно снизит производительность. Сглаживание 2x удваивает горизонтальное и вертикальное разрешение, тогда как режим 4x его учетверяет.