Обзор NVIDIA GeForce3 — часть 3

Результаты тестирования в игровых приложениях


Quake3 Arena, OpenGL

Для тестирования мы использовали версию 1.17 игры Quake3 Arena от id Software с использованием двух бенчмарков: demo002 и quaver.

Производительность при максимальном качестве графики и анизотропная фильтрация

Я не случайно привел скриншот из registry. Обратите внимание на переменную, выделенную красным цветом — DefaultLogAniso. Именно через нее и можно включить анизотропную фильтрацию в OpenGL. К сожалению, сырость новых драйверов сказывается на удобстве настройки такой важной функции, как анизотропная фильтрация. Включить ее привычным способом через настройки дисплея в данном случае не получится. После тщательных исследований была найдена формула получения "степени" анизотропной фильтрации, то есть число используемых текстурных сэмплов:

AF=2^(DefaultLogAniso+2)

Таким образом, анизотропная фильтрация на GeForce3 может образовываться 8-ю, 16-ю или 32-мя сэмплами. В Сети гуляла информация о возможности 64-сэмпловой анизотропии, однако это практически невероятно. Два объединенных TMU могут выбирать до 8 сэмплов за такт, то есть за 2 такта можно осуществить 16-сэмпловую анизотропию, а за 4 такта — 32-сэмпловую (точно также на ATI RADEON можно наблюдать максимальную выборку в 24 сэмпла, учитывая наличие 3-х TMU на каждом конвейере).

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

Подчеркну, что все тесты проводились при максимально возможном качестве (уровень детализации геометрии — High, детализация текстур №4, трилинейная фильтрация включена):



Всем хорошо видно, как приходиться жертвовать скоростью для достижения лучшего качества. Возникает вопрос: "А оно того стоит?"

Давайте посмотрим:

Анизотропная фильтрация по 8-ми текстурным сэмплам

    

Анизотропная фильтрация по 16-ти текстурным сэмплам

    

Анизотропная фильтрация по 32-м текстурным сэмплам

    

Я думаю, что последний скриншот наглядно показывает, какого великолепного качества и четкости можно добиться на GeForce3, правда, отдав за это около 30 fps производительности в 1024х768х32. Тут уж каждому придется выбирать самостоятельно. Кстати, о потерях производительности. Давайте посмотрим на картину в целом:



Да, действительно, цена за красоту и качество довольно велика. Но повторю, что каждый волен выбрать компромиссное решение между наилучшим качеством и великолепной производительностью, GeForce3 предоставляет в полной мере и то и другое (в отличие от GeForce2 Ultra — ориентированной скорее на скорость и Radeon — ориентированного более на качество).

Теперь рассмотрим производительность GeForce3 без анизотропной фильтрации при максимально возможном качестве. Надо обратить внимание на то, что в 16-битном цвете GeForce3 почти не получает преимущества, здесь наблюдается проигрыш более скоростному сопернику в лице GeForce2 Ultra. Зато в 32-битном цвете мы видим прямо противоположную, отрадную картину. Посмотрите, насколько сильно обогнала карта на GeForce3 оппонента! И при этом частота графического ядра ниже, чем у GeForce2 Ultra.

Налицо действие новых технологий кэширования и наглядная демонстрация сбалансированной архитектуры - то, о чем мы говорили выше, при представлении нового графического процессора — GeForce3. Теперь мы имеем возможность играть в разрешении 1280х1024@32bpp при максимальном качестве, совершенно забыв про то, что когда-то 3D-акселераторы постоянно подтормаживали там, где нам хотелось бы наблюдать всю красоту трехмерной графики. Более того, даже в режиме 1600х1200@32 карты на GeForce3 обеспечивают прекрасный уровень играбельности в играх типа Single Play (я сам с удовольствием поиграл в Giants в таком разрешении).

В игре Quake3 есть один уровень, который стал весьма любимым для многих тестеров. Это Q3DM9, в котором используется много текстур большого размера, общий объем которых, как правило, превышает 32 мегабайта даже в низких разрешениях. Когда-то был изготовлен демо-бенчмарк QUAVER, при помощи которого многие измеряли и измеряют производительность графических акселераторов в "тяжелых" условиях при сильной нагрузке. Когда мы исследовали карты на базе GeForce2 Ultra, то этот бенчмарк был нам хорошим помощником. Посмотрим, как поведет себя в этом тесте GeForce3:



Видно, что картина полностью повторяется с 16-битным цветом, а при 32-битном цвете вновь наблюдаем первенство GeForce3. Теперь оценим в целом величину падения производительности при переходе с 16- на 32-битный цвет:

У GeForce3 просто блестящие результаты, не правда ли? Конечно, скептики сразу же возразят, что, мол, за счет более низкой скорости в 16-битном цвете и получилась такая небольшая разница в производительности. А нужно ли вообще использовать 16-битный цвет с картами на базе GeForce3? Может быть, пора вообще забыть о нем, как о тяжелом сне? Видеокарты класса GeForce3 (да и GeForce2 Ultra) могут обеспечить отличные результаты и в "труколоре". Если же у вас монитор не поддерживает высокие разрешения (вроде 1600х1200), то мы советуем вам обратить внимание на такую вещь, как анти-алиасинг.

Общая производительность и анти-алиасинг

В драйверах версии 10.50 настройка эффекта сглаживания (анти-алиасинг, АА) вынесена в отдельную закладку, объединяя в одном месте регулировки АА для Direct3D и OpenGL приложений. Возможности настроек для обоих API полностью идентичны. Напомню, что NVIDIA GeForce3 использует новый метод мультисэмплинга для реализации АА, о котором было рассказано выше. Мы можем использовать следующие режимы АА:

  • MSAA 1x2
  • Quincunx (метод, запатентованный NVIDIA)
  • MSAA 2x2
  • MSAA 2x2tap9

С каждым из способов читатель уже познакомился выше (в теоретическом смысле), мы же покажем, что все это дает на практике:





Прежде всего, надо отметить, что в этой части обзора тестирование при 16-битном цвете проводилось в режиме Fast, а при 32-битном цвете использовался режим High Quality.

Рассмотрим производительность NVIDIA GeForce3 при отключенном АА. В 16-битном цвете какие-либо отличия от GeForce2 Ultra отсутствуют, а вот 32-битный цвет показал всю силу нового графического процессора. Мы уже говорили об оптимизациях в этом GPU, которые дают возможность 200-мегагерцовому графическому ядру GeForce3 легко обходить 250-мегагерцовый GeForce2 Ultra, имея при этом эквивалентное количество конвейеров рендеринга и текстурных модулей.

Теперь бросим взгляд на качество, которое может нам дать использование того или иного режима АА:

Анти-алиасинг 1х2

    

Анти-алиасинг Quincunx

    

Анти-алиасинг 2х2

    

Посмотрите внимательно и убедитесь, что новый режим АА — Quincunx обеспечивает превосходное качество картинки. Теперь взглянем на диаграммы выше. Если на GeForce2 Ultra мы можем получить примерно аналогичное качество только в режимах FSAA 2x2 и выше, потеряв при этом колоссальную долю производительности (например, в 1024х768х32 мы получим скорость всего около 33 fps), то на GeForce3 режим Quincunx дает нам 71 fps в том же разрешении. При этом качество АА в большинстве случаев выше! Полагаю, что будущим владельцам GeForce3 будет весьма приятно иметь широкий выбор режимов работы карты: можно использовать высокое разрешение 1600х1200 или низкое разрешение в паре с АА.

Однако вернемся к общей оценке влияния АА на производительность:



Мы помним, что по качеству анти-алиасинг у GeForce3 в режиме Quincunx (розовый столбец) примерно соответствует и даже превосходит режим 2х2 SSAA у GeForce2 Ultra (синий столбец на диаграмме). Даже в относительных единицах видно, что SSAA проигрывает везде. Конечно, MSAA далеко не бесплатный, как обещалось в рекламных материалах, однако при мощи GeForce3 он дает отличные результаты по производительности.

Производительность при разгоне

