Серия видеокарт NVIDIA Titanium

Автор: Tim
Дата: 01.10.2001
Все фото статьи

Введение


1-го октября компания NVIDIA официально объявила новую линейку чипов с новым названием - Titanium. Слухи о том, что NVIDIA готовит что-то новенькое, давно курсировали по Сети, да и время подходящее: осень - пора объявления новых продуктов... В самых оптимистичных прогнозах предсказывался выход NV25, нового передового ядра, которое должно было совершить очередную революцию, и NV17 - GeForce3 MX, которое могло бы предоставить возможности GeForce3 людям, не желающим тратить деньги на "полноценный" GeForce3. Однако появилась линейка Titanium, и что же мы видим?

Самый быстрый и дорогой чип в линейке - GeForce3 Ti 500, благодаря повышению тактовых частот ядра и видеопамяти до 240/500 МГц перенимает эстафетную палочку у бывшего лидера GeForce3, являясь более быстрым вариантом последнего. Грех было бы не воспользоваться отличным разгонным потенциалом GeForce3 - вот и появился Ti 500, отодвинув на более поздние сроки появление NV25.

GeForce3 Ti 200, занявший место ожидаемого NV17, или GeForce3 MX, к счастью, оказался "урезанным" лишь по частотам, целиком сохранив архитектуру GeForce3 (от "стандартного" GeForce3 он отличается лишь пониженными частотами работы ядра и видеопамяти - 175/400 МГц).

GeForce2 Ti - более быстрый вариант "стандартного" GeForce2 Pro. Видимо, NVIDIA, наблюдая плохие продажи GeForce2 Ultra, оснащенного дорогой 4-нс видеопамятью, и хорошие продажи GeForce2 Pro, решила выпустить компромиссный вариант с частотой ядра 250МГц и частотой видеопамяти 400МГц. Таким образом, видеокарты GeForce2 Ti оказались оснащены такой же видеопамятью, как и GeForce2 Pro, но будут быстрее последних, благодаря установке более высокой частоты работы ядра.

Стоит посмотреть, как сама NVIDIA позиционирует свои новые платы:

Судя по всему, если GeForce3 Titanium 200, как заявлено NVIDIA, будет стоит в 2 раза меньше, чем GeForce3 Ti 500, то она будет гораздо ближе не к "Performance" сектору рынка, а к "Mainstream". Это особенно скажется, когда пройдет влияние "фактора новизны", и платы начнут стоить намного меньше, чем в момент появления на рынке.
В то, что GeForce3 Ti 500 будет стоить как GeForce3, а GeForce2 Ti как GeForce2 Pro - верится с трудом. Поэтому, как мне кажется, нет никакого смысла подрывать продажи существующих продуктов, потому что начальные цены новых плат все равно окажутся выше. Хотя со временем они будут снижаться и старые продукты вытеснятся с рынка.
Вообще, глядя на то, как NVIDIA одним махом на основе GeForce3 сделала 2 новых продукта, я сразу вспоминаю, как в своё время от GeForce2 MX "произошли" GeForce2 MX400 и GeForce2 MX200. Но если производительность тех значительно различалась, то новый Ti 200 не должен слишком уж сильно отставать от Ti 500, а значит, за небольшую цену можно будет приобрести плату, лишь немногим уступающую лидеру.
Так это или не так, по ходу обзора станет ясно, а сейчас - еще об одном новшестве от NVIDIA.
Как говорится в пресс-релизах, новый драйвер Detonator XP предназаначен специально для плат линейки Titanium. Естественно, драйвер работает и на существующих платах, а благодаря оптимизации, обеспечивает существенный прирост производительности. Но главное - в нем впервые появилась поддержка двух аппаратно реализованных, но ранее не поддерживаемых функций ядра GeForce3. Так как они очень интересны, то перед тем, как, наконец, посмотреть на производительность новых плат, опишем эти функции.

Shadow buffer, 3D Textures


Благодаря поддержке Shadow Buffer, ядро NVIDIA GeForce3 способно в реальном времени рассчитывать тени.
Казалось бы, зачем нужно было "городить" что-то новое, когда для придания реализма и "освещения" сцен существует привычная техника использования карт освещенности (lightmaps)? Ведь и так при их использовании ценой небольшого увеличении нагрузки на видеокарту (наложение дополнительной текстуры - карты освещенности) достигаются разительные изменения в трехмерных сценах. Просто мы к этому привыкли, поэтому и не замечаем. Стоит посмотреть, что произойдет, если выключить карты освещения хотя бы в Quake3 Arena. Я даже не стал подписывать скриншоты, и так понятно, где используются карты освещености, а где нет:




