Графические технологии в играх: Splinter Cell: Chaos Theory


Введение в обзоры графических технологий в играх
Современная терминология 3D графики


Разработчик: Ubisoft Montreal и Ubisoft Shanghai (режим versus)
Издатель: Ubisoft
Дата выхода: март 2005 г.
Графический API: Direct3D 9

Техническая характеристика

Игра Tom Clancy's Splinter Cell: Chaos Theory (для краткости имя идейного вдохновителя серии Тома Клэнси в дальнейшем постоянно упоминать не будем) — это так называемый стелс-экшен от третьего лица, разработанный и изданный компанией Ubisoft. Chaos Theory — это уже третья игра сериала Splinter Cell, основанного на историях Тома Клэнси. В игре описываются действия Сэма Фишера (Sam Fisher), агента работающего на отделение NSA, называемого "Third Echelon". Изначально игра была анонсирована к выходу в конце 2004 года, но вышла лишь в марте 2005 года в версиях для ПК и всех настольных консолей прошлого поколения: Microsoft Xbox, Sony PlayStation 2 и Nintendo GameCube (не считая версий для карманных консолей Nintendo DS и Nokia N-Gage).

Казалось бы — зачем делать статью по такой старой игре, тем более что только что вышла ее следующая часть? У меня есть свои аргументы в пользу этого решения. Во-первых, игра на момент выхода была настолько продвинута технологически, что до сих пор остается одной из тех игр, которые по примененным решениям являются наиболее технологичными 3D играми. Во-вторых, тем интереснее будет через некоторое время делать (и читать, надеюсь) обзор следующей части — Double Agent, сравнив две игры сериала, разделенные полутора годами по времени выпуска. Ну и в-третьих, работа над обзором началась задолго до выхода последней части игры, но по разным причинам задерживалась.

В Splinter Cell: Chaos Theory применен значительно переделанный и доработанный в Ubisoft движок Unreal Engine 2.5, эта модификация получила внутреннее название SCX Engine. Уровни в игре выполнены в виде закрытых и открытых пространств среднего размера. Встречаются как комнаты и коридоры, так и не очень большие открытые пространства. Для рендеринга теней движком используются карты теней, в том числе при помощи аппаратно ускоренных текстурных форматов. Графическая часть в Chaos Theory, по сравнению с Pandora Tomorrow, претерпела множество изменений, основными из которых являются наложение карт нормалей на все поверхности, применение parallax mapping, алгоритма смягчения границ теней и возможность HDR рендеринга. Новый рендерер использует унифицированную модель попиксельного освещения Блинна-Фонга, каждый рассчитываемый источник света дает диффузную и спекулярную составляющие на всех поверхностях. Игра отличается от предыдущих игр серии тем, что на всех поверхностях используется несколько текстурных слоев, в том числе наложение карт нормалей, а для рендеринга некоторых материалов применяется простая разновидность parallax mapping. Игра предлагает разнообразие фильтров постобработки: bloom, blur, motion blur, distortion, noise и комплексные фильтры для имитации ночного видения и других специальных приспособлений.

Релиз игры (версия 1.02, без установки патчей) содержит пиксельные и вершинные шейдеры версий 1.1 и 3.0. Шейдеров версии 1.1 больше, чем 3.0, в основном применяются именно они, но наиболее сложная работа отдана последним. Самые длинные вершинные шейдеры версии 3.0 состоят из 150-250 команд, их сложность средняя по современным меркам. А вот пиксельные программы версии 3.0 можно оценить как сложные, применяется ветвление, условные переходы, некоторые из программ содержат более 200 инструкций (по 15-20 текстурных и 150-200 математических), что для начала 2005 года очень серьезно. Шейдеры в игре используются для расчета освещения от нескольких источников света, смягчения границ теней, наложения карт нормалей, параллаксмаппинга, используются в алгоритмах постфильтрации.

Графическим движком игры используются шейдерные программы, написанные на HLSL, но заранее скомпилированные. Причем, в первой версии игры был выбор только между шейдерами версий 1.1 и 3.0, без каких-либо промежуточных значений (1.4, 2.0, 2.x), и лишь в последующих патчах добавили путь для видеокарт с поддержкой SM 2.0. На тестовой системе с видеокартой GeForce 7800 GTX, поддерживающей Shader Model 3.0, применяются вершинные шейдеры версий 1.1 и 3.0 и пиксельные шейдеры версий 1.1 и 3.0. В пиксельных шейдерах версии 3.0 сделаны оптимизации в виде расчетов с пониженной точностью (partial precision), но не во всех программах, а лишь в наиболее сложных. Эти оптимизации полезны почти для всех современных видеокарт NVIDIA, начиная с GeForce FX 5200 и заканчивая GeForce 7950 GX2, для GeForce 8800 они уже ничего не дают.

Объем геометрии, обрабатываемый движком игры в пределах одного кадра в типичных условиях и на максимальных настройках, оказался ниже среднего уровня для современных 3D игр. Количество полигонов в кадре изменяется от 20000 до 250000 полигонов на кадр, в редких случаях достигая числа в 300000 обрабатываемых треугольников. Сложность геометрии на разных уровнях отличается не слишком сильно, но все же отличается, есть уровни с 50000 средних треугольников на кадр, а есть — с 120000. Среднее количество обрабатываемых треугольников в кадре на максимальных настройках по всей игре составляет примерно 80000-90000 полигонов.

Игра Splinter Cell: Chaos Theory не предъявляет больших требований к объему видеопамяти, в разрешении 1024x768 с включенным HDR рендерингом и максимально возможными настройками качества, игра использует всего лишь 40-80 мегабайт видеопамяти, в зависимости от игрового уровня, что по современным меркам очень мало. Среднее использование видеопамяти в тестовом разрешении 1024x768 с включенным мультисэмплингом составляет 70 Мб, то есть игре достаточно видеопамяти даже на low-end видеокартах при любых настройках без включения антиалиасинга (с MSAA 4x использование памяти возрастает до 100-110, что тоже совсем немного). А объем локальной видеопамяти в 128 мегабайт является достаточным для любых настроек в этой игре, что сильно отличает Chaos Theory от большинства современных игр. Видимо, это последствия того, что игра разрабатывалась, в том числе и для консолей прошлого поколения, сильно ограниченных именно по объемам памяти. На ПК можно было бы использовать текстуры и карты теней более высокого разрешения.

Игра защищена небезызвестной защитой от копирования StarForce, на которую существует много нареканий со стороны игроков. Ну а для нашего обзора применение этой защиты означает, что анализ производительности и прочие исследования серьезно затруднены, так как игра, защищенная StarForce, не дает запустить себя из-под того же Microsoft PIX for Windows. Пришлось обойтись другими методами, использовать собственную утилиту для снятия данных со счетчиков производительности NVIDIA и DX-Tweaker для анализа пиксельных и вершинных шейдеров.

Как обычно, были собраны данные счетчиков по нескольким уровням игры. Полученные цифры показывают, что при максимальных настройках и разрешении 1024x768 видеочип GeForce 7800 GTX простаивал (по счетчику gpu_idle) в среднем около 8-9% времени, причем, значение сильно зависит от уровня, есть случаи с 2% простоя, когда производительность почти полностью ограничена видеочипом, а есть уровни с 15% времени простоя GPU. Сложность и количество пиксельных шейдеров весьма велики, значение pixel_shader_busy составляет в среднем около 40%, есть уровни с 35%, а есть — с 55%, что довольно много. Среднее использование блоков вершинных шейдеров (счетчик vertex_shader_busy) традиционно для современных игр крайне невелико — всего лишь 5%, с небольшим разбросом по уровням. В очередной раз видим низкую эффективность использования вершинных процессоров. Средняя доля времени ожидания блоками пиксельных шейдеров выборки данных из текстур (счетчик shader_waits_for_texture) — 17-18%, а доля ожидания окончания операций записи во фреймбуфер (shader_waits_for_rop) — лишь 10-12%, сказывается отключенный мультисэмплинг при HDR рендеринге, не поддерживаемый тестовой видеокартой для FP16 фреймбуфера. Последние цифры говорят о небольшом упоре в скорость текстурной выборки, видимо, из-за фильтрации карт теней, в первую очередь. А также о сравнительно небольших потерях времени на ожидание окончания операции с фреймбуфером.