Как следует из описаний рассматриваемых в данном обзоре акселераторов, самой разгоняемой оказалась карта ASUS AGP-V8200 Deluxe, она-то и представлена на диаграмме выше. Обратите внимание на то, что даже самый максимальный разгон GeForce2 Ultra не смог поднять производительность этой карты до уровня GeForce3. Прирост производительности от разгона GeForce3 не стал весьма существенным ввиду незначительной разгоняемости самого GPU. Более подробно вопросы разгона и влияния частот работы памяти и графического ядра по отдельности мы рассмотрим несколько позже в отдельном материале. Сейчас я хочу лишь отметить, что по итогам проведенных исследований разгона можно сделать вывод о переносе центра "тяжести" производительности с частоты работы памяти на частоту графического процессора. Плата на GeForce3 уже намного более сбалансирована, и дальнейший рост производительности уже упирается не в пропускную способность видеопамяти, а в скорость работы самого графического процессора. Зато какие возможности по выпуску без особых усилий модификаций GeForce3 с приставкой Pro или Ultra :-)

Болевая точка — S3TC…

Многие владельцы видеокарт на базе GeForce/GeForce2 знают, что при включении S3TC в OpenGL в 32-битном цвете наблюдается очень неприятная картина, о которой я рассказывал уже в 3DGiТогах:

    

Проблема низкого качества сжатых текстур на у карт на базе GeForce/GeForce2 связана с неприятной особенностью аппаратной распаковки текстур, упакованных в формате DXT1. При распаковке таких текстур чип оперирует с 16-битным текселем. Такая реализация декомпрессии приводит к бандингу при распаковке текстур, которые содержат плавные цветовые градиенты (именно этот эффект мы и наблюдаем на текстурах неба в Quake3 на скриншоте выше). К огромному сожалению, эта проблема досталась в наследство и GeForce3. Однако не все так плохо. Если посмотреть по тексту этой статьи немного выше, то при рассмотрении анизотропии приводился скриншот из Registry, где можно увидеть переменную S3TCQuality, обведенную синим цветом. По умолчанию она равна 0, а если ей присвоить 1, то картина довольно сильно меняется:

    

Ключ S3TCQuality влияет на динамическую упаковку текстур. Установка этого ключа в значение 1 приводит к тому, что OpenGL драйвер начинает упаковывать текстуры в формат DXT3 вместо формата DXT1. При этом наблюдается небольшая потеря в скорости. Общее влияние использования S3TC на производительность мы покажем на диаграмме ниже (16-битный цвет не привожу, так как, во-первых, эта глубина цвета для GeForce3 уже не актуальна, а во-вторых, включение S3TC в этом случае дает крайне незначительный прирост в скорости):

Выводы очевидны и комментариев не требуют, хотя я лично не включал бы S3TC без надобности (дивидендов это приносит мало, если только не играть на специальных уровнях от Diamond). Вопросы использования S3TC в OpenGL в целом на ряде акселераторов мы подробно рассматриваем в 3DGiТогах, где читатели смогут с ними ознакомиться.

3DMark 2000 Pro, DirectX

Для тестирования мы использовали версию 1.1 популярного бенчмарка 3DMark 2000 Pro от MadOnion с использованием двух тестов: Game1 и Game2. Оба теста прогонялись при максимальном уровне детализации (High Details).

Производительность и анизотропная фильтрация

Вначале рассмотрим скоростные показатели GeForce3 в Direct3D. Если в OpenGL уже давно имеется такой универсальный и популярный бенчмарк, как Quake3, а также есть игры на этом движке, где имеется возможность измерения средней производительности (FAKK2, например), то в Direct3D в этом плане совсем все плохо. Есть 2.5-летней давности Expendable, который не выдерживает уже никакой критики с точки зрения нагрузки акселераторов новыми функциями и эффектами, да и все… В 3DGiТогах мы еще используем Unreal в Direct3D, который на высоких разрешениях хоть как-то отражает возможности ускорителей, однако сырость драйверов версии 10.50 сделала невозможность использования этого бенчмарка из-за отсутствия в Unreal какого-либо текста. Нет, он есть, конечно, но его не видно, в т.ч. и timedemo. Поэтому пришлось обратиться к синтетическим тестам. В принципе, игровые тесты из 3DMark 2000 довольно реально отражают ситуацию по нагрузке акселератора. Особенно если это режим High Details. Именно в нем мы и проводили тестирование:



Видно, что в 16-битном цвете GeForce3 незначительно опережает GeForce2 Ultra, а вот в 32-битном цвете это преимущество становится очевидным и осязаемым.