Однако, при всей простоте реализации и удобстве использования, карты освещенности обладают многими недостатками, и самый большой из них - они статичны. Это значит, что если дизайнеры в какой-либо игре смоделировали, скажем, интерьер комнаты таким, что стол, стул или кровать отбрасывают тени от люстры на пол, то если в процессе игры унести из комнаты стул, расстрелять стол и подорвать гранатой кровать, тени на полу от них останутся. Потому, что они были просчитаны дизайнерами заранее и на основе расчетов была создана карта освещенности для пола. Использование рассчитываемых в реальном времени теней позволит избежать таких казусов.
Немного другое применение теням, рассчитываемым в реальном времени - дополнение эффектов динамического освещения. Представьте мрачный сырой склеп, в котором несчастный, зажатый в угол игрок отбивается от жутких монстров, ну, скажем, двухстволкой. Вспышки выстрелов выхватывают из тени маленький круг каменного пола, лицо игрока и клешни монстров, игроку страшно, он на взводе... А насколько более впечатляющей была бы эта сцена, если от выстрелов из ружья из темноты вырывался не только одинокий освещенный круг на полу, а еще и жуткие тени монстров на стенах? Да, во многих играх теням от игрока и объектов, с которыми он взаимодействует, уделено похвальное внимание, и в визуальном плане это идет только на пользу, как например в Blade of Darkness:

Но обратите внимание, что на этом скриншоте тень от факела четкая, словно это не факел, а галогенная лампочка. Тень от такого факела должна быть размытой, но просчет такой тени потребует уже гораздо большего объема вычислений, поэтому программисты выбрали компромиссный вариант - лучше уж сделать такую тень, чем совсем без тени. Такая же картина наблюдается и во многих других играх. Но в будущем, я надеюсь, такое вскоре прекратится. Аппаратная реализация Shadow Buffer в GeForce3 от NVIDIA позволяет создавать нечеткие, размытые тени, которые выглядят намного более реалистично.
Наконец, Shadow Buffer позволяет объектам отбрасывать тени на себя, что при программной эмуляции требует больших вычислительных ресурсов, поэтому малоприменимо в режиме реального времени.
Что ж, стоит посмотреть, как же аппаратно реализованы возможности GeForce3 по расчету теней. Представим такую сцену, где объект отбрасывает тень сам на себя и на другой объект:

Посмотрим, какие действия выполняет GeForce3, чтобы отобразить эту сцену с реалистичными тенями.
Сначала в видеопамяти платы отводится область, в которой размещается Shadow Buffer. По своей сути Shadow Buffer - точно такой же двумерный массив пикселей (логически) или кусок памяти (физически), как буфер кадра или Z-буфер.
В Shadow Buffer строится образ той же сцены, но в другой системе координат: из точки, в которой находится источник света, мы смотрим в том же направлении, куда направлен этот источник света:

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

Shadow Buffer построен, всё готово для дальнейшего построения сцены. Далее сцена строится почти обычным образом, но с дополнением: для каждого пикселя, который предстоит отобразить, выполняется вычисление: на каком расстоянии от источника света находится точка объекта, которую этот пиксель изображает? Если оказывается, что расстояние от этой точки до источника света больше, чем значение, сохраненное для этой точки в Shadow Buffer, значит, свет от источника по пути к этой точке света задержался где-то раньше, и эта точка объекта не должна быть освещена. А если выясняется, что расстояние от этой точки равно (вернее, с некоторым допуском равно) значению, сохраненному для нее в Shadow Buffer, то освещенной является как раз эта точка, и дальше луч света не прошел.
Для того, чтобы уменьшить влияние неизбежных ошибок, связанных с недостаточной точностью вычислений, и заодно реализовать мягкие тени, для тех точек, которые оказываются затененными, сравнение удаленности точки от источника света выполняется уже не только с единственным соответствующим значением из Shadow Buffer, но и с находящимися рядом значениями. При этом "затененность" этой точки становится величиной, имеющей уже не 2 значения - "затенена" и "не затенена", а градации, количество которых соответствует числу взятых для сравнения из Shadow Buffer'а значений. Максимальное количество - 256 значений, что позволяет получить до 256 градаций затененности, а следовательно - мягкие тени:

Таким красивым способом убиваются 2 зайца: во-первых - снижается риск возникновения ошибок в определении затененности, а во-вторых - появляется возможность реализации мягких теней.
Разумеется, все эти дополнительные вычисления приведут к снижению скорости в играх, но вот к какому именно снижению - большой вопрос. Тем более, если мы хотим, чтобы нашу сцену освещал не один, а 5, 10, 50 источников света, то потребуется 5, 10, 50 раз пересчитать Shadow Buffer при построении каждого кадра.
С другой стороны, так как при расчете Shadow Buffer'а не используется текстурирование, загрузка видеопамяти при его построении будет небольшой. Да и, насколько я понимаю, сами размеры Shadow Buffer можно задавать в зависимости от требований, предъявляемых к качеству теней, поэтому в таких случаях может помочь снижение разрешения Shadow Buffer'а ценой небольшого ухудшения качества теней.
В общем, поживем - увидим. Пока эта технология не задействована в играх, но есть такое слово, и вы его знаете - Doom III :) Судя по роликам, представленным широкой публике, в Doom III игра света и теней будет использована на полную катушку...

С 3D Textures, то есть трехмерными текстурами, всё немного проще. Это обычные текстуры, к которым добавили еще одно измерение:

Теперь можно задавать текстуру объекта не только на плоскости, но и в пространстве, при этом сечение модели объекта с заданной 3D-текстурой будет выглядеть точь-в-точь, как срез настоящего объекта:

Трехмерные текстуры хорошо подходят для создания сложных атмосферных эффектов: облаков, слоистого или неравномерного тумана, объемного освещения и т.д.:

К сожалению, 3D-текстуры занимают очень много места, судите сами: если обычная 32-битная текстура размерами 512*512 занимает в памяти 1 MБ, что по нынешним меркам в порядке вещей, то трехмерная текстура размером 512*512*512 займет в 512 раз больше, то есть 512 МБ, а этого, простите, никакой ускоритель не переживет. Даже технология компрессии трехмерных текстур, которую позволяет применить GeForce3, в лучшем случае обеспечивает сжатие в соотношении 1:8, и эта гигантская текстура в сжатом виде займет 64 МБ - всё равно слишком много для реального применения. Тем не менее, 3D-текстуры не слишком больших объемов вполне могут применяться для моделирования всевозможных атмосферных эффектов, особенно в совокупности с билинейной и трилинейной фильтрацией, которую позволяет использовать GeForce3 для 3D-текстур. Правда, из-за увеличения размерности текстур теперь это будет трилинейная и квадрилинейная (вот так слово!) фильтрация, но не суть...
Что ж, будем ждать задействования всех этих возможностей в играх, а я пока перехожу к описанию самих плат серии Titanium:

Платы


Референсная плата GeForce3 Ti 500 на первый взгляд ничем не отличается от обычной GeForce3:

Однако различия есть, а именно: разводка платы изменена в районе разъема D-SUB ( вверху - GeForce3, внизу - GeForce3 Ti 500) :




Как я и говорил, несмотря на новое название, плата выполнена на всё том же чипе NVIDIA GeForce3 rev. A5:

Однако из-за установки более высокой частоты работы видеопамяти, пришлось применить более быстрые микросхемы - на плате установлено 64 МБ видеопамяти в микросхемах производства ESMT с временем цикла 3.5 нс:

В остальном внешне новая плата ничем не отличается от обычной на базе NVIDIA GeForce3.
Платы NVIDIA GeForce3 Ti 200 в нашей тестовой лаборатории не оказалось, так что в качестве Ti 200 была протестирована плата Ti 500, с частотами 175/400 МГц - как у Ti 200.
Точно так же, в качестве GeForce2 Ti я протестировал GeForce2 Pro, установив частоты ядра и видеопамяти в 250/400 МГц, как у GeForce2 Ti. Однако уже известно, как будут выглядеть эти платы:

Тестовая система


Платы были протестированы на стенде с такой конфигурацией:

Процессор - AMD Athlon 1400МГц (133МГц FSB);
Память - 256Мб NCP PC133;
Материнская плата - A7V133-C (VIA KT133A);
Жесткий диск - Fujitsu MPE3084AE 8,4 Гб.