Как обычно, мы исследовали и влияние некоторых настроек игры на средние показатели счетчиков производительности NVIDIA, сведя данные нескольких опытов в общую таблицу:

СчетчикDefaultHDR offHDR off
MSAA 4x
SM 1.1Parallax offSoft shadows offHW shadows offShadows lowSpecular off
FPS75.391.276.691.478.478.371.883.185.6
gpu_idle, %3.25.21.98.31.83.01.52.95.1
vertex_shader_busy, %4.95.74.76.64.95.14.75.34.1
pixel_shader_busy, %44.144.438.836.042.740.745.146.441.6
triangle count, polys7146870159709241174737280972963720967136066346
shader_waits_for_texture, %20.418.023.220.220.922.219.422.521.7
shader_waits_for_rop, %11.29.924.811.711.313.311.46.812.6
Video memory, Mb776794607577856276

В этот раз я решил указать и полученную среднюю частоту кадров, чтобы было видно, насколько сильно сказывается изменение настроек игры на производительности. Естественно, максимальное влияние на скорость оказало отключение HDR рендеринга и использование шейдеров версии 1.1. Интересно и то, что производительность игры в режиме HDR рендеринга без антиалиасинга примерно равна скорости в режиме с MSAA 4x, но с отключенным рендерингом повышенного динамического диапазона. Сильно влияют на производительность разрешение карт теней и расчет бликовой составляющей. А вот влияние включенного parallax mapping невелико, сказывается относительная простота примененного алгоритма. Также отмечаем, что аппаратное ускорение карт теней положительно сказывается на скорости.

Средние значения счетчика gpu_idle сильно отличаются только для режимов SM 1.1, а также с отключенными HDR рендерингом и расчетом бликовой составляющей. Загрузка видеочипа в таких условиях снижается. Незначительно влияют на gpu_idle и некоторые другие настройки. На значение vertex_shader_busy рассматриваемые нами настройки не оказывают почти никакого влияния, кроме SM 1.1 режима, в котором увеличивается нагрузка на вершинные блоки. Значение pixel_shader_busy немного снижается в режимах с отключенными алгоритмом смягчения теней и расчетом бликовой составляющей, а также с отключением параллаксмаппинга. Нагрузка на эти блоки еще сильнее снижается в режимах SM 1.1 и при включении антиалиасинга, так как в последнем случае большее время тратится на ожидание окончания операций блендинга и записи во фреймбуфер. И наоборот, загрузка пиксельных блоков немного возрастает в режимах с выключенной аппаратной поддержкой карт теней и при самом низком разрешении карт теней, в последнем случае из-за того, что время ожидания операций ROP уменьшается.

Значения счетчика количества рассчитанных в кадре полигонов отличаются не слишком сильно, в небольшой разнице виновата погрешность измерения и подсчета средних значений. Треугольников рассчитывается ощутимо меньше только в режиме без расчета бликовой составляющей, а больше — в режиме SM 1.1, где на построение сцены тратится большее количество проходов рендеринга. Причем, число возрастает почти в два раза. Значения счетчиков используемой локальной и системной видеопамяти в этот раз для удобства объединены в одно целое. В режиме без HDR значение прогнозируемо снижается (формат фреймбуфера меняется с FP16 на обычный 8-битный целочисленный), а в режиме с мультисэмплингом — повышается. Остальные изменение также понятны: в SM 1.1 используется меньше эффектов и отключен HDR, режим низкого разрешения карт теней влияет на уменьшение требований к видеопамяти, а отключение аппаратной поддержки карт теней приводит к использованию более затратных форматов для них.

Значение shader_waits_for_texture сильнее всего уменьшается при отключении HDR рендеринга, а также в режимах с отключенными трилинейной и анизотропной фильтрациями, которые мы в этот раз не включили в таблицу. Это объясняется тем, что в таких режимах требуются дополнительные текстурные выборки или более затратные выборки из FP16 буферов. Также заметны изменения значений счетчика в случаях с включенным мультисэмплингом, отключенными мягкими тенями, и низким разрешением карт теней. Время ожидания записи данных во фреймбуфер (shader_waits_for_rop) сильно увеличивается в режиме с включенным антиалиасингом, так как мультисэмплинг увеличивает работу для блоков ROP, количество записываемых сэмплов возрастает. На значение этого счетчика сильно влияет и использование карт теней низкого разрешения, когда число записываемых данных в карты теней снижается в разы. Некоторое влияние оказывают и другие настройки: отключение алгоритма смягчения теней, расчет бликовой составляющей и др.

Краткая история появления

Первые новости об очередном продолжении сериала Splinter Cell появились еще тогда, когда некоторые неторопливые игроки еще проходили Splinter Cell: Pandora Tomorrow. В середине мая 2004 года появился официальный анонс и первые скриншоты из Splinter Cell 3, настоящего названия на тот момент еще не имевшего. Разработка игры была передана монреальскому отделению компании, что дало надежды на лучшую реализацию, по сравнению с Pandora Tomorrow, которую делали в Шанхае и Париже. Для нашего обзора самым интересным фактом является то, что официальный пресс-релиз Ubisoft пообещал технологичную графику и серьезно улучшенный движок. Причем, было специально отмечено, что разработка игры велась с учетом возможностей ПК, в первую очередь.

То есть, при разработке третьей игры серии, создателям не приходилось учитывать многие ограничения предыдущего поколения консолей: Microsoft Xbox и Sony PlayStation 2. Первые же скриншоты показали, что так и произошло, ПК версия явно выделялась технологически, по сравнению с предыдущей игрой сериала:

   

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

Позднее, в середине лета того же года Ubisoft раскрыла и название третьего проекта серии, дав игре имя Tom Clancy's Splinter Cell: Chaos Theory. Стало известно и о выпуске игры в том числе и на Xbox. Тогда же были обозначены и предполагаемые сроки релиза — конец 2004 года, а точнее — 26 ноября 2004 года. Одновременно с новостями выходили и новые скриншоты проекта:

   

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

Вряд ли кто думал, что Ubisoft выдержит сроки и выпустит Chaos Theory вовремя… И вот, в конце сентября компания подтвердила перенос даты релиза ПК и Xbox версий игры Splinter Cell: Chaos Theory на март 2005 года. Ну а почти под самый новый год, Ubisoft обновила сайт сериала Splinter Cell, превратив его в общий портал, посвященный всем играм серии. Естественно, без новых роликов и скриншотов не обошлось, причем скриншоты 2005 года уже почти не отличались по 3D технологиям от того, что мы увидели в релизе на ПК.

   

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

Так как игра использует известный игровой движок Unreal Engine, необходимо вкратце рассказать и о нем. Движок Unreal Engine разработан в Epic Games и очень широко известен. Впервые показавшись на публике в легендарном шутере от первого лица Unreal в 1998 году, в дальнейшем он стал основой для большого количества игр, включая такие хиты, как Unreal Tournament и Rune. Хотя он предназначался прежде всего для шутеров с видом от первого лица, его успешно применяли и при создании игр других жанров, например, в экшн-RPG Deus Ex, MMORPG Vanguard: Saga of Heroes и, конечно, в стэлс-шутерах от третьего лица из серии Splinter Cell.