Отмечу, что наконец-то в драйверах от NVIDIA появилась возможность форсирования (принудительного включения) анизотропной фильтрации в Direct3D. До сего момента только само приложение могло управлять этой фильтрацией, однако игр с поддержкой анизотропии практически нет. Теперь, внеся изменение в Registry, создав переменную FORCEANISOTROPICLEVEL (выделено зеленым) и дав ей значение 2, мы получаем в Direct3D анизотропную фильтрацию, правда, пока лишь самого минимального уровня — на основе выборки из 8-ми сэмплов:

Что же мы при этом получаем?

Анизотропная фильтрация отсутствует, FORCEANISOTROPICLEVEL=0

    

Анизотропная фильтрация присутствует, FORCEANISOTROPICLEVEL=2

    

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



Интересно отметить, что на GeForce2 Ultra в 16-битном цвете включение анизотропии минимальным образом снижает производительность. Впрочем, интересно оценить влияние использования анизотропной фильтрации на производительность в целом:



Из приведенных диаграмм видно, что величина падения скорости у GeForce3 при активизации анизотропии намного выше, чем у GeForce2 Ultra. Этот момент пока несколько непонятен. Возможно, что одно и то же значение переменной FORCEANISOTROPICLEVEL по-разному влияет на истинную "степень" анизотропной фильтрации на различных акселераторах, хотя я особых отличий визуального плана не усмотрел.

На тех же диаграммах можно увидеть и величину падения производительности при переходе с 16- на 32-битный цвет. И опять мы констатируем, что разница в производительности при переходе у GeForce3 очень мала по сравнению с тем, насколько падает производительность у GeForce2 Ultra.

Есть еще один весьма хороший пример, где наглядно видно, что дает включение анизотропной фильтрации, это демо NV Gothic:

Анизотропная фильтрация отсутствует, FORCEANISOTROPICLEVEL=0

    

Анизотропная фильтрация присутствует, FORCEANISOTROPICLEVEL=2

    

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





Дополнительно

Обзор GPU NVIDIA GeForce3 и карт на его базе - часть 3

Обзор NVIDIA GeForce3 — часть 3

Результаты тестирования в игровых приложениях

Quake3 Arena, OpenGL

Для тестирования мы использовали версию 1.17 игры Quake3 Arena от id Software с использованием двух бенчмарков: demo002 и quaver.

Производительность при максимальном качестве графики и анизотропная фильтрация

Я не случайно привел скриншот из registry. Обратите внимание на переменную, выделенную красным цветом — DefaultLogAniso. Именно через нее и можно включить анизотропную фильтрацию в OpenGL. К сожалению, сырость новых драйверов сказывается на удобстве настройки такой важной функции, как анизотропная фильтрация. Включить ее привычным способом через настройки дисплея в данном случае не получится. После тщательных исследований была найдена формула получения "степени" анизотропной фильтрации, то есть число используемых текстурных сэмплов:

AF=2^(DefaultLogAniso+2)

Таким образом, анизотропная фильтрация на GeForce3 может образовываться 8-ю, 16-ю или 32-мя сэмплами. В Сети гуляла информация о возможности 64-сэмпловой анизотропии, однако это практически невероятно. Два объединенных TMU могут выбирать до 8 сэмплов за такт, то есть за 2 такта можно осуществить 16-сэмпловую анизотропию, а за 4 такта — 32-сэмпловую (точно также на ATI RADEON можно наблюдать максимальную выборку в 24 сэмпла, учитывая наличие 3-х TMU на каждом конвейере).

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

Подчеркну, что все тесты проводились при максимально возможном качестве (уровень детализации геометрии — High, детализация текстур №4, трилинейная фильтрация включена):



Всем хорошо видно, как приходиться жертвовать скоростью для достижения лучшего качества. Возникает вопрос: "А оно того стоит?"

Давайте посмотрим:

Анизотропная фильтрация по 8-ми текстурным сэмплам

    

Анизотропная фильтрация по 16-ти текстурным сэмплам

    

Анизотропная фильтрация по 32-м текстурным сэмплам

    