Программное обеспечение:
Windows 98 SE build 4.10.2222 A;
DirectX8.0a;
Quake 3 Arena v1.27g.

При тестировании использовался драйвер Detonator XP.

Скорость в 3D


Так как, в принципе, поведение новых плат серии Titanium в различных приложениях вполне предсказуемо и не слишком отличается от поведения существующих плат, я думаю, что тестирования в Quake3 Arena и 3DMark 2001 будет достаточно.
В Quake 3 Arena при максимальных настройках качества, включенной трилинейной фильтрации и отключенной компрессии текстур, я получил следующие результаты:




В 3DMark 2001 для 32-битных режимов были выбраны 32-битные текстуры и 32-битная точность Z-буфера, а для 16-битных режимов - 16-битные текстуры и 16-битный Z-буфер. Привожу результаты итровых тестов в режиме "High Detail":













Что ж, результаты, как я и говорил, оказались вполне ожидаемыми: GeForce3 Ti 500, GeForce3 Ti 200 и GeForce3 идут, что называется "ноздря в ноздрю", и, судя по всему, GeForce3 Ti 200 оказывается по производительности гораздо ближе к GeForce3 Ti 500, чем в cвоё время GeForce2 MX по сравнению с GeForce2 GTS.
GeForce2 Ti лишь в 16-битных режимах оказывается ощутимо быстрее, чем GeForce2 Pro, в 32-битных режимах различия между ними из-за неизменной частоты видеопамяти минимальны.

Разгон


На видеокарты Ti 500 устанавливается уже не 3.8-нс видеопамять, как на GeForce3, а 3.5-нс, поэтому максимальные рабочие частоты плат Ti500, по крайней мере, их видеопамяти, должны быть не ниже, чем у GeForce3.
Что касается ядра, то тут сложно делать какие-либо предположения, но в любом случае на Ti 500 должны устанавливаться чипы, прошедшие жесткую проверку работы на частоте 240 МГц, в отличие от чипов GeForce3, работающих на 200 МГц. Так что и ядро Ti 500 при разгоне должно устойчиво работать на более высоких частотах, чем GeForce3.
Когда я стал проверять это на практике, предположения полностью подтвердились: максимальные частоты, на которых устойчиво заработала плата Ti 500, составили 270 МГц у ядра и 590 МГц у видеопамяти. Это, конечно, выше, чем 250/560 МГц, на которых могут работать лучшие экземпляры GeForce3, но если подсчитать прирост частоты в процентах от номинала, то у GeForce3 он окажется всё-таки выше.
Тем не менее, без модификации, ни одна из виденных мной плат на базе NVIDIA GeForce3 не смогла заработать на 270/590 МГц, а это значит, что любителям "самого-самого" пора покупать новые платы. А любителям экстремального разгона - немного подождать, пока я не выпущу новый отчет - об экстремальном разгоне GeForce3 Ti 500 :)
Что ж, посмотрим, какой прирост дает разгон Ti 500 в сравнении с результатами в стандартном режиме, а также в сравнении с GeForce3:




Хм.. Потенциал у GeForce3, ставшей GeForce3 Ti 500, по-прежнему еще есть, и я не удивлюсь, если скоро появится что-то вроде Ti 600 или Ti 500 Golden Sample :) Примечательно, что этим платам, чтобы проявить себя, уже в режимах 1024х768 и ниже не хватает производительности Athlon 1400 МГц - смотрите: результаты плат в режиме 1024х768 почти одинаковы.

Заключение


NVIDIA сделала отличный ход, объявив на базе GeForce3 два новых продукта - GeForce3 Ti 500 и GeForce3 Ti 200.
GeForce3 Ti 500, используя запас производительности ядра GeForce3, становится новым лидером и всегда найдет покупателей в среде любителей "самого-самого", а GeForce3 Ti 200 имеет все шансы заменить столь полюбившийся всем GeForce2 MX.
GeForce2 Ti по скорости ненамного превосходит GeForce2 Pro, и вряд ли он будет настолько же привлекателен для покупателя, как GeForce3 Ti 200, так что его судьба для меня пока не очевидна.
В любом случае, стоит, как обычно, выждать некоторое время, пока ослабнет "фактор новизны", и уже после этого, глядя на установившиеся цены на эти продукты, делать дальнейшие выводы.