Unreal Engine отличается от других движков успешным портированием на другие платформы: ПК (Windows/Linux), Apple Macintosh (Mac OS, Mac OS X), игровые консоли (Xbox, Xbox 360, PlayStation 2, PlayStation 3, GameCube). Основной код движка написан на C++, а большая часть игрового кода — на UnrealScript, собственном скриптовом языке. Но самой важной особенностью Unreal Engine, по сравнению с другими средствами мультиплатформенной разработки, всегда были очень удобные утилиты для создания и модификации контента, что весьма важно при создании игр, для облегчения работы дизайнеров и художников.

Первая версия движка была публично показана в 1998, тогда все увидели ее возможности: поддержку качественного аппаратного (Glide, S3 Metal, PowerVR SGL, Direct3D и OpenGL) и программного рендеринга, обработку столкновений объектов, отличный код AI, неплохие сетевые возможности и файловый менеджмент. Из интересующих нас графических особенностей в движке была поддержка 32-битных текстур размером до 512x512 пикселей, 32-битного динамического освещения при помощи лайтмапов, расширенная поддержка BSP/PVS и порталов, текстур детализации (detail textures), анимированных процедурных текстур (вспомните воду в Unreal), мультитекстурирования, объемного освещения, достаточно мощные на то время системы частиц. В общем, Unreal Engine обладал очень мощными возможностями и удобными утилитами для разработчиков, поэтому неудивительно его применение во множестве игр разных компаний.

Вторая версия Unreal Engine начала свою жизнь в Unreal Tournament 2003, во втором поколении основной код и код рендеринга был полностью переписан, появилась базовая поддержка вершинных и пиксельных шейдеров. Другими нововведениями были третья версия редактора UnrealEd, возможности физического SDK Karma. Также нужно отметить появившуюся поддержку консолей PlayStation 2 и Xbox.

Прежде чем немного рассказать о третьей версии Unreal Engine, остановимся на промежуточной версии — 2.5. Это улучшенная версия Unreal Engine 2 с оптимизациями и изменениями в рендеринге, переписанными частями основного кода, поддержкой 64-битных версий Windows и Linux, улучшенным набором утилит, в т.ч. UnrealEd. Еще одной особенностью стало то, что для Xbox была выпущена специализированная версия движка, использовавшаяся в игре Unreal Championship 2 для этой платформы и получившая название Unreal Engine 2X.

Третье поколение Unreal Engine писалось специально под возможности ПК видеочипов с поддержкой DirectX 9, а также двух основных консолей нового поколения: Xbox 360 и PlayStation 3. В этой версии в очередной раз переписана часть, отвечающая за рендеринг, появилась поддержка продвинутых возможностей, таких, как попиксельное освещение, активное применение карт нормалей и parallax mapping, поддержка HDR рендеринга с использованием форматов буфера с плавающей запятой, а также динамические карты теней, которые ранее были разве что в специализированных версиях 2.x для Splinter Cell. Конечно же, произошли и некоторые другие изменения: поддержка физики Karma заменена известным PhysX API от Ageia или Havok на выбор разработчика. Из других нововведений отметим технологию FaceFX для лицевой анимации, а также возможность использования SpeedTree для быстрого моделирования и визуализации всевозможной растительности (впрочем, оно было доступно и для предыдущих версий).

Наиболее известные игры, основанные на Unreal Engine версий 1.x:

  • Unreal — Epic Games (1998)
  • Unreal Tournament — Epic Games (1999)
  • The Wheel of Time — Legend Entertainment (1999)
  • Deus Ex — Ion Storm (2000)
  • Rune — Human Head Studios (2000)
  • Clive Barker's Undying — Dreamworks Interactive (2001)

Некоторые из игр, применяющих Unreal Engine 2.x:

  • Unreal Tournament 2003 — Digital Extremes (2002)
  • Unreal II: The Awakening — Legend Entertainment (2003)
  • Deus Ex: Invisible War — Ion Storm (2003)
  • Lineage II — NC Soft (2003)
  • XIII — Ubisoft (2003)
  • Rainbow Six 3 — Ubisoft (2003-2004)
  • Unreal Tournament 2004 — Digital Extremes (2004)
  • Thief: Deadly Shadows — Ion Storm (2004)
  • Pariah — Digital Extremes (2005)
  • Star Wars: Republic Commando — LucasArts (2005)
  • Brothers In Arms: Road to Hill 30 — Gearbox (2005)

Ну и самое главное для нас:

  • Splinter Cell — Ubisoft (2003)
  • Splinter Cell: Pandora Tomorrow — Ubisoft (2004)
  • Splinter Cell: Chaos Theory — Ubisoft (2005)
  • Splinter Cell: Double Agent — Ubisoft (2006)

Как видите, перечислены игры разных жанров, между самой ранней Unreal и самой поздней (пока что) Splinter Cell: Double Agent прошло 8 лет, а движок продолжает и продолжает применяться в большом количестве игр. Третья версия Unreal Engine не изменяет традиции и будет еще более широко использоваться (точнее, уже используется) для создания игр для ПК и приставок нового поколения: Xbox 360 и PlayStation 3. Тем более что движок упрощает создание мультиплатформенных игр, чем и постараются воспользоваться их разработчики.

   

Более поздние скриншоты Chaos Theory показали все особенности новой модификации движка еще подробнее, на них также были видны попиксельное освещение, использование качественных карт нормалей, динамические карты теней для всей геометрии уровня, а также параллаксмаппинг и продвинутая постобработка (на самых поздних скриншотах). В 2005 году технологический уровень графики уже не изменялся, выложенные до релиза скриншоты показывали уровень картинки финальной версии.

Особенности графики в игре

Технологический уровень графики в Splinter Cell: Chaos Theory на момент ее выхода был очень высок. Можно сказать, что весной 2005 года это была самая технологичная 3D игра на ПК. Из наиболее важных особенностей игры и нововведений по сравнению с предыдущими играми серии можно отметить HDR рендеринг, алгоритм смягчения границ теней, использование карт нормалей и параллаксмаппинг, а также обновленные эффекты постобработки.

В Chaos Theory есть как закрытые (indoor), так и открытые (outdoor) пространства. Игра проходит в помещениях и на открытых локациях не слишком большого размера, искусственно ограниченных по краям разнообразными преградами. Примеры таких пространств представлены на скриншотах:

Indoor     Indoor

Outdoor     Outdoor

В Chaos Theory применяется наложение карт нормалей для всех поверхностей, для каждой из них используется нескольких текстурных слоев. Разрешение большинства текстур достаточное, но в некоторых случаях все же хотелось большей детализации, особенно учитывая крайне слабое использование ресурсов видеопамяти современных видеоадаптеров на ПК (из доступных 128-256 Мб памяти используется лишь половина — разве это нормально?). Но все же, чаще всего разрешение карт нормалей и остальных текстур достаточно, а из-за нормалмаппинга модели и уровни насыщены мелкими деталями.

Normal mapping     Normal mapping

Но самыми достоверными пиксельными эффектами нас балуют те поверхности, для которых используется parallax mapping. Таких поверхностей в Chaos Theory достаточно много, техника простого parallax mapping применяется для большого количества поверхностей и в большинстве случаев очень грамотно:

Parallax mapping     Parallax mapping

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

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

Models     Models

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

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