Я думаю, что последний скриншот наглядно показывает, какого великолепного качества и четкости можно добиться на GeForce3, правда, отдав за это около 30 fps производительности в 1024х768х32. Тут уж каждому придется выбирать самостоятельно. Кстати, о потерях производительности. Давайте посмотрим на картину в целом:



Да, действительно, цена за красоту и качество довольно велика. Но повторю, что каждый волен выбрать компромиссное решение между наилучшим качеством и великолепной производительностью, GeForce3 предоставляет в полной мере и то и другое (в отличие от GeForce2 Ultra — ориентированной скорее на скорость и Radeon — ориентированного более на качество).

Теперь рассмотрим производительность GeForce3 без анизотропной фильтрации при максимально возможном качестве. Надо обратить внимание на то, что в 16-битном цвете GeForce3 почти не получает преимущества, здесь наблюдается проигрыш более скоростному сопернику в лице GeForce2 Ultra. Зато в 32-битном цвете мы видим прямо противоположную, отрадную картину. Посмотрите, насколько сильно обогнала карта на GeForce3 оппонента! И при этом частота графического ядра ниже, чем у GeForce2 Ultra.

Налицо действие новых технологий кэширования и наглядная демонстрация сбалансированной архитектуры - то, о чем мы говорили выше, при представлении нового графического процессора — GeForce3. Теперь мы имеем возможность играть в разрешении 1280х1024@32bpp при максимальном качестве, совершенно забыв про то, что когда-то 3D-акселераторы постоянно подтормаживали там, где нам хотелось бы наблюдать всю красоту трехмерной графики. Более того, даже в режиме 1600х1200@32 карты на GeForce3 обеспечивают прекрасный уровень играбельности в играх типа Single Play (я сам с удовольствием поиграл в Giants в таком разрешении).

В игре Quake3 есть один уровень, который стал весьма любимым для многих тестеров. Это Q3DM9, в котором используется много текстур большого размера, общий объем которых, как правило, превышает 32 мегабайта даже в низких разрешениях. Когда-то был изготовлен демо-бенчмарк QUAVER, при помощи которого многие измеряли и измеряют производительность графических акселераторов в "тяжелых" условиях при сильной нагрузке. Когда мы исследовали карты на базе GeForce2 Ultra, то этот бенчмарк был нам хорошим помощником. Посмотрим, как поведет себя в этом тесте GeForce3:



Видно, что картина полностью повторяется с 16-битным цветом, а при 32-битном цвете вновь наблюдаем первенство GeForce3. Теперь оценим в целом величину падения производительности при переходе с 16- на 32-битный цвет:

У GeForce3 просто блестящие результаты, не правда ли? Конечно, скептики сразу же возразят, что, мол, за счет более низкой скорости в 16-битном цвете и получилась такая небольшая разница в производительности. А нужно ли вообще использовать 16-битный цвет с картами на базе GeForce3? Может быть, пора вообще забыть о нем, как о тяжелом сне? Видеокарты класса GeForce3 (да и GeForce2 Ultra) могут обеспечить отличные результаты и в "труколоре". Если же у вас монитор не поддерживает высокие разрешения (вроде 1600х1200), то мы советуем вам обратить внимание на такую вещь, как анти-алиасинг.

Общая производительность и анти-алиасинг

В драйверах версии 10.50 настройка эффекта сглаживания (анти-алиасинг, АА) вынесена в отдельную закладку, объединяя в одном месте регулировки АА для Direct3D и OpenGL приложений. Возможности настроек для обоих API полностью идентичны. Напомню, что NVIDIA GeForce3 использует новый метод мультисэмплинга для реализации АА, о котором было рассказано выше. Мы можем использовать следующие режимы АА:

  • MSAA 1x2
  • Quincunx (метод, запатентованный NVIDIA)
  • MSAA 2x2
  • MSAA 2x2tap9

С каждым из способов читатель уже познакомился выше (в теоретическом смысле), мы же покажем, что все это дает на практике:





Прежде всего, надо отметить, что в этой части обзора тестирование при 16-битном цвете проводилось в режиме Fast, а при 32-битном цвете использовался режим High Quality.

