Поиск:
Видеокарты

12.04.2007 02:05

Графические технологии в S.T.A.L.K.E.R. Тестирование десяти видеокарт в игре
Автор: TECHLABS Team

История игры "S.T.A.L.K.E.R." началась еще в 2000 году, когда  два программиста принесли свои первые наработки в GSC Game World. Ребята хотели создать наилучший графический движок, который был бы намного лучше таковых Unreal и Quake. Результатом работы стал X-Ray, который  в основном ориентировался на создание огромных и высокодетализированных локаций с небывалым  качеством графики. Позже, когда движок получил дальнейшее развитие и  родилась идея создания шутера  "S.T.A.L.K.E.R. Oblivion Lost", в конце 2001 года состоялся первый всемирный анонс "Oblivion Lost" и были опубликованы первые скриншоты из игры. Затем началась последовательность безумных темпов разработок, доведения до ума  графики, состоялось несколько анонсов и переносов даты релиза, смена названия  проекта на "S.T.A.L.K.E.R. Shadow of Chernobyl". Игра разрабатывалась на протяжении 6 лет. Ничто не устаревает с такой стремительной быстротой, как графические возможности движка. Поэтому разработчикам с каждым годом приходилось доводить его до приемлемого уровня, добавляя всевозможные "навороты", чтобы игра получилась максимально реалистичной.  

Графические особенности игры "S.T.A.L.K.E.R.". Движок X-RAY 

Как уже говорилось ранее, "S.T.A.L.K.E.R." базируется на графическом движке X-Ray, поддерживающем самые передовые технологии для создания качественной графики с высокой степенью детализации и реалистичных погодных условий. Он не поддерживает программный рендеринг и требует видеоадаптер, совместимый с DirectX 8 или выше.  

Основные особенности X-Ray:

  • поддержка как огромных игровых пространств, так и закрытых локаций малой площади;
  • до 3 млн полигонов в одном кадре;
  • продвинутая скелетная анимация, управляющая реалистичностью движений персонажей;
  • высококачественное рельефное текстурирование (bump-mapping);
  • мягкие тени, создаваемые практически всеми предметами;
  • объемный туман;
  • поддержка набора команд SSE/3Dnow! для текстурирования и упреждающей кинематики;
  • динамическая смена дня и ночи;
  • реалистичные погодные эффекты. 

Графика:

  • система увеличения уровня детализации для различных аппаратных конфигураций;
  • 300 000 полигонов за 1 кадр при скорости 60 FPS на рекомендуемой конфигурации;
  • детализированные модели персонажей (500-10000 полигонов);
  • аппаратная поддержка T&L;
  • динамически эффектые HDR;
  • поддержка пиксельных шейдеров версии 1.1, 3.0, вершинных шейдеров 1.1, 3.0 и их автоматическое использование (при условии аппаратной поддержки);
  • технология анимации с использованием захвата движения реальных людей ("motion capture");
  • система частиц с реальной физикой;
  • параллаксмаппинг;
  • анимированные источники света;
  • разрушаемые источники освещения;
  • технология отложенного затенения;
  • постобработка видеоизображения;
  • динамическое освещение и динамические "мягкие" тени;
  • детализированный маппинг;
  • продвинутая система выбора источников освещения, отсечение, слияние;
  • мультипроходный рендеринг;
  • технология адаптивного аппаратного режима кэширования. 

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

Графические Графические

Графические Графические

Так, в игре присутствуют два пути рендеринга картинки DirectX 8 и DirectX 9.0c. И если ваш видеоускоритель не поддерживает  DX 9.0c, то движок автоматически начнет использовать более старую версию API. Причем для серии GeForceFX 5xxx, Radeon X800/700/600 и Intel GMA 950 будет характерна работа только в DirectX 8, поскольку они не поддерживают Shader Model 3.0, а только "голый" DirectX 9, совсем бесполезный для современных игр.  

Графические Графические

Графические Графические 

DirectX 9                                      DirectX 8

Что ж, принципиальное различие двух скриншотов видно невооруженным глазом. Различия заключаются не только в упрощенной картинке DirectX 8 – за 1 кадр уже обрабатывается около 100000 полигонов против 300000 в DirectX 9.0c, но и в использовании различных моделей пиксельных и вершинных шейдеров. Для DirectX 8 характерны пиксельные/вершинные шейдеры 1.1, для DirectX 9.0c – пиксельные/вершинные шейдеры 3.0.    