Тени в игре рассчитываются от многих источников освещения, но обычно от одного одновременно, так сделан дизайн уровней. Зато для всей геометрии в сцене и с самозатенением. Как выше написано, используются карты теней, в том числе аппаратные, которые применялись в играх серии с самого начала. Нововведением Chaos Theory стал алгоритм смягчения теней при помощи пиксельных шейдеров версии 3.0 (как раз один из самых сложных шейдеров в игре). Так как игра по жанру — стэлс-экшн, теням в ней уделено особенное внимание, игра порой даже излишне темная.

Shadows     Shadows

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

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

Water     Water

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

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

Particles     Particles

Традиционно, отдельное внимание уделяем эффектам постобработки. Особенно в случае представителя сериала Splinter Cell, где эти эффекты появились очень давно. В игре применяются многие из привычных фильтров: bloom — фильтр, увеличивающий яркость светлых участков изображения; distortion — эффект искажения изображения; blur — полноэкранное размытие картинки; motion blur — эффект размытия в движении, при воздействии световых гранат; а также некоторые другие постфильтры и их сочетания: коррекция цвета (desaturation и др.), подавляющие или изменяющие цвета итоговой картинки, пиксельный шум и т.п. Основные постэффекты можно увидеть на скриншотах:

Postprocessing (bloom) Postprocessing (bloom)Postprocessing (bloom) Postprocessing (bloom)
Postprocessing (blur) Postprocessing (blur)Postprocessing (blur) Postprocessing (blur)
Postprocessing (motion blur) Postprocessing (motion blur)Postprocessing (motion blur) Postprocessing (motion blur)
Postprocessing (misc) Postprocessing (misc)Postprocessing (misc) Postprocessing (misc)

В игре много открытых и закрытых пространств с разными условиями освещения, локации с яркими источниками света и их почти полным отсутствием, поэтому возможность включения HDR рендеринга и связанного с ним tone mapping весьма полезна. К счастью, HDR рендеринг в игре сделали, и сделали первыми (имеется в виду полноценный рендеринг в 16-битный формат буфера с плавающей точкой). Возможность пригодилась как для улучшения качества постфильтрации, так и имитации эффекта адаптации человеческого зрения к изменению условий освещения. Для HDR рендеринга используется 16-битный формат буфера с плавающей точкой, и на видеокартах, не поддерживающим эту возможность, остается довольствоваться обычным LDR рендерингом, который выглядит местами заметно хуже.

HDR rendering     HDR rendering

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

Tone mapping     Tone mapping

В общем и целом, можно сказать, что технологичность графики в игре до сих пор находится на самом современном уровне. Важнейшими отличительными особенностями игры являются: динамические мягкие тени от всех основных источников света и всей геометрии, попиксельное освещение, наложение карт нормалей, широкое применение техники parallax mapping (простого алгоритма без трассировки лучей), достаточное разрешение большинства текстур, различные эффекты постобработки, а также HDR рендеринг и tone mapping.

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

Настройки качества графики

Splinter Cell: Chaos Theory по современным меркам не очень требователен к мощности видеокарты, по сравнению с другими более поздними играми (кстати, продолжение сериала Double Agent планируется к скорому рассмотрению). Хотя игра технологически довольно сложна и использует многие возможности современных видеокарт, плавная работа на максимальных настройках обеспечивается даже на видеокартах среднего уровня, таких как ATI RADEON X1800 GTO, NVIDIA GeForce 7600 GT и GeForce 6800 GT. Такие видеокарты обеспечивают в игре средний FPS от 45-50 кадров в секунду и более в разрешении 1024x768 на максимальных настройках с включенными анизотропной фильтрацией и антиалиасингом или HDR рендерингом. Начиная с этих моделей и на всех более мощных можно выставить настройки на максимум, а для видеокарт более низкого уровня для достижения баланса между частотой смены кадров и качеством картинки, нужно будет потратить некоторое время на поиск оптимальных значений графических настроек.

Если нужная частота кадров, которую можно примерно оценить визуально, по плавности игры, не достигается, или кажется, что игра выставила слишком низкие настройки качества, нужно сначала проверить среднюю частоту кадров. Движок Unreal позволяет тестировать производительность, используя записанные демки, и авторы Chaos Theory записали специальную демку для тестов, их бенчмарк запускается при помощи командного файла "Timedemo.bat", расположенного в подкаталоге "System" игры. После окончания теста результаты записываются в текстовом формате в файл "TimeDemoResult.xls". Для удобства там записаны не только значения средней частоты кадров, но и минимального и максимального FPS. Средняя частота кадров должна быть не меньше 40-50 FPS, а еще лучше 60 FPS, а минимальная — не меньше 25-30 FPS. Если средний FPS больше 50-60, можно попробовать улучшить качество картинки, изменив настройки в большую сторону, а если меньше 40, то лучше снизить их. Повторяя эксперименты, нужно постараться получить приемлемый лично для вас вариант, не забывая, что уровни в игре разные и неравноценные с точки зрения нагрузки на видеокарту.

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

Игра предлагает достаточное количество настроек качества рендеринга, которые нуждаются в подробном описании. Графические настройки расположены в меню игры «Settings-Display». На основном экране даны лишь базовые настройки: разрешение рендеринга, настройки яркости и контрастности.

Settings — Display

  • Brightness (числовое значение от 0 до 100) и Contrast (числовое значение от 0 до 100) — это обычные настройки яркости и контрастности изображения, влияющие лишь на картинку, но не на производительность.

  • Display Resolution (640x480, 800x600, 1024x768, 1088x612, 1280x720, 1280x768, 1280x800, 1280x960, 1280x1024, 1600x900, 1600x1200, 1920x1080, 1920x1200, 1920x1440, 2048x1536) — настройка игрового разрешения. Список разрешений в версии 1.02 довольно широкий, почти все реально нужные разрешения в нем есть, присутствует и самое востребованное для LCD мониторов разрешение 1280x1024. Если нужного вам разрешения нет в меню, можно воспользоваться пользовательской установкой, об этом написано в конце статьи.

    Выбор разрешения в игре довольно сильно влияет на производительность, разница между разрешениями 640x480 и 1024x768 на тестовой системе с установленной видеокартой GeForce 7800 GTX составила 32% для максимальных настроек и 0% — для минимальных, а между 1024x768 и 1600x1200 — 86% на максимуме и 34% на минимальных настройках. Средняя частота кадров в 1600x1200 почти в два раза ниже, чем в 1024x768, поэтому на этот параметр нужно обращать особое внимание, игра крайне требовательна к эффективной скорости заполнения (филлрейту), зависящей от рабочей частоты видеочипа и количества блоков ROP, а также пропускной способности памяти, в свою очередь зависящей от частоты и ширины шины.

Но главные настройки качества рендеринга расположены на дополнительной странице видеонастроек — "Advanced". Именно их и нужно настроить для получения оптимального сочетания качества и производительности. Необходимо изменять эти настройки так, чтобы достичь средней частоты кадров хотя бы больше 40 FPS. Основные параметры игры, на которые следует обратить внимание: «Display Resolution», «Shader Model Type», «Antialiasing», «Anisotropic Filtering», «Shadow Resolution», «Specular Lighting» и «HDR Rendering». Рассмотрим все имеющиеся настройки подробнее.

Settings — Display — Advanced