Рассмотрим производительность NVIDIA GeForce3 при отключенном АА. В 16-битном цвете какие-либо отличия от GeForce2 Ultra отсутствуют, а вот 32-битный цвет показал всю силу нового графического процессора. Мы уже говорили об оптимизациях в этом GPU, которые дают возможность 200-мегагерцовому графическому ядру GeForce3 легко обходить 250-мегагерцовый GeForce2 Ultra, имея при этом эквивалентное количество конвейеров рендеринга и текстурных модулей.

Теперь бросим взгляд на качество, которое может нам дать использование того или иного режима АА:

Анти-алиасинг 1х2

    

Анти-алиасинг Quincunx

    

Анти-алиасинг 2х2

    

Посмотрите внимательно и убедитесь, что новый режим АА — Quincunx обеспечивает превосходное качество картинки. Теперь взглянем на диаграммы выше. Если на GeForce2 Ultra мы можем получить примерно аналогичное качество только в режимах FSAA 2x2 и выше, потеряв при этом колоссальную долю производительности (например, в 1024х768х32 мы получим скорость всего около 33 fps), то на GeForce3 режим Quincunx дает нам 71 fps в том же разрешении. При этом качество АА в большинстве случаев выше! Полагаю, что будущим владельцам GeForce3 будет весьма приятно иметь широкий выбор режимов работы карты: можно использовать высокое разрешение 1600х1200 или низкое разрешение в паре с АА.

Однако вернемся к общей оценке влияния АА на производительность:



Мы помним, что по качеству анти-алиасинг у GeForce3 в режиме Quincunx (розовый столбец) примерно соответствует и даже превосходит режим 2х2 SSAA у GeForce2 Ultra (синий столбец на диаграмме). Даже в относительных единицах видно, что SSAA проигрывает везде. Конечно, MSAA далеко не бесплатный, как обещалось в рекламных материалах, однако при мощи GeForce3 он дает отличные результаты по производительности.

Производительность при разгоне

Как следует из описаний рассматриваемых в данном обзоре акселераторов, самой разгоняемой оказалась карта ASUS AGP-V8200 Deluxe, она-то и представлена на диаграмме выше. Обратите внимание на то, что даже самый максимальный разгон GeForce2 Ultra не смог поднять производительность этой карты до уровня GeForce3. Прирост производительности от разгона GeForce3 не стал весьма существенным ввиду незначительной разгоняемости самого GPU. Более подробно вопросы разгона и влияния частот работы памяти и графического ядра по отдельности мы рассмотрим несколько позже в отдельном материале. Сейчас я хочу лишь отметить, что по итогам проведенных исследований разгона можно сделать вывод о переносе центра "тяжести" производительности с частоты работы памяти на частоту графического процессора. Плата на GeForce3 уже намного более сбалансирована, и дальнейший рост производительности уже упирается не в пропускную способность видеопамяти, а в скорость работы самого графического процессора. Зато какие возможности по выпуску без особых усилий модификаций GeForce3 с приставкой Pro или Ultra :-)

Болевая точка — S3TC…

Многие владельцы видеокарт на базе GeForce/GeForce2 знают, что при включении S3TC в OpenGL в 32-битном цвете наблюдается очень неприятная картина, о которой я рассказывал уже в 3DGiТогах:

    

Проблема низкого качества сжатых текстур на у карт на базе GeForce/GeForce2 связана с неприятной особенностью аппаратной распаковки текстур, упакованных в формате DXT1. При распаковке таких текстур чип оперирует с 16-битным текселем. Такая реализация декомпрессии приводит к бандингу при распаковке текстур, которые содержат плавные цветовые градиенты (именно этот эффект мы и наблюдаем на текстурах неба в Quake3 на скриншоте выше). К огромному сожалению, эта проблема досталась в наследство и GeForce3. Однако не все так плохо. Если посмотреть по тексту этой статьи немного выше, то при рассмотрении анизотропии приводился скриншот из Registry, где можно увидеть переменную S3TCQuality, обведенную синим цветом. По умолчанию она равна 0, а если ей присвоить 1, то картина довольно сильно меняется:

    