Графические Графические

Помимо этого, в более старой версии API используется в основном предварительно просчитанное освещение, в DX 9 –  абсолютно все освещение динамическое и с мягкими тенями. Они падают на землю не только от колышущихся деревьев, зданий, различного рода статических предметов, но и от других динамических объектов – монстров, бочек, Сталкеров, летающих вертолетов. Вдобавок ко всем этому в версии движка DX 9.0c применяется рендеринг в широком динамическом диапазоне, попросту говоря - HDR. Основное предназначение этой технологии в данной игре – это правильное, с точки зрения физики, отображение ярких источников света (солнце, огонь), направленных прямо на камеру.  

Графические Графические

HDR ON                                HDR OFF

К сожалению, семейство видеокарт NVIDIA GeForce 7 не может задействовать технологию HDR одновременно с включенным режимом полноэкранного сглаживания, поэтому пользователям пока придется смириться с отсутствием FSAA в игре. Еще одна из интересных особенностей движка X-Ray – технология отложенного затенения. Это означает, что вместо того чтобы обработать сцену несколько раз для расчета различных эффектов, как это делают традиционные движки, он просчитывает сцену  всего один раз, сохраняя при этом дополнительную информацию, чтобы  потом наложить тени, освещение и другие различного рода эффекты. На практике же это говорит о том, что игра может позволить себе более высокие числа треугольников и источников света, чем те, что основаны на традиционных движках.  

Помимо этого, в пути рендеринга картинки DX 9 активно используется попиксельное освещение, параллакс- и нормалмаппинг (карты смещения и нормалей). Вообще, нормалмаппинг представляет собой технологию, предназначенную для добавления  детализации моделям с низкой геометрической сложностью, без использования большего количества реальной геометрии. Это все производится с помощью  карт нормалей, полученных обработкой такой же модели, только с более высокой геометрической сложностью. Нормалмаппинг полностью осуществляет замену нормалей, используя значения из предварительно подготовленной карты нормалей (normal map). Они создаются на основе двух моделей с низким и высоким содержанием полигонов. Затем производится сравнение их друг с другом, и рассчитанная разница сохраняется в текстуре, называемой картой нормалей. В ней и хранится вся подробная информация о поверхностях. Нормалмаппинг не изменяет формы объекта и не добавляет полигонов, создается только  видимость этого. Поэтому по сравнению с простым использованием большого количества полигонов  технология с применением карт нормалей  представляет собой наиболее эффективный способ хранения данных о поверхностях. Что же касается параллаксмаппинга, то он является альтернативой бампмаппинга и нормалмаппинга. Дает еще большее представление о деталях поверхности, более натуралистичное отображение 3D-поверхностей, с малыми потерями производительности. Эта технология очень схожа с нормалмаппингом, отличаясь только тем, что этот метод искажает наложение текстуры, изменяя текстурные координаты так, что если вы смотрите на поверхность под различными углами, то она кажется выпуклой, хотя на самом деле она плоская. Параллаксмаппинг позволяет эффективно прорисовывать детализированные поверхности без использования огромного количества полигонов и сложной геометрии. Поэтому эта технология экономит ресурсы видеокарты значительнее (используется значительно меньшее количество вершин и треугольников, особенно в случаях с очень мелкими деталями), чем метод реальной геометрии. Параллаксмаппинг отлично подходит для прорисовки  камней, кирпичей и подобных рельефных поверхностей.  Недостаток метода –  невысокая детализация силуэтов и граней. 

Графические

Подводя итог вышесказанному, можно отметить, что разработчики  GSC Game World напичкали свое творение по "последнему слову техники". Но как это повлияет на производительность ускорителей?  

Исследование качества изображения

Давайте разберемся подробнее в основных различиях (если таковые есть) качества рендеринга картинки видеокартами AMD и NVIDIA.  Оценку будем проводить на двух видеоускорителях, относящихся к классу hi-end: Radeon 1950XTX и GeForce 8800 GTS 640 MB.  

При этом использовались следующие настройки драйверов видеокарт: 