Settings — Display — Advanced

  • Shader Model Type (Shader Model 1.1/Shader Model 3.0) — эта настройка позволяет выбрать версию используемых 3D движком игры пиксельных и вершинных шейдеров. На момент релиза был доступен выбор лишь из двух возможных вариантов — 1.1 или 3.0, что было негативно воспринято владельцами видеокарт на базе чипов ATI R[V]3x0 и ATI R[V]4x0, и позднее для них сделали поддержку шейдерной модели версии 2.0, включив эту возможность в последующие патчи.

    По сути, разница между режимами состоит в том, что в SM 3.0 режиме можно включить HDR рендеринг и связанный с ним tone mapping, также шейдерами третьей версии делается parallax mapping и алгоритм смягчения теней. Но этим дело не ограничивается, как вы могли видеть из таблицы в начале статьи, в SM 1.1 режиме обрабатывается большее количество треугольников, по сравнению с 3.0, а значит, используется большее количество проходов рендеринга для расчета освещения.

    Визуальную разницу между режимами можно оценить по приложенным картинкам. Естественно, в SM 3.0 режиме было включено всё, что доступно в подменю "Shader Options", которое становится доступным только для 3.0 режима, и речь о котором пойдет далее. Как видите, разница между режимами заключается в ином освещении (виноват не только HDR рендеринг, но и большая точность расчетов, например) и в разной степени мягкости границ теней. На скриншоте не виден parallax mapping в SM 3.0 режиме, но его мы рассмотрим в дальнейшем.

       

    Выбор режима рендеринга самым прямым образом сказывается на производительности игры. На тестовой видеокарте NVIDIA GeForce 7800 GTX разница между двумя доступными в релизе версиями шейдерной модели составила 20% для разрешения 1024x768 и максимальных настроек и 0% — для минимальных. Необходимо учитывать, что данная видеокарта для игры является достаточно быстрой, на менее скоростных платах отличие в разных режимах будет гораздо более заметно. Так что для low-end карт можно включить SM 1.1 и не так уж много потерять в качестве. С другой стороны, для большинства современных видеокарт можно посоветовать выбор SM 3.0, как дающий значительно более приятную картинку, за одним исключением — для видеокарт NVIDIA до GeForce 8800 одновременное использование антиалиасинга и HDR рендеринга невозможно и выбор между ними придется делать пользователю, исходя из своих предпочтений.

  • Antialiasing (Disabled/2x/4x) — этот параметр регулирует уровень антиалиасинга, он недоступен в том случае, если в предыдущем пункте установлен режим "Shader Model 3.0" и в дополнительных настройках "Shader Options" включен HDR рендеринг. Как обычно, в игре доступно включение всех поддерживаемых видеокартой уровней мультисэмплинга, на тестовой видеокарте выбор ограничен режимами с 2 и 4 сэмплами.

    На производительность в игре антиалиасинг оказывает довольно сильное влияние, на тестовой системе разница между режимами с максимальными настройками, отключенным HDR и антиалиасингом и максимальными настройками с мультисэмплингом уровня 4x составила около 18%. А вот с минимальными настройками включение антиалиасинга не сказалось на производительности вообще. Так что нужно подбирать значение под свою собственную систему, есть случаи, когда мультисэмплинг почти бесплатен, а есть случаи, где его включение вызывает заметное падение скорости, особенно на low-end видеокартах. Ну и, как говорилось выше, придется выбирать между HDR рендерингом и антиалиасингом на видеокартах NVIDIA GeForce 6 серии.

  • Anisotropic Filtering (Disabled/Anisotropic 2x/4x/8x/16x) — настройка управляет включением анизотропной фильтрации для текстур игры. Есть выбор между отключением анизотропной фильтрации и всеми ее уровнями качества, на которые способна видеокарта. В нашем случае игра дает выбор от 2x до 16x. И хотя все знают, как воздействует анизотропная фильтрация на качество картинки, позволю себе напомнить об этом на примере рассматриваемой игры:

       

    Этот вид фильтрации значительно повышает четкость текстур, что хорошо видно на картинках, даже с учетом того, что для снятия скриншотов использовалась видеокарта с известными проблемными углами для качества анизотропной фильтрации. На скорости игры включение анизотропки сказывается не слишком сильно, для минимальных настроек ее влияние оказалось менее 1%, а отключение анизотропной фильтрации в режиме максимальных настроек повысило производительность на 5%. Считаю, что такая маленькая прибавка в производительности не стоит того, чтобы отключать режим 16x, сильно теряя в качестве. Разве что если на вашей системе анизотропка вызывает большое падение производительности, не такое мизерное, как на нашей тестовой.

  • Shadow Resolution (Low/Medium/High) — этот конфигурационный параметр служит для задания разрешения карт теней, используемых для рендеринга всех динамических теней в игре. Он может серьезно повлиять на качество теней, при малом разрешении появляются так ненавистные нам зубцы на краях теней, для избавления от которых также сделан специальный режим качественных мягких теней, работающий на современных видеокартах с поддержкой пиксельных шейдеров версии 3.0, который рассмотрен в следующей части статьи.

       

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

    На производительность игры параметр влияет не очень сильно, на нашей тестовой системе, по крайней мере. Локальной памяти видеокарте хватает во всех случаях, а запас по выборке из текстур и операциям ROP в режиме максимальных настроек остается. Разница в разрешении 1024x768 с максимальными настройками составила 10% для крайних режимов: "Low" и "High". С минимальными настройками разницы и вовсе нет никакой, так что оптимальным значением для современных видеокарт будет "High", а уже для менее скоростных возможны варианты.

  • Trilinear Filtering (Off/On) — еще одна настройка качества текстурной фильтрации, на этот раз — включающая трилинейную фильтрацию текстур (ту самую, которая "сглаживает" границы мип-уровней и которую так упорно оптимизируют наши любимые производители видеочипов). Разницу на картинках в игре показать сложно, она слишком темная.

    Как ни странно, трилинейка влияет на производительность Chaos Theory почти в той же мере, что и анизотропка. На нашей видеокарте NVIDIA так получилось, по крайней мере. Для максимальных настроек в разрешении 1024x768 ее влияние оказалось равным 4%, а для минимальных — 0%. Так что, несмотря на непроходимую темноту в игре, советую все же держать трилинейную фильтрацию всегда включенной, особенно на достаточно производительных системах. Вы просто не почувствуете 4% разницы, а вот границы мип-уровней в динамике заметить можно.

  • Specular Lighting (Off/On) — параметр отвечает за включение и выключение расчета бликовой составляющей в игре. Упрощенную теорию про расчет specular составляющей можно почитать в соответствующем теоретическом материале, но если коротко — то эта одна из основных составляющих освещения, которую начали учитывать не так давно и которая придает реалистичности картинке. Можете убедиться в этом по приложенным сравнительным скриншотам:

       

    Как видите, бликовая составляющая света дает много дополнительной информации при построении сцены. Еще бы разработчики игр не слишком увлекались завышением значений specular, которые делают картинку излишне блестящей и не совсем реалистичной, было бы еще лучше. На значении среднего FPS включение расчета specular сказывается довольно серьезно, для минимальных настроек разница получилась 10% (сдается мне, что из-за дополнительного прохода рендеринга), а для максимальных — все 15%. Так что для владельцев слабых систем есть неплохая возможность повысить производительность при том, что играть в таком режиме вполне можно без особых потерь.

  • High Quality Textures (Off/On) — данная настройка игры включает специальный набор базовых текстур повышенного разрешения. В игре используется два набора текстур: обычный и качественный. Настройка заставляет игру использовать второй. Понятное дело, что на качество картинки это оказывает весьма благотворное влияние, ведь разрешение многих текстур увеличивается в четыре раза, судя по приложенным скриншотам:

       

    Учитывая малую нагрузку на видеопамять, которую по современным меркам дает игра, советую всем включать "High Quality Textures" в любом случае. Разница в производительности между значениями Off и On это подтверждает, даже при максимальных настройках и включенном HDR рендеринге она получилась равной лишь 2%, а при минимальных никакой разницы не обнаружено вообще. Может быть, конечно, что на бюджетных видеокартах включение низкого разрешения текстур поможет значительно поднять производительность, но только если на видеокарте установлено менее 128 Мб видеопамяти и/или она очень слабая (GeForce FX 5200 или что-то вроде того).

  • Vertical Sync (Off/On) — настройка отключает и включает вертикальную синхронизацию. При включении VSync максимальная частота кадров ограничивается частотой обновления экрана. Например, если частота обновления составляет 60 Гц, а настройка включена, то максимально возможное количество кадров в секунду будет равно 60 FPS. В некоторых случаях включение VSync помогает избавиться от артефактов разрывающейся на части картинки ("tearing"), и для максимального качества она полезна, но так как настройка ограничивает производительность, мы рекомендуем ее отключать, если это не приводит к заметным проблемам. Лучше всего будет настроить игру так, чтобы частота кадров (FPS) изменялась в пределах от 30 FPS до 60 FPS.

  • Hardware Shadow Mapping (Off/On) — параметр управляет использованием аппаратной поддержки специальных текстурных форматов для карт теней, которая имеется во многих современных видеокартах. Никакого смысла в его отключении я не вижу, так как качество рендеринга не меняется вовсе, изменяется лишь объем используемой видеопамяти и получаемая в итоге производительность. Естественно, в отрицательную сторону.

    На тестовой системе с установленной видеокартой GeForce 7800 GTX разница между аппаратно ускоренными картами теней и обычным универсальным алгоритмом составила 5-7%, что явно больше возможной погрешности, а значит, настройку "Hardware Shadow Mapping" всегда нужно держать включенной, если это не дает каких-либо проблем с качеством.

