Товарищи, нанометровая революция, о необходимости которой еще в 1965 г. твердил господин Мур, свершилась! Вслед за процессорными гигантами Intel и AMD нанометровую границу (100 нм) успешно преодолели все основные производители видеокристаллов — ATI, S3 Graphics и nVidia. И теперь уже можно говорить, что возврата в прошлое не будет, а новый рубеж 90 нм подарит всем пользователям очередные рекорды производительности, которые мы и постараемся сегодня зафиксировать в самых актуальных игровых приложениях.

Итак, встречайте — две ультрасовременные платы nVidia GeForce 7900GTX и ATI Radeon X1900XTX. Сделаны по технологическому процессу 90 нм и стоят сумасшедших денег. Так давайте протестируем их не только в «тепличных» условиях без высоких режимов анизотропной фильтрации и антиалиасинга, как мы проверяли месяц назад недорогие акселераторы, а с использованием различных сочетаний восьмикратной фильтрации и четырехкратного сглаживания. Если же последние предложения покажутся вам загадочными, позвольте вначале провести маленький ликбез на тему «Что такое анизотропная фильтрация и зачем нужен антиалиасинг».

Что такое AA и AF

Современные методы визуализации в играх отображают трехмерные сцены на 2D-экране монитора и на первый взгляд делают это так хорошо, что неискушенному пользователю не нужны ни анизотропная фильтрация, ни антиалиасинг. Но давайте представим себе главного героя 3D-игры от первого лица, скажем прораба, который проверяет на глаз под острым углом ровность кирпичной кладки, которую только что положили залетные «гастарбайтеры».

Нет, нас не будут интересовать качество строительных работ и проблемы легализации иностранной рабочей силы в России, мы лишь попробуем взглянуть под углом на аналог Великой стены в виртуальном мире. Программа отобразит длинный прямоугольник с перспективой, на которую натянет кирпичную текстуру. А поскольку этот прямоугольник на 2D-экране будет у мнимого горизонта стремиться превратиться в треугольник, то для четкости изображения кирпичной кладки потребуются кирпичные текстуры с разными разрешениями (MIP-текстурирование — метод уменьшения объема вычислений, необходимых для точного наложения текстурного изображения на полигон), ведь на переднем плане кирпичи выглядят крупнее, а чем дальше — тем они мельче.

Но в любом случае придирчивый пользователь сможет заметить на представленной стене и размытости текстур, и видимые границы между MIP-уровнями, и другие недостатки. Так вот, чтобы избавиться от подобных артефактов на поверхностях под углами к камере (стены, потолки, дорожки, удаленные плоскости и т.д.), в играх применяются разные типы фильтраций: билинейная (bilinear filtering), трилинейная (trilinear filtering) и анизотропная (anisotropic filtering).

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

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

Заметить работу функции анизотропной фильтрации можно на фрагментах экранных снимков из игры Serious Sam 2. Для начала обратите внимание на нижние грани усеченной пирамиды на переднем плане. С отключенной фильтрацией хорошо видно сильное размытие текстуры на плоскостях, которые отображаются к нам под углом. Теперь взгляните на картинку в целом: столб, дорожка, кустарник, пальма, дом... Только с анизотропной фильтрацией мы видим четкие текстуры и качественное отображение даже самых мелких деталей.

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

Разумеется, чем выше физическое разрешение экрана, тем корректнее отображаются наклонные прямые и, как следствие, проявление алиасинга заметно меньше. Хотя эффективно бороться с паразитным эффектом можно и в самых скромных разрешениях с помощью плавных цветовых переходов и технологии антиалиасинга (antialiasing — сглаживание).

Различаются два вида антиалиасинга (AA): суперсэмплинг (supersampling) и мультисэмплинг (multisampling). При использовании режима суперсэмплинг сначала происходит рендеринг игровой сцены в более высоком разрешении, а затем получившаяся картинка масштабируется в рабочее разрешение. Однако подобный метод антиалиасинга хотя и позволяет получить качественное отображение игры на экране монитора, но влечет за собой резкое падение производительности.

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

Примеры работы разных режимов AA и AF

Возвращаясь к нашему обзору, отметим, что наиболее разумной связкой режимов антиалиасинга (AA) и анизотропной фильтрации (AF) для корректного тестирования высокопроизводительных акселераторов является комбинация четырехкратного AA и восьмикратной AF (AF:08, AA:04), поскольку в более «тяжелых» вариантах использования AA и AF на первый план в результатах тестов выходит вопрос об актуальности компромиссов между субъективным ощущением улучшения качества изображения и резким уменьшением количества кадров в секунду. Да и тут способы реализации алгоритмов анизотропной фильтрации и сглаживания в платах ATI и nVidia сильно различаются.