Ключ S3TCQuality влияет на динамическую упаковку текстур. Установка этого ключа в значение 1 приводит к тому, что OpenGL драйвер начинает упаковывать текстуры в формат DXT3 вместо формата DXT1. При этом наблюдается небольшая потеря в скорости. Общее влияние использования S3TC на производительность мы покажем на диаграмме ниже (16-битный цвет не привожу, так как, во-первых, эта глубина цвета для GeForce3 уже не актуальна, а во-вторых, включение S3TC в этом случае дает крайне незначительный прирост в скорости):

Выводы очевидны и комментариев не требуют, хотя я лично не включал бы S3TC без надобности (дивидендов это приносит мало, если только не играть на специальных уровнях от Diamond). Вопросы использования S3TC в OpenGL в целом на ряде акселераторов мы подробно рассматриваем в 3DGiТогах, где читатели смогут с ними ознакомиться.

3DMark 2000 Pro, DirectX

Для тестирования мы использовали версию 1.1 популярного бенчмарка 3DMark 2000 Pro от MadOnion с использованием двух тестов: Game1 и Game2. Оба теста прогонялись при максимальном уровне детализации (High Details).

Производительность и анизотропная фильтрация

Вначале рассмотрим скоростные показатели GeForce3 в Direct3D. Если в OpenGL уже давно имеется такой универсальный и популярный бенчмарк, как Quake3, а также есть игры на этом движке, где имеется возможность измерения средней производительности (FAKK2, например), то в Direct3D в этом плане совсем все плохо. Есть 2.5-летней давности Expendable, который не выдерживает уже никакой критики с точки зрения нагрузки акселераторов новыми функциями и эффектами, да и все… В 3DGiТогах мы еще используем Unreal в Direct3D, который на высоких разрешениях хоть как-то отражает возможности ускорителей, однако сырость драйверов версии 10.50 сделала невозможность использования этого бенчмарка из-за отсутствия в Unreal какого-либо текста. Нет, он есть, конечно, но его не видно, в т.ч. и timedemo. Поэтому пришлось обратиться к синтетическим тестам. В принципе, игровые тесты из 3DMark 2000 довольно реально отражают ситуацию по нагрузке акселератора. Особенно если это режим High Details. Именно в нем мы и проводили тестирование:



Видно, что в 16-битном цвете GeForce3 незначительно опережает GeForce2 Ultra, а вот в 32-битном цвете это преимущество становится очевидным и осязаемым.

Отмечу, что наконец-то в драйверах от NVIDIA появилась возможность форсирования (принудительного включения) анизотропной фильтрации в Direct3D. До сего момента только само приложение могло управлять этой фильтрацией, однако игр с поддержкой анизотропии практически нет. Теперь, внеся изменение в Registry, создав переменную FORCEANISOTROPICLEVEL (выделено зеленым) и дав ей значение 2, мы получаем в Direct3D анизотропную фильтрацию, правда, пока лишь самого минимального уровня — на основе выборки из 8-ми сэмплов:

Что же мы при этом получаем?

Анизотропная фильтрация отсутствует, FORCEANISOTROPICLEVEL=0

    

Анизотропная фильтрация присутствует, FORCEANISOTROPICLEVEL=2

    

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



Интересно отметить, что на GeForce2 Ultra в 16-битном цвете включение анизотропии минимальным образом снижает производительность. Впрочем, интересно оценить влияние использования анизотропной фильтрации на производительность в целом:



Из приведенных диаграмм видно, что величина падения скорости у GeForce3 при активизации анизотропии намного выше, чем у GeForce2 Ultra. Этот момент пока несколько непонятен. Возможно, что одно и то же значение переменной FORCEANISOTROPICLEVEL по-разному влияет на истинную "степень" анизотропной фильтрации на различных акселераторах, хотя я особых отличий визуального плана не усмотрел.

На тех же диаграммах можно увидеть и величину падения производительности при переходе с 16- на 32-битный цвет. И опять мы констатируем, что разница в производительности при переходе у GeForce3 очень мала по сравнению с тем, насколько падает производительность у GeForce2 Ultra.

Есть еще один весьма хороший пример, где наглядно видно, что дает включение анизотропной фильтрации, это демо NV Gothic:

Анизотропная фильтрация отсутствует, FORCEANISOTROPICLEVEL=0

    

Анизотропная фильтрация присутствует, FORCEANISOTROPICLEVEL=2

    

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