Shader Options

Для режима Shader Model 3.0 доступны еще несколько настроек качества, дополнительное меню с ними вызывается при нажатии кнопки "Shader Options". Рассмотрим эти четыре дополнительные настройки, которые сильно влияют на качество и производительность игры.

Shader options

  • HDR Rendering (Off/On) — название настройки говорит само за себя, это включение HDR рендеринга — специального режима, когда рендеринг производится в буфер 16-битного формата с плавающей запятой. Игра стала первой среди выпущенных на ПК, которая поддерживала полноценный HDR рендеринг и уже за одно это ее стоит похвалить. Разница в качестве картинки сильно зависит от уровня в игре, но HDR рендеринг почти всегда явно выигрывает у LDR рендеринга в качестве. Один из примеров применения указан на картинке, можете оценить всё сами:

       

    Как видно, при HDR рендеринге разница между яркостью наиболее освещенных поверхностей и самых темных гораздо больше, чем в обычном режиме. Так что даже в первой игре с возможностью HDR рендеринга смысл в его включении есть. Естественно, включение HDR самым серьезным образом сказывается на производительности. Так, на нашей тестовой системе включение HDR по сравнению с теми же максимальными настройками, но обычном формате фреймбуфера, понизило производительность более чем на 20%. То же самое включение HDR рендеринга в режиме с минимальными настройками влияет меньше — на 4-5%. Ну и не стоит забывать, что на некоторых видеокартах его совместная работа с антиалиасингом невозможна в принципе.

  • Tone Mapping (Off/On) — этот параметр неразрывно связан с предыдущим, ведь tone mapping в игре невозможен без включения HDR рендеринга в 16-битный буфер кадра. Подробнее про tone mapping написано в статье с терминами, ну а в данном конкретном случае этот параметр скорее отвечает за включение эмуляции такого свойства человеческого зрения, как адаптация к изменяющимся условиям освещения. Пример уже приводился выше, это постепенное изменение яркости сцены при смене направления камеры, которое как раз и вызвано работой оператора tone mapping, динамически изменяющего соответствующие параметры.

       
  • Parallax Mapping (Off/On) — эта настройка отвечает за включение простой техники parallax mapping, которая была впервые использована в игре Splinter Cell: Chaos Theory. Именно в рассматриваемой сегодня игре мы в первый раз увидели, что дает parallax mapping не в синтетических сценах, а в реальных игровых условиях. Эта техника серьезно увеличивает реалистичность сцены малой кровью, почти не влияя на производительность, но увеличивая рельефность мелких деталей, задаваемых картами высот.

       

    На правом скриншоте стволы бамбука имеют объем, а на левом кажутся плоскими, и карты нормалей им не помогают. В динамике воздействие параллаксмаппинга еще более заметно, казалось бы плоские поверхности получают объем, что упрощает работу видеокарте, подменяя необходимость добавления геометрических данных попиксельной работой. Причем, на производительности техника почти не сказывается, ведь в пиксельный шейдер добавляется пара дополнительных команд. В нашем случае при максимальных настройках разница между значениями Off и On составила 3-4%, при минимальных не превысила порога погрешности тестирования. Непонятно, почему техника до сих пор не применяется в большинстве игр? А ведь есть и еще более мощные реализации…

  • High Quality Soft Shadows (Off/On) — параметр, включающий специальный SM 3.0 алгоритм для смягчения теней, получаемых при помощи карт теней (shadow maps). В этом режиме карты теней перед выводом фильтруются, это нужно для получения мягких границ теней. Действие алгоритма вы можете наблюдать на приложенных скриншотах:

       

    На втором скриншоте границы теней сглаженные, мягкие, без зубчатости и не такие резкие. Это улучшает картинку, но, с другой стороны, алгоритм не учитывает интенсивности источников света и расстояний от объекта до тени и от источника до объекта, и их размеров, хотя и является относительно недорогой аппроксимацией расчета полутеней.

    Выключение алгоритма смягчения теней сказывается на производительности тестовой системы примерно также, как и параллаксмаппинг из предыдущего пункта. Так, в режиме максимальных настроек отключение мягких теней дало 3-4% прирост производительности, а его включение в режиме минимальных настроек никак не сказалось на получаемой частоте кадров. Вопрос необходимости смягчения теней остается личным делом каждого пользователя, если мягкие тени нравятся и их включение не сильно сказывается на производительности (как на нашей GeForce 7800 GTX), их можно включить.

В секции производительности остается отметить, что на тестовой системе в разрешении 1024x768 с включенным HDR рендерингом (и отключенным антиалиасингом, который не поддерживается видеокартой для FP16 фреймбуфера) и анизотропной фильтрацией 16x, а также остальными максимальными настройками качества 3D рендеринга среднее количество кадров в секунду по всей игре получается около 70-80 FPS, тогда как минимальное значение не опускается ниже 35. Это — весьма комфортные условия для игры.

Дополнительные возможности настройки

Игра Splinter Cell: Chaos Theory основана на движке Unreal Engine, поэтому некоторые из возможностей по настройке игр на этом движке могут подойти и к нему. Но большинство настроек уникальны для этой игры, а некоторые привычные команды UE не работают в рассматриваемой игре. Chaos Theory использует конфигурационный файл SplinterCell3.ini, расположенный в \Documents and Settings\All Users\Application Data\Ubisoft\Tom Clancy's Splinter Cell Chaos Theory

Помимо параметров, которые соответствуют графическим настройкам из меню игры (ShadowQuality, ShaderModel, Anisotropy, AntiAliasing, Trilinear, Specular, ParallaxMapping, HQSoftShadows, HDR, HiResTextures, ToneMapping) в секции [WinDrv.WindowsClient] доступны еще несколько полезных команд:

  • FullscreenViewportX (значение в пикселях) и FullscreenViewportY (значение в пикселях) — параметры, задающие используемое игрой разрешение рендеринга. В случае отсутствия необходимого вам разрешения в настройках игры, можно попробовать задать нужные ширину и высоту при помощи этих команд.

  • TextureDetail (Low/Medium/High) и SkinDetail (Low/Medium/High) — настройки, отвечающие за качество текстур, которые служат дополнением к указанной выше настройке "High Quality Textures", доступной из меню игры, и дополнительно снижают разрешение текстур. Они будут полезны разве что для самых слабых карт, так как даже при установках в High используются не так уж много видеопамяти, даже 64 Мб локальной памяти видеокарт может быть вполне достаточно.

    Обе настройки, выставленные в значение "Low", дают прирост производительности в 7% на нашей тестовой системе. Этот небольшой прирост может быть не лишним для владельцев самых медленных видеокарт.