nVidia GeForce 7900GTX (Palit 7900GTX)

nVidia GeForce 7900GTX (Palit 7900GTX)

В основе графического акселератора nVidia GeForce 7900GTX лежит новый кристалл G71, который базируется на архитектуре процессора G70 (восемь вершинных и 24 пиксельных конвейера, по одному текстурному блоку на каждом) с хорошо оптимизированной схемой расположения транзисторов. Кроме того, в производстве микросхемы G71 используется техпроцесс 90 нм, что позволяет снизить энергопотребление микрокристалла и при этом увеличить рабочую частоту ядра в полтора раза по сравнению с процессором G70.

Сама плата GeForce 7900GTX по внешнему виду системы охлаждения и дизайну PCB аналогична инженерным образцам GeForce 7800GTX с объемом памяти 512 Мбайт. А это наталкивает на мысль о «домашней заготовке» оригинального охладителя, который начали использовать раньше времени на прежних платах nVidia GeForce 7800GTX 512Mb. Однако, несмотря на близкое родство ускорителей GeForce 7800 и GeForce 7900, новичок показал рекорды производительности во многих игровых приложениях, но об этом немного позже.

ATI Radeon X1900XTX (ASUS EAX1900XTX/2DHTV)

ATI Radeon X1900XTX (ASUS EAX1900XTX/2DHTV)

В последнее время финансовые вложения в покупку высокопроизводительных плат ATI принимают рискованный характер и можно только посочувствовать владельцам адаптеров Radeon X1800XT, ведь всего через три месяца после анонса графического процессора R520 на рынке появилось более производительное решение R580 от ATI за меньшие деньги. Хотя по дизайну, который у многих вызывает ассоциации с карманной СВЧ-печью, новая плата Radeon X1900XTX и прежний акселератор Radeon X1800XT похожи как две капли воды. Но, по заявлениям PR-менеджеров, разница становится очевидной по результатам тестов, ведь в новинке 48 пиксельных конвейеров вместо 16.

И действительно, в ГП Radeon X1800XT было всего четыре квада (квад состоит из четырех пиксельных процессоров), которые обрабатывали за такт 16 пикселов, а теперь количество вычислительных блоков увеличилось до 12. Но при этом число текстурных блоков осталось прежним — те самые четыре квада (другими словами, получается по три пиксельных процессора на один текстурный блок). И значит, микросхема R580 по-прежнему выбирает только 16 текстур за такт, а потенциал платы Radeon X1900XTX проявляется лишь в специальных игровых приложениях, где вместо текстурных операций активно используются пиксельные вычисления.

Напомним, что в первых 3D-играх (например, Quake) на одну математическую операцию приходилось три выборки текстур и вся визуализация игровой картинки выполнялась за счет наложения множества текстур. В современных играх уже на одну операцию выборки текстур приходится несколько математических операций, и, например, в игре F.E.A.R. такое соотношение достигает пропорции один к семи.

Разумеется, эта тенденция справедлива, ведь актуальные игры активно используют пиксельные вычисления для потрясающих эффектов освещения и объемности (например, игра Call of Duty 2). Так что рост числа пиксельных блоков на фоне количественного застоя в пиксельных «текстурниках» и вершинных конвейерах теоретически оправдан. Но как это выглядит на практике?

Что показали тесты

Для начала анализа результатов тестирования отметим, что рост количества пиксельных блоков в плате ATI Radeon X1900XTX привел к увеличению числа интегрированных транзисторов в кристалле до 380 млн. Как следствие, мы видим очень высокое энергопотребление тестового стенда в игровых приложениях, которое на 60 Вт превышает аналогичные показатели стенда на базе платы nVidia.

Теперь обратим внимание на результаты производительности в синтетических тестах. В игровых сценариях 3DMark03 уверенно лидировала плата GeForce 7900GTX, а вот в тесте 3DMark06 соперничество конкурентов оставило двойственное впечатление. Ведь в категории «кадры в секунду» плата nVidia тоже была в лидерах, но в технологическом плане она проигрывала инженерному образцу ATI, поскольку не поддерживала одновременную работу технологий HDR (High Dynamic Range) и AA (antialiasing).