Для NVIDIA ForceWare 97.93: 

  • texture filtering - high quality;
  • vertical sync – off;
  • anisotropic optimization – off;
  • anisotropic sample optimization – off;
  • transparency antialiasing – off;
  • other settings – defaults. 

AMD Catalyst 7.2: 

  • Catalyst A.I – standard;
  • mipmap detail level - high quality;
  • wait for vertical refresh – off;
  • adaptive antialiasing – off;
  • temporal antialiasing - off ;
  • high quality anisotropic filtering – off;
  • other settings – defaults. 

По сути, различия в качестве картинки между Radeon 1950XTX и NVIDIA GeForce 8800 GTS минимальны, но все же имеют место. Это связано с качеством отображения текстур (стены, асфальт и т.д.). Так, на видеокартах  NVIDIA, если взглянуть на скриншоты, они смотрятся чуть четче и более детализированно.

Графические Графические

Графические Графические

Графические Графические

Графические Графические

NVIDIA                                           AMD

Это можно связать с различной оптимизацией текстурной фильтрации карт  AMD и NVIDIA, использующих специфические для своих чипов алгоритмы, каждый из которых имеет свои недостатки и преимущества. По результатам исследования лидером, с точки зрения качества рендеринга, картинки в "S.T.A.L.K.E.R." являются видеоадаптеры NVIDIA. Хотя интересным является тот факт, что при дальнейшем тестировании производительности на картах NVIDIA  мы выявили несколько артефактов изображения, причем для карт ATI/AMD это не было характерно. Проблема с картинкой возникала при переключениях разрешения экрана и  проявлялась при отображении дождевых погодных условий. На экране это выглядело беловато-прозрачными, огромными по своему объему  мерцающими шумами, покрывающими все игровое пространство. К сожалению, скриншот отображает  лишь малую толику артефактов, видимых на реальном изображении.  

Графические Графические

В поисках решения проблемы было перепробовано несколько версий драйверов NVIDIA ForceWare, включая бета-версии – все безрезультатно. Артефакты упорно не пропадали, даже при обновлении игры до версии 1.0001. Оставим эту проблему на совести разработчиков и плавно перейдем к тестированию производительности.  

Методика тестирования

К сожалению, пока в игре невозможно использовать встроенный бенчмарк для замеров производительности в силу отсутствия соответствующих команд. Поэтому для тестирования были выбраны две наиболее трудные для акселераторов локации, при этом количество FPS замерялось с помощью программы FRAPS.  В игре был установлен максимально возможный уровень качества графики. Конфигурационный файл модификациям не подвергался. Управление антиалиасингом и анизотропной фильтрацией осуществлялось через меню самой игры. Тестирование проводилось в трех стандартных для нашей методики разрешениях: 1024x768, 1280х1024 и 1600х1200. Полноэкранное сглаживание 4x и анизотропная фильтрация 16х использовались только при рендеринге DX 8, а в DX 9.0c задействована только анизотропная фильтрация (проблема у NVIDIA GeForce 7 с FSAA+HDR).

Для того чтобы карты находились в одинаковых условиях, тестирование проводилось методом "пробега" главным персонажем определенного участка локации от места, где предварительно была сохранена игра. В связи с особенностью движка X-Ray, когда метеорологические условия генерируются хаотически, замеры производительности проводились не менее трех раз. При этом результат выбирался с наименьшим количеством FPS.

В тестах использовалась игра, обновленная до версии 1.0001. 

TECHLABS Scene 01. Bog 

Первая тестовая локация – болотистая местность к северу от расположенного комплекса "НИИ Агропром" в игре. Как в дальнейшем показало тестирование, это один из тех самых участков "S.T.A.L.K.E.R.", который нагружает видеоадаптер по максимуму.  

Графические Графические

Причем такие места, где производительность значительно падает, встречаются довольно часто по всему игровому миру "S.T.A.L.K.E.R.".

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

TECHLABS Scene 02. Fly 

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

Графические Графические

Собственно говоря, во время этого полета и замерялась производительность. Данный ролик воссоздает, на наш взгляд, среднестатистический  игровой процесс с достаточным количеством спецэффектов. Именно поэтому данная локация представляет собой наибольший интерес с точки зрения изучения реального игрового FPS.


       Опубликовать в twitter.com   Опубликовать в своем блоге livejournal.com           

Рекомендуем прочитать