Пара полезных команд из секции [D3DDrv.D3DRenderDevice]:

  • UseTripleBuffering (False/True) — конфигурационный параметр, отвечающий за использование рендером тройной буферизации. Полезен для достижения плавного рендеринга. Хотя тройная буферизация и увеличивает использование видеопамяти, учитывая нетребовательность Chaos Theory к этой характеристике видеокарт, тройную буферизацию включить вполне можно.

  • UseHWShadowMapping (False/True) — настройка, включающая использование аппаратно ускоренных карт теней. Аналогична соответствующему конфигурационному параметру из меню графических настроек игры.




7 декабря 2006 Г.

: Splinter Cell: Chaos Theory

: Splinter Cell: Chaos Theory



3D


: Ubisoft Montreal Ubisoft Shanghai ( versus)
: Ubisoft
: 2005 .
API: Direct3D 9

Tom Clancy's Splinter Cell: Chaos Theory ( ) — - , Ubisoft. Chaos Theory — Splinter Cell, . (Sam Fisher), NSA, "Third Echelon". 2004 , 2005 : Microsoft Xbox, Sony PlayStation 2 Nintendo GameCube ( Nintendo DS Nokia N-Gage).

— , ? . -, , , 3D . -, ( , ) — Double Agent, , . -, , .

Splinter Cell: Chaos Theory Ubisoft Unreal Engine 2.5, SCX Engine. . , . , . Chaos Theory, Pandora Tomorrow, , , parallax mapping, HDR . -, . , , , parallax mapping. : bloom, blur, motion blur, distortion, noise .

( 1.02, ) 1.1 3.0. 1.1 , 3.0, , . 3.0 150-250 , . 3.0 , , , 200 ( 15-20 150-200 ), 2005 . , , , , .

, HLSL, . , 1.1 3.0, - (1.4, 2.0, 2.x), SM 2.0. GeForce 7800 GTX, Shader Model 3.0, 1.1 3.0 1.1 3.0. 3.0 (partial precision), , . NVIDIA, GeForce FX 5200 GeForce 7950 GX2, GeForce 8800 .

, , 3D . 20000 250000 , 300000 . , , 50000 , — 120000. 80000-90000 .

Splinter Cell: Chaos Theory , 1024x768 HDR , 40-80 , , . 1024x768 70 , low-end ( MSAA 4x 100-110, ). 128 , Chaos Theory . , , , , . .

StarForce, . , , , StarForce, - Microsoft PIX for Windows. , NVIDIA DX-Tweaker .

, . , 1024x768 GeForce 7800 GTX ( gpu_idle) 8-9% , , , 2% , , 15% GPU. , pixel_shader_busy 40%, 35%, — 55%, . ( vertex_shader_busy) — 5%, . . ( shader_waits_for_texture) — 17-18%, (shader_waits_for_rop) — 10-12%, HDR , FP16 . , , - , . .

, NVIDIA, :

Default HDR off HDR off
MSAA 4x
SM 1.1 Parallax off Soft shadows off HW shadows off Shadows low Specular off
FPS 75.3 91.2 76.6 91.4 78.4 78.3 71.8 83.1 85.6
gpu_idle, % 3.2 5.2 1.9 8.3 1.8 3.0 1.5 2.9 5.1
vertex_shader_busy, % 4.9 5.7 4.7 6.6 4.9 5.1 4.7 5.3 4.1
pixel_shader_busy, % 44.1 44.4 38.8 36.0 42.7 40.7 45.1 46.4 41.6
triangle count, polys 71468 70159 70924 117473 72809 72963 72096 71360 66346
shader_waits_for_texture, % 20.4 18.0 23.2 20.2 20.9 22.2 19.4 22.5 21.7
shader_waits_for_rop, % 11.2 9.9 24.8 11.7 11.3 13.3 11.4 6.8 12.6
Video memory, Mb 77 67 94 60 75 77 85 62 76

, , . , HDR 1.1. , HDR MSAA 4x, . . parallax mapping , . , .

gpu_idle SM 1.1, HDR . . gpu_idle . vertex_shader_busy , SM 1.1 , . pixel_shader_busy , . SM 1.1 , . , , - , ROP .

, . , — SM 1.1, . , . . HDR ( FP16 8- ), — . : SM 1.1 HDR, , .

shader_waits_for_texture HDR , , . , FP16 . , , . (shader_waits_for_rop) , ROP, . , . : , .

Splinter Cell , Splinter Cell: Pandora Tomorrow. 2004 Splinter Cell 3, . , , Pandora Tomorrow, . , - Ubisoft . , , , .

, , : Microsoft Xbox Sony PlayStation 2. , , , :

   

, , — Bloom. .

, Ubisoft , Tom Clancy's Splinter Cell: Chaos Theory. Xbox. — 2004 , — 26 2004 . :

   

, , . , , Pandora Tomorrow, .

, Ubisoft Chaos Theory … , Xbox Splinter Cell: Chaos Theory 2005 . , Ubisoft Splinter Cell, , . , , 2005 3D , .

   

, Ubisoft , (specular) . , , (. ).

Unreal Engine, . Unreal Engine Epic Games . Unreal 1998 , , , Unreal Tournament Rune. , , , -RPG Deus Ex, MMORPG Vanguard: Saga of Heroes , , - Splinter Cell.

Unreal Engine : (Windows/Linux), Apple Macintosh (Mac OS, Mac OS X), (Xbox, Xbox 360, PlayStation 2, PlayStation 3, GameCube). C++, — UnrealScript, . Unreal Engine, , , , .

1998, : (Glide, S3 Metal, PowerVR SGL, Direct3D OpenGL) , , AI, . 32- 512x512 , 32- , BSP/PVS , (detail textures), ( Unreal), , , . , Unreal Engine , .

Unreal Engine Unreal Tournament 2003, , . UnrealEd, SDK Karma. PlayStation 2 Xbox.

Unreal Engine, — 2.5. Unreal Engine 2 , , 64- Windows Linux, , .. UnrealEd. , Xbox , Unreal Championship 2 Unreal Engine 2X.

Unreal Engine DirectX 9, : Xbox 360 PlayStation 3. , , , , , parallax mapping, HDR , , 2.x Splinter Cell. , : Karma PhysX API Ageia Havok . FaceFX , SpeedTree (, ).

, Unreal Engine 1.x:

  • Unreal — Epic Games (1998)
  • Unreal Tournament — Epic Games (1999)
  • The Wheel of Time — Legend Entertainment (1999)
  • Deus Ex — Ion Storm (2000)
  • Rune — Human Head Studios (2000)
  • Clive Barker's Undying — Dreamworks Interactive (2001)

, Unreal Engine 2.x:

  • Unreal Tournament 2003 — Digital Extremes (2002)
  • Unreal II: The Awakening — Legend Entertainment (2003)
  • Deus Ex: Invisible War — Ion Storm (2003)
  • Lineage II — NC Soft (2003)
  • XIII — Ubisoft (2003)
  • Rainbow Six 3 — Ubisoft (2003-2004)
  • Unreal Tournament 2004 — Digital Extremes (2004)
  • Thief: Deadly Shadows — Ion Storm (2004)
  • Pariah — Digital Extremes (2005)
  • Star Wars: Republic Commando — LucasArts (2005)
  • Brothers In Arms: Road to Hill 30 — Gearbox (2005)