В результате при включенном сглаживании мы не смогли оценить производительность GeForce в тестах 3DMark06 Canyon Flight и 3DMark06 Deep Freeze. Хотя справедливости ради заметим, что плата Radeon X1900XTX аналогично пропустила тестовый сценарий 3DMark06 Shader Particles (SM3.0), поскольку в платах ATI не реализованы возможности вершинного текстурирования.

Но перейдем к результатам тестов в игровых приложениях, для которых технологии High Dynamic Range и Vertex Texture Fetch не использовались или были отключены. Здесь мы видим тотальный проигрыш графического акселератора ATI Radeon X1900XTX в OpenGL-играх The Chronicles of Riddick, DOOM 3 и Serious Sam 2. Причем решение ATI сильно отстает от конкурента не только во всех экранных разрешениях, но и в любых комбинациях с включенными функциями анизотропной фильтрации и сглаживания.

Интересную ситуацию мы наблюдаем и в игре F.E.A.R., где на одну операцию выборки текстур приходится семь математических вычислений. Видеоплата Radeon X1900XTX уступает альтернативному решению nVidia во всех случаях, кроме режима 1600Ё1200 точек с AF:08 и AA:04. Конечно, мы не беремся что-либо утверждать, но мысли о программных оптимизациях в драйверах Catalyst возникают.

В игре Far Cry ситуация несколько иная. Здесь плата ATI проигрывает акселератору nVidia GeForce 7900GTX только в тестах с отключенной анизотропной фильтрацией и сглаживанием, в других случаях на высоте оказывается Radeon X1900XTX.

И наконец, в Call of Duty 2 графическая плата ATI безоговорочно бьет конкурента во всех разрешениях и режимах. Но, по большому счету, эта игра оказалась не по зубам обоим образцам при разрешении 1600Ё1200 точек, поскольку к комфортному рубежу для игр в 60 кадр/с обе видеоплаты приблизиться так и не смогли.

Разумеется, указанный потенциал игры Call of Duty 2 окажется полезен при тестировании технологий nVidia Quad-SLI, nVidia SLI и ATI CrossFire, но это уже совершенно иная статья о видеорешениях абсолютно другой ценовой категории. А в «одиночных» тестах плат nVidia и ATI лидер выявлен — это nVidia GeForce 7900GTX. Возникает только один традиционный и логичный вопрос: надолго ли?

Редакция благодарит компании Erimex (www.erimex.ru), Palit (www.palit.ru), ASUSTeK (www.asus.com.ru) и A-Data (www.adata.com.tw) за предоставленное для тестирования оборудование.


Как тестировать графический акселератор в игре Serious Sam 2

В отличие от игры Call of Duty 2 в проекте Serious Sam 2 метод тестирования не только абсолютно прозрачен, но и отличается уникальной поддержкой как DirectX, так и OpenGL. Хотя если посмотреть на два снимка экрана игры с DirectX и с OpenGL, то последний вариант кажется более качественным. Но давайте по порядку...

Во-первых, загружаем бесплатную версию игры Serious Sam 2 по соответствующей ссылке на сайте www.croteam.com, да не забываем, что дальнейшее повествование не теряет актуальности и для платной версии приложения. Во-вторых, после установки и запуска игры записываем эталонную «демку», для чего используем кнопку F7 для старта и F8 для остановки записи. Кстати, в платном варианте игры Serious Sam 2 уже имеются три демонстрационных сценария, и делать здесь четвертый векторный ролик нет необходимости...

И в-третьих, прямо в основном меню программы после установки и запуска игры открываем клавишей <~> консольный режим и набираем команду bmk_bBenchmarkDemos=1. И все. Теперь в разделе Play Demos проигрываем записанную «демку» и смотрим по ее окончании усредненное значение производительности (кадр/с) в консольном поле. Кроме того, важно знать, что консольные строки с результатами проигрывания «демки» Serious Sam 2 по умолчанию всегда отображаются в файле Serious Sam 2Sam2.log.

Но вернемся к изюминке тестов в этой игре, для чего в папке Serious Sam 2ContentSeriousSam2 найдем файл Sam2.ini и изменим в нем значение параметра gfx_iAPI на 1. Кстати, в этом же файле можно активировать переменную prf_bShowFPS и изучать «живые» кадры в секунду прямо на экране в процессе тестирования. Но в любом случае теперь приложение Serious Sam 2 работает под OpenGL и в этом режиме демонстрирует большую производительность, чем в Direct3D.

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


Полный вариант статьи см. на «Мир ПК-диске».


Результаты тестирования в реальных играх, кадр/с, при разрешении, точки
Сравнительные характеристики видеоадаптеров PCI Express