:

  • Splinter Cell — Ubisoft (2003)
  • Splinter Cell: Pandora Tomorrow — Ubisoft (2004)
  • Splinter Cell: Chaos Theory — Ubisoft (2005)
  • Splinter Cell: Double Agent — Ubisoft (2006)

, , Unreal ( ) Splinter Cell: Double Agent 8 , . Unreal Engine (, ) : Xbox 360 PlayStation 3. , .

   

Chaos Theory , , , , ( ). 2005 , .

Splinter Cell: Chaos Theory . , 2005 3D . HDR , , , .

Chaos Theory (indoor), (outdoor) . , . :

Indoor     Indoor

Outdoor     Outdoor

Chaos Theory , . , , ( 128-256 — ?). , , - .

Normal mapping     Normal mapping

, parallax mapping. Chaos Theory , parallax mapping :

Parallax mapping     Parallax mapping

, , . , , , , . .

— . , , , . , .

Models     Models

, , . . , , 2005 , . — . , , .

, , , . , , , .

, , . . , , , . Chaos Theory 3.0 ( ). — -, , .

Shadows     Shadows

, , . , , , . .

, . , , :

Water     Water

, , , . , — , . , , — 3DMark 2001.

. , . , …

Particles     Particles

, . Splinter Cell, . : bloom — , ; distortion — ; blur — ; motion blur — , ; : (desaturation .), , .. :

Postprocessing (bloom) Postprocessing (bloom) Postprocessing (bloom) Postprocessing (bloom)
Postprocessing (blur) Postprocessing (blur) Postprocessing (blur) Postprocessing (blur)
Postprocessing (motion blur) Postprocessing (motion blur) Postprocessing (motion blur) Postprocessing (motion blur)
Postprocessing (misc) Postprocessing (misc) Postprocessing (misc) Postprocessing (misc)

, , HDR tone mapping . , HDR , ( 16- ). , . HDR 16- , , , LDR , .

HDR rendering     HDR rendering

tone mapping, — . , — . , :

Tone mapping     Tone mapping

, , . : , , , parallax mapping ( ), , , HDR tone mapping.

, , , .

Splinter Cell: Chaos Theory , (, Double Agent ). , , ATI RADEON X1800 GTO, NVIDIA GeForce 7600 GT GeForce 6800 GT. FPS 45-50 1024x768 HDR . , , .

, , , , , , . Unreal , , Chaos Theory , "Timedemo.bat", "System" . "TimeDemoResult.xls". , FPS. 40-50 FPS, 60 FPS, — 25-30 FPS. FPS 50-60, , , 40, . , , , .

, 1024x768 640x480, . , — , , . , , , , , .

, . «Settings-Display». : , .

Settings — Display

  • Brightness ( 0 100) Contrast ( 0 100) — , , .

  • Display Resolution (640x480, 800x600, 1024x768, 1088x612, 1280x720, 1280x768, 1280x800, 1280x960, 1280x1024, 1600x900, 1600x1200, 1920x1080, 1920x1200, 1920x1440, 2048x1536) — . 1.02 , , LCD 1280x1024. , , .

    , 640x480 1024x768 GeForce 7800 GTX 32% 0% — , 1024x768 1600x1200 — 86% 34% . 1600x1200 , 1024x768, , (), ROP, , .

— "Advanced". . , 40 FPS. , : «Display Resolution», «Shader Model Type», «Antialiasing», «Anisotropic Filtering», «Shadow Resolution», «Specular Lighting» «HDR Rendering». .

Settings — Display — Advanced

Settings — Display — Advanced

  • Shader Model Type (Shader Model 1.1/Shader Model 3.0) — 3D . — 1.1 3.0, ATI R[V]3x0 ATI R[V]4x0, 2.0, .

    , , SM 3.0 HDR tone mapping, parallax mapping . , , SM 1.1 , 3.0, , .

    . , SM 3.0 , "Shader Options", 3.0 , . , ( HDR , , ) . parallax mapping SM 3.0 , .

       

    . NVIDIA GeForce 7800 GTX 20% 1024x768 0% — . , , . low-end SM 1.1 . , SM 3.0, , — NVIDIA GeForce 8800 HDR , .

  • Antialiasing (Disabled/2x/4x) — , , "Shader Model 3.0" "Shader Options" HDR . , , 2 4 .

    , , HDR 4x 18%. . , , , , , low-end . , , HDR NVIDIA GeForce 6 .

  • Anisotropic Filtering (Disabled/Anisotropic 2x/4x/8x/16x) — . , . 2x 16x. , , :

       

    , , , . , 1%, 5%. , , 16x, . , , .

  • Shadow Resolution (Low/Medium/High) — , . , , , 3.0, .

       

    , (. ) , . .

    , , . , ROP . 1024x768 10% : "Low" "High". , "High", .

  • Trilinear Filtering (Off/On) — , — ( , "" - ). , .

    , Chaos Theory , . NVIDIA , . 1024x768 4%, — 0%. , , , . 4% , - .

  • Specular Lighting (Off/On) — . specular , — , . :

       

    , . specular, , . FPS specular , 10% ( , - ), — 15%. , .

  • High Quality Textures (Off/On) — . : . . , , , :

       

    , , "High Quality Textures" . Off On , HDR 2%, . , , , 128 / (GeForce FX 5200 - ).

  • Vertical Sync (Off/On) — . VSync . , 60 , , 60 FPS. VSync ("tearing"), , , , . , (FPS) 30 FPS 60 FPS.

  • Hardware Shadow Mapping (Off/On) — , . , , . , .

    GeForce 7800 GTX 5-7%, , , "Hardware Shadow Mapping" , - .

Shader Options

Shader Model 3.0 , "Shader Options". , .

Shader options

  • HDR Rendering (Off/On) — , HDR — , 16- . , HDR . , HDR LDR . , :

       

    , HDR , . HDR . , HDR . , HDR , , 20%. HDR — 4-5%. , .

  • Tone Mapping (Off/On) — , tone mapping HDR 16- . tone mapping , , . , , tone mapping, .

       

  • Parallax Mapping (Off/On) — parallax mapping, Splinter Cell: Chaos Theory. , parallax mapping , . , , , .

       

    , , . , , , . , , . Off On 3-4%, . , ? …

  • High Quality Soft Shadows (Off/On) — , SM 3.0 , (shadow maps). , . :

       

    , , . , , , , , .

    , . , 3-4% , . , ( GeForce 7800 GTX), .

, 1024x768 HDR ( , FP16 ) 16x, 3D 70-80 FPS, 35. — .

Splinter Cell: Chaos Theory Unreal Engine, . , UE . Chaos Theory SplinterCell3.ini, \Documents and Settings\All Users\Application Data\Ubisoft\Tom Clancy's Splinter Cell Chaos Theory

, (ShadowQuality, ShaderModel, Anisotropy, AntiAliasing, Trilinear, Specular, ParallaxMapping, HQSoftShadows, HDR, HiResTextures, ToneMapping) [WinDrv.WindowsClient] :

  • FullscreenViewportX ( ) FullscreenViewportY ( ) — , . , .


  • TextureDetail (Low/Medium/High) SkinDetail (Low/Medium/High) — , , "High Quality Textures", , . , High , 64 .

    , "Low", 7% . .

[D3DDrv.D3DRenderDevice]:

  • UseTripleBuffering (False/True) — , . . , Chaos Theory , .


  • UseHWShadowMapping (False/True) — , . .