NVIDIA GeForce4 Ti 4400 и GeForce4 Ti 4600 (NV25)

или "Опять двадцать пять"




Анизотропная фильтрация

Уже на протяжении года мы уделяем этой функции самое пристальное внимание. И это неудивительно, поскольку она позволяет значительно улучшить качество восприятия трехмерных сцен. Кратко я напомню, что для устранения артефактов (т.н. песка) по мере удаления текстурированных объектов от наблюдателя применяется технология MIP-mapping-а, создающая для каждой текстуры набор ее копий разной детализации (т.н. MIP-уровней), выбираемых при построении изображения в зависимости от расстояния от масштаба с которым текстура в результате закраски проецируется на экран. Чем дальше от нас удаляется треугольник, тем менее детализованный и, следовательно, более размытый MIP-уровень текстуры будет использован. Это соответствует нашему зрению (дальние объекты мы видим уже не такими четкими, как близкие). Резкими границами между MIP-уровнями "занимается" трилинейная фильтрация, сглаживая эти переходы с помощью линейной интерполяции между двумя соседними уровнями. Таким образом, билинейная фильтрация занимается удалением резких границ между пикселами текстуры (дабы мы видели стены и пол покрытыми не квадратиками, а сглажеными и более похожими на естественную плавно меняющуюся окраску материалами), а трилинейная дополнительно размывает картину, еще раз интерполируя результаты двух билинейно фильтрованных MIP-уровней. В результате четко видны только самые близко расположенные объекты. При этом расположенные под достаточно острым углом к направлению взгляда стены черезмерно смазываются. Справляться с такими "неудобными" для обычной билинейной и трилинейной фильтрации объектами и призвана анизотропная фильтрация, сохраняющая четкую картинку для расположенных под углом плоскостей и одновременно не допускающая "песок" на текстурах при черезмерном удалении от объекта.

Мы знаем, что реализация этой функции у разных фирм-производителей видеопроцессоров — различная. Да и скоростные характеристики анизотропий, скажем, от ATI и от NVIDIA, сильно отличаются. Схоже только результирующее качество.

Так ли это? Постоянные читатели наших материалов знают, что анизотропия от NVIDIA (речь идет о GeForce3) отличается высоким качеством, но и чрезмерным аппетитом. Падение производительности может достигать до 50%! Анизотропия от ATI (речь идет о RADEON 8500) гораздо более дешевая и, как считалось до недавнего времени, имеет не меньшее качество.

Как обычно, качество анизотропии оценивается на примерах стен, полов, площадей и т.п. Читатели видят четкие линии и радуются качеству этой функции. Но вот бдительные читатели заметили, что не все гладко в "канадском государстве". На некоторых поверхностях, находящихся под разными углами, отличными от 90 градусов, RADEON 8500 просто не воспроизводит анизотропию. Посмотрите на скриншоты, полученные в игре Serious Sam при повороте наблюдателя относительно стены:

ATI RADEON 8500

       
       


NVIDIA GeForce4

       
       

Для удобства восприятия я сделал анимированные GIF-файлы:

ATI RADEON 8500 NVIDIA GeForce4

Прекрасно видно, что на ряде углов зрения четкости у RADEON 8500 как ни бывало. Не это ли и является причиной вычислительной дешевизны анизотропии от ATI? А вот у NVIDIA GeForce3 и GeForce4 все "честно", если можно, конечно, считать способы реализации этой функции честными и нечестными. Плохо, что производители не предоставляют пользователям сознательного выбора: использовать честную анизотропию с большими потерями или "аппроксимацию", но более дешевую. Пока такой выбор может быть осуществлен только косвенно — выбором карты.

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

Различия подходов NVIDIA и ATI к практической реализации анизотропной фильтрации

Если билинейная и трилинейная фильтрация достаточно четко опеределены математически (что, впрочем, не помешало NVIDIA в свое время называть в некоторых документах трилинейной фильтрацией некий метод аппроксимации — дизеринг значений из разных MIP уровней), то термин "анизотропная фильтрация" не подразумевает каких-то конкретных алгоритмов ее реализации. Подходы NVIDIA и ATI в этом вопросе существенно разнятся. Давайте (схематически) познакомимся с ними:

     

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

Подход ATI более ограничен, но и более производителен:

     

Как мы видим, значения выбираются цепочкой, причем она может быть ориентирована в плоскости текстуры строго горизонтально или вертикально. Т.е. для близких к ортам значений проекционного вектора (стрелка на схеме) качество фильтрации будет высоким, но по мере его поворота эффект будет сходить на нет, вплоть до полной потери смысла в использовании такого метода. В реальных приложениях это выразится следующим образом — на стенах или потолках фильтрация будет работать на все сто, в то время как на наклоненных под непрямыми углами поверхностях ее результат будет все менее и менее заметен по мере приближения к критическому углу в 45 градусов (что мы и наблюдали выше). Но, с другой стороны, подобный подход гораздо более выгоден с вычислительной точки зрения. Во-первых, мы выбираем организованные цепочки размером от 2хN точек текстуры (на схеме квадратики), которые можно эффективно выбрать за N/2 тактов с помощью стандартных, рассчитанных на билинейную фильтрацию текстурных блоков. Затем, мы фильтруем значения (на схеме кружки), используя каждый раз одни и те же смещения относительно дискретных точек исходной текстуры. Подобная операция может быть выполнена за один такт специальной схемой из десяти умножителей, встроенной в текстурный блок, благо само значение параметров интерполяции вычисляется один раз и остается неизменным для всех 1..5 вычисляемых точек. Кроме того, мы можем существенно ускорить этот и так достаточно производительный алгоритм, заранее вычислив специально сжатые по осям варианты текстуры (т.н. RIP mapping).

Суммируя вышесказанное, отметим, что подход NVIDIA требует большее время на вычисление результата, но и является более "честным", одинаково хорошо справляясь с объектами, расположенными под любыми углами наклона, а не только строго горизонтально или вертикально по отношению к наблюдателю. В методе ATI заложено свое рациональное зерно — большинство современных игр изобилуют в основном горизонтальными и вертикальными поверхностями.

Вернемся к GeForce4 и его анизотропии. По сути, мы имеем тот же способ, какой увидели у GeForce3, то-есть три уровня, за которыми может скрываться максимально возможное для каждого уровня число выборки текстурных сэмплов для реалиазации анизотропной фильтрации (Level2 — 8, Level4 — 16, Level8 — 32 сэмпла). В наших обзорах по GeForce3 вы сможете подробно узнать, чем отличаются эти уровни в плане качества, да и падения по скорости имеет смысл изучить :-).

Давайте посмотрим, что дает потенциальным пользователям GeForce4 анизотропия в плане производительности:

Quake3




Return to Castle Wolfenstein




3DMark2001, Game1 Low details




3DMark2001, Game2 Low details




3DMark2001, Game3 Low details




3DMark2001, Game4


Думаю, что такого большого количества тестов достаточно для того, чтобы получить печальное представление о том, как такая функция, как анизотропия, может "убить" даже сверхмощный ускоритель. Важно отметить, что пока по неясным причинам мы можем наблюдать гораздо более сильное падение производительности у GeForce4, чем было у GeForce3. Возможно, что виноваты еще не доведенные до ума драйверы, возможны и иные причины. Но пока факт остается фактом: Level8 просто уничтожает все преимущества GeForce4 в плане скорости перед GeForce3 Ti 500. Возникает вопрос — а можно ли хотя бы при помощи Level4 получить почти такое же качество, как у RADEON 8500? Ответ — да! Потери относительно Level8 будут, но получить достаточно высокий уровень качества возможно при помощи изменения LOD BIAS в отрицательную сторону. К сожалению, до последнего времени существовала возможность менять этот параметр только в Direct3D, и то только через твикеры, например RivaTuner. В 27.* версиях драйверов появилась такая же возможность и в OpenGL, но, к сожалению, пока только при помощи правки в Registry (автор RivaTuner в ближайшее время выпустит новую версию этой программы, обладающую уже возможностями изменения LOD BIAS в OpenGL). Давайте посмотрим, что нам даст смещение LOD BIAS до значения -1 на примере игры Serious Sam: The Second Encounter.

Анизотропная фильтрация Level 8

       

Анизотропная фильтрация Level 4, LOD BIAS = 0

       

Анизотропная фильтрация Level 4, LOD BIAS = -1

       

Анизотропная фильтрация Level 2, LOD BIAS = -1

       

Как мы видим, эффект достигнут! Побочными явлениями можно назвать появление муара, того самого шума текстур ("песка"), который обычно и вызывается понижением LOD BIAS (т.е. смещением MIP-уровней), но примерно то же самое мы можем видеть и у RADEON 8500 при активной анизотропии (да, разумеется, когда мы говорим про эту функцию у RADEON 8500, то имеется ввиду максимально возможный уровень анизотропной фильтрации). Здесь падение велико, но уже не столь катастрофично. А вот при степени анизотропии Level2 понижение LOD BIAS уже не помогает, хотя качество Level4 при LOD BIAS = 0 и достигается.

АНТИ-АЛИАСИНГ (АА)

Эта функция борьбы с "лестницами по краям объектов", называемыми артефактами алиасинга, также имеет давнюю и сложную историю. Дело в том, что у АА аппетиты еще выше, чем у анизотропии (если имеем дело с существенными уровнями АА, дающими заметное визуальное улучшение картинки).

Как известно еще из материалов по GeForce3, год назад NVIDIA дала жизнь новому методу АА — Quincunx, который имеет свои плюсы и минусы. К плюсам относится быстрота этого АА, несмотря на приличный уровень сглаживания; к минусам относится "замыливание" текстур во многих случаях, что приводит к размытию картинки в целом. Поэтому рост производительности GeForce4 относительно предыдущего продукта может сделать более востребованным следующий уровень АА (4х), отличающийся великолепным качеством.

Давайте посмотрим на качество двух наиболее интересных видов АА у GeForce3 Ti 500 и GeForce4, и сравним их.

GeForce3 Ti 500 GeForce4
3DMark2001, Game 1
No AA
AA Quincunx
AA 4x
AA 4x AA 4xS
3DMark2001, Game 2
No AA
AA Quincunx
AA 4x
AA 4x AA 4xS
3DMark2001, Game 3
No AA
AA Quincunx
AA 4x
AA 4x AA 4xS

Прекрасно видно, что по АА 4х и AA Quincunx каких либо заметных отличий между GeForce3 и GeForce4 (несмотря на заявленное NVIDIA для GeForce 4 смещение позиций выбираемых семлов для повышения качества AA Quincunx) нет. А что же такое АА 4xS?

Новый гибридный режим АА: 4xS

Давайте познакомимся с новым гибридным (MS и SS одновременно) режимом полноэкранного сглаживания, доступным для карт на базе NV25. Фактически, этот режим можно назвать "Мичуринским гибридом" — в каждом исходном 2х2 блоке сглаживания усредняется два расположенных друг над другом "подблока" (2х1), полученных стандартным для 2х MSAA образом (для сравнения справа приведен обычный 4х MSAA блок):

     

Здесь, S1 — первый 2х1 подблок, S2 соответственно второй. Внутри подблока семплы рассчитываются методом мултисамплинга, т.е. из одного выбранного значения текстуры, однако, в отличие от обычного 4x MSAA, значения текстуры для верхнего и нижнего подблоков могут отличаться. Т.е., с точки зрения ускорителя, мы просто рассчитываем удвоенное по вертикали изображение в стандартном 2x MSAA (блоки 2х1) режиме. Данный режим может быть установлен и на NV20, но только через недокументированные значения параметров драйвера в реестре. С картами же на базе NV25 эта установка становится доступной из панели настроек драйверов. Отметим, что на NV25 этот режим показывает себя очень хорошо, несмотря на вдвое большее число интерполируемых текстурных значений, производительность отличается от 4х на считанные проценты, а визуальное качество, несомненно, выше. Конечно, подобный метод не может существенно изменить ситуацию на границах полигонов — там SSAA и MSAA выглядят практически одинаково, но вот сами текстуры должны стать менее размытыми. Более того, для горизонтально расположенных поверхностей (ландшафты, пол, потолок) этот метод подспудно выполняет роль анизотропной фильтрации (с качеством 2х).

А теперь посмотрим, сколько мы теряем в скорости, включив тот или иной вид АА.

Quake3



Return to Castle Wolfenstein



3DMark2001, Game1 Low details



3DMark2001, Game2 Low details



3DMark2001, Game3 Low details

Интересно отметить, что производительность АА 2x и AA Quincunx почти сравнялась (благодаря огромной пропускной способности памяти и оптимизации работы GeForce4 Ti 4600 в режиме мултисэмплинга). В остальных режимах также дает себя знать увеличенная производительность GeForce4 — многие ранее недоступные из-за низкой играбельности режимы стали более привлекательными.

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

Совместную работу анизотропной фильтрации и АА мы рассмотрим в одном из последующих обзоров по серийным видеокартам на базе GeForce4 Ti.

Выводы

  1. Налицо добротная "работа над ошибками" — все, что в NV20 заметно проигрывало по сравнению с R200, теперь оптимизированно и доведено до равного или превышающего уровня.
  2. Несмотря на ту же технологию и лишь небольшое увеличение числа транзисторов, чип гораздо более эффективен, особенно в интенсивных задачах на равной предыдущему частоте, и имеет существенно возросший частотный потолок.
  3. АА придвинулся ближе к бесплатному идеалу, особенно в случае Quincunx.
  4. Прекрасно выполнена поддержка работы с двумя мониторами, как с аппаратной, так и с програмной стороны.
  5. Чип нельзя рассматривать как новое (с точки зрения архитектуры) поколение ускорителей — это доведенный и оптимизированный вариант предыдущего поколения.
  6. Сходная технология и сложность обещают, что цена карт на базе этого чипа будет не сильно превышать цену Ti500. В таком случае его, несомненно, можно назвать удачным — гораздо больше производительности и возможностей за практически те же деньги.
  7. Применение BGA памяти является удачным и оправданным ходом.
  8. Некоторые возможности (анизотропия, EMBM) слегка сдали по сравнению с NV20, что, даже учитывая заметно возросшую тактовую частоту, следует признать недостатком. Нет в этой жизни совершенства :-).
  9. Подсознательно, многие поклонники и владельцы NVIDIA ожидали от этого чипа большего, ведь с момента появления GeForce3 прошел практически целый год. Но, несмотря на желание как можно скорее увидеть в продаже новые революционные архитектуры и новшества, мы считаем подобную стратегию постепенного роста и оптимизации более оправданной в условиях значительного спада активности на IT рынке. Вспомним, что большинство новых возможностей DirectX 8, представленных вместе с GeForce3, еще только начинают пробивать себе путь в реальные приложения.

Вероятно, Ti 4400 будет позиционироваться как прямой конкурент RADEON 8500 128 МБ, в том числе и по ценовому диапазону. Этот факт не может не радовать. Ti 4600 займет позицию повыше, и прямых конкурентов иметь не будет — следовательно, и цена на него будет установлена заметно более серьезная.

Подводя общий итог, отметим, что новый чип NVIDIA (NV25) способен уверенно закрепиться в верхнем секторе игрового рынка, успешно подготовленным к его приходу GeForce3, и, возможно, станет в скором времени основным проповедником передовых технологий DX8.




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

Обзор референс-видеокарт NVIDIA GeForce4 Ti 4400 и 4600

NVIDIA GeForce4 Ti 4400 и GeForce4 Ti 4600 (NV25)

или "Опять двадцать пять"



Анизотропная фильтрация

Уже на протяжении года мы уделяем этой функции самое пристальное внимание. И это неудивительно, поскольку она позволяет значительно улучшить качество восприятия трехмерных сцен. Кратко я напомню, что для устранения артефактов (т.н. песка) по мере удаления текстурированных объектов от наблюдателя применяется технология MIP-mapping-а, создающая для каждой текстуры набор ее копий разной детализации (т.н. MIP-уровней), выбираемых при построении изображения в зависимости от расстояния от масштаба с которым текстура в результате закраски проецируется на экран. Чем дальше от нас удаляется треугольник, тем менее детализованный и, следовательно, более размытый MIP-уровень текстуры будет использован. Это соответствует нашему зрению (дальние объекты мы видим уже не такими четкими, как близкие). Резкими границами между MIP-уровнями "занимается" трилинейная фильтрация, сглаживая эти переходы с помощью линейной интерполяции между двумя соседними уровнями. Таким образом, билинейная фильтрация занимается удалением резких границ между пикселами текстуры (дабы мы видели стены и пол покрытыми не квадратиками, а сглажеными и более похожими на естественную плавно меняющуюся окраску материалами), а трилинейная дополнительно размывает картину, еще раз интерполируя результаты двух билинейно фильтрованных MIP-уровней. В результате четко видны только самые близко расположенные объекты. При этом расположенные под достаточно острым углом к направлению взгляда стены черезмерно смазываются. Справляться с такими "неудобными" для обычной билинейной и трилинейной фильтрации объектами и призвана анизотропная фильтрация, сохраняющая четкую картинку для расположенных под углом плоскостей и одновременно не допускающая "песок" на текстурах при черезмерном удалении от объекта.

Мы знаем, что реализация этой функции у разных фирм-производителей видеопроцессоров — различная. Да и скоростные характеристики анизотропий, скажем, от ATI и от NVIDIA, сильно отличаются. Схоже только результирующее качество.

Так ли это? Постоянные читатели наших материалов знают, что анизотропия от NVIDIA (речь идет о GeForce3) отличается высоким качеством, но и чрезмерным аппетитом. Падение производительности может достигать до 50%! Анизотропия от ATI (речь идет о RADEON 8500) гораздо более дешевая и, как считалось до недавнего времени, имеет не меньшее качество.

Как обычно, качество анизотропии оценивается на примерах стен, полов, площадей и т.п. Читатели видят четкие линии и радуются качеству этой функции. Но вот бдительные читатели заметили, что не все гладко в "канадском государстве". На некоторых поверхностях, находящихся под разными углами, отличными от 90 градусов, RADEON 8500 просто не воспроизводит анизотропию. Посмотрите на скриншоты, полученные в игре Serious Sam при повороте наблюдателя относительно стены:

ATI RADEON 8500

       
       


NVIDIA GeForce4

       
       

Для удобства восприятия я сделал анимированные GIF-файлы:

ATI RADEON 8500 NVIDIA GeForce4

Прекрасно видно, что на ряде углов зрения четкости у RADEON 8500 как ни бывало. Не это ли и является причиной вычислительной дешевизны анизотропии от ATI? А вот у NVIDIA GeForce3 и GeForce4 все "честно", если можно, конечно, считать способы реализации этой функции честными и нечестными. Плохо, что производители не предоставляют пользователям сознательного выбора: использовать честную анизотропию с большими потерями или "аппроксимацию", но более дешевую. Пока такой выбор может быть осуществлен только косвенно — выбором карты.

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

Различия подходов NVIDIA и ATI к практической реализации анизотропной фильтрации

Если билинейная и трилинейная фильтрация достаточно четко опеределены математически (что, впрочем, не помешало NVIDIA в свое время называть в некоторых документах трилинейной фильтрацией некий метод аппроксимации — дизеринг значений из разных MIP уровней), то термин "анизотропная фильтрация" не подразумевает каких-то конкретных алгоритмов ее реализации. Подходы NVIDIA и ATI в этом вопросе существенно разнятся. Давайте (схематически) познакомимся с ними:

     

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

Подход ATI более ограничен, но и более производителен:

     

Как мы видим, значения выбираются цепочкой, причем она может быть ориентирована в плоскости текстуры строго горизонтально или вертикально. Т.е. для близких к ортам значений проекционного вектора (стрелка на схеме) качество фильтрации будет высоким, но по мере его поворота эффект будет сходить на нет, вплоть до полной потери смысла в использовании такого метода. В реальных приложениях это выразится следующим образом — на стенах или потолках фильтрация будет работать на все сто, в то время как на наклоненных под непрямыми углами поверхностях ее результат будет все менее и менее заметен по мере приближения к критическому углу в 45 градусов (что мы и наблюдали выше). Но, с другой стороны, подобный подход гораздо более выгоден с вычислительной точки зрения. Во-первых, мы выбираем организованные цепочки размером от 2хN точек текстуры (на схеме квадратики), которые можно эффективно выбрать за N/2 тактов с помощью стандартных, рассчитанных на билинейную фильтрацию текстурных блоков. Затем, мы фильтруем значения (на схеме кружки), используя каждый раз одни и те же смещения относительно дискретных точек исходной текстуры. Подобная операция может быть выполнена за один такт специальной схемой из десяти умножителей, встроенной в текстурный блок, благо само значение параметров интерполяции вычисляется один раз и остается неизменным для всех 1..5 вычисляемых точек. Кроме того, мы можем существенно ускорить этот и так достаточно производительный алгоритм, заранее вычислив специально сжатые по осям варианты текстуры (т.н. RIP mapping).

Суммируя вышесказанное, отметим, что подход NVIDIA требует большее время на вычисление результата, но и является более "честным", одинаково хорошо справляясь с объектами, расположенными под любыми углами наклона, а не только строго горизонтально или вертикально по отношению к наблюдателю. В методе ATI заложено свое рациональное зерно — большинство современных игр изобилуют в основном горизонтальными и вертикальными поверхностями.

Вернемся к GeForce4 и его анизотропии. По сути, мы имеем тот же способ, какой увидели у GeForce3, то-есть три уровня, за которыми может скрываться максимально возможное для каждого уровня число выборки текстурных сэмплов для реалиазации анизотропной фильтрации (Level2 — 8, Level4 — 16, Level8 — 32 сэмпла). В наших обзорах по GeForce3 вы сможете подробно узнать, чем отличаются эти уровни в плане качества, да и падения по скорости имеет смысл изучить :-).

Давайте посмотрим, что дает потенциальным пользователям GeForce4 анизотропия в плане производительности:

Quake3




Return to Castle Wolfenstein




3DMark2001, Game1 Low details




3DMark2001, Game2 Low details




3DMark2001, Game3 Low details




3DMark2001, Game4


Думаю, что такого большого количества тестов достаточно для того, чтобы получить печальное представление о том, как такая функция, как анизотропия, может "убить" даже сверхмощный ускоритель. Важно отметить, что пока по неясным причинам мы можем наблюдать гораздо более сильное падение производительности у GeForce4, чем было у GeForce3. Возможно, что виноваты еще не доведенные до ума драйверы, возможны и иные причины. Но пока факт остается фактом: Level8 просто уничтожает все преимущества GeForce4 в плане скорости перед GeForce3 Ti 500. Возникает вопрос — а можно ли хотя бы при помощи Level4 получить почти такое же качество, как у RADEON 8500? Ответ — да! Потери относительно Level8 будут, но получить достаточно высокий уровень качества возможно при помощи изменения LOD BIAS в отрицательную сторону. К сожалению, до последнего времени существовала возможность менять этот параметр только в Direct3D, и то только через твикеры, например RivaTuner. В 27.* версиях драйверов появилась такая же возможность и в OpenGL, но, к сожалению, пока только при помощи правки в Registry (автор RivaTuner в ближайшее время выпустит новую версию этой программы, обладающую уже возможностями изменения LOD BIAS в OpenGL). Давайте посмотрим, что нам даст смещение LOD BIAS до значения -1 на примере игры Serious Sam: The Second Encounter.

Анизотропная фильтрация Level 8

       

Анизотропная фильтрация Level 4, LOD BIAS = 0

       

Анизотропная фильтрация Level 4, LOD BIAS = -1

       

Анизотропная фильтрация Level 2, LOD BIAS = -1

       

Как мы видим, эффект достигнут! Побочными явлениями можно назвать появление муара, того самого шума текстур ("песка"), который обычно и вызывается понижением LOD BIAS (т.е. смещением MIP-уровней), но примерно то же самое мы можем видеть и у RADEON 8500 при активной анизотропии (да, разумеется, когда мы говорим про эту функцию у RADEON 8500, то имеется ввиду максимально возможный уровень анизотропной фильтрации). Здесь падение велико, но уже не столь катастрофично. А вот при степени анизотропии Level2 понижение LOD BIAS уже не помогает, хотя качество Level4 при LOD BIAS = 0 и достигается.

АНТИ-АЛИАСИНГ (АА)

Эта функция борьбы с "лестницами по краям объектов", называемыми артефактами алиасинга, также имеет давнюю и сложную историю. Дело в том, что у АА аппетиты еще выше, чем у анизотропии (если имеем дело с существенными уровнями АА, дающими заметное визуальное улучшение картинки).

Как известно еще из материалов по GeForce3, год назад NVIDIA дала жизнь новому методу АА — Quincunx, который имеет свои плюсы и минусы. К плюсам относится быстрота этого АА, несмотря на приличный уровень сглаживания; к минусам относится "замыливание" текстур во многих случаях, что приводит к размытию картинки в целом. Поэтому рост производительности GeForce4 относительно предыдущего продукта может сделать более востребованным следующий уровень АА (4х), отличающийся великолепным качеством.

Давайте посмотрим на качество двух наиболее интересных видов АА у GeForce3 Ti 500 и GeForce4, и сравним их.

GeForce3 Ti 500 GeForce4
3DMark2001, Game 1
No AA
AA Quincunx
AA 4x
AA 4x AA 4xS
3DMark2001, Game 2
No AA
AA Quincunx
AA 4x
AA 4x AA 4xS
3DMark2001, Game 3
No AA
AA Quincunx
AA 4x
AA 4x AA 4xS

Прекрасно видно, что по АА 4х и AA Quincunx каких либо заметных отличий между GeForce3 и GeForce4 (несмотря на заявленное NVIDIA для GeForce 4 смещение позиций выбираемых семлов для повышения качества AA Quincunx) нет. А что же такое АА 4xS?

Новый гибридный режим АА: 4xS

Давайте познакомимся с новым гибридным (MS и SS одновременно) режимом полноэкранного сглаживания, доступным для карт на базе NV25. Фактически, этот режим можно назвать "Мичуринским гибридом" — в каждом исходном 2х2 блоке сглаживания усредняется два расположенных друг над другом "подблока" (2х1), полученных стандартным для 2х MSAA образом (для сравнения справа приведен обычный 4х MSAA блок):

     

Здесь, S1 — первый 2х1 подблок, S2 соответственно второй. Внутри подблока семплы рассчитываются методом мултисамплинга, т.е. из одного выбранного значения текстуры, однако, в отличие от обычного 4x MSAA, значения текстуры для верхнего и нижнего подблоков могут отличаться. Т.е., с точки зрения ускорителя, мы просто рассчитываем удвоенное по вертикали изображение в стандартном 2x MSAA (блоки 2х1) режиме. Данный режим может быть установлен и на NV20, но только через недокументированные значения параметров драйвера в реестре. С картами же на базе NV25 эта установка становится доступной из панели настроек драйверов. Отметим, что на NV25 этот режим показывает себя очень хорошо, несмотря на вдвое большее число интерполируемых текстурных значений, производительность отличается от 4х на считанные проценты, а визуальное качество, несомненно, выше. Конечно, подобный метод не может существенно изменить ситуацию на границах полигонов — там SSAA и MSAA выглядят практически одинаково, но вот сами текстуры должны стать менее размытыми. Более того, для горизонтально расположенных поверхностей (ландшафты, пол, потолок) этот метод подспудно выполняет роль анизотропной фильтрации (с качеством 2х).

А теперь посмотрим, сколько мы теряем в скорости, включив тот или иной вид АА.

Quake3



Return to Castle Wolfenstein



3DMark2001, Game1 Low details



3DMark2001, Game2 Low details



3DMark2001, Game3 Low details

Интересно отметить, что производительность АА 2x и AA Quincunx почти сравнялась (благодаря огромной пропускной способности памяти и оптимизации работы GeForce4 Ti 4600 в режиме мултисэмплинга). В остальных режимах также дает себя знать увеличенная производительность GeForce4 — многие ранее недоступные из-за низкой играбельности режимы стали более привлекательными.

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

Совместную работу анизотропной фильтрации и АА мы рассмотрим в одном из последующих обзоров по серийным видеокартам на базе GeForce4 Ti.

Выводы

  1. Налицо добротная "работа над ошибками" — все, что в NV20 заметно проигрывало по сравнению с R200, теперь оптимизированно и доведено до равного или превышающего уровня.
  2. Несмотря на ту же технологию и лишь небольшое увеличение числа транзисторов, чип гораздо более эффективен, особенно в интенсивных задачах на равной предыдущему частоте, и имеет существенно возросший частотный потолок.
  3. АА придвинулся ближе к бесплатному идеалу, особенно в случае Quincunx.
  4. Прекрасно выполнена поддержка работы с двумя мониторами, как с аппаратной, так и с програмной стороны.
  5. Чип нельзя рассматривать как новое (с точки зрения архитектуры) поколение ускорителей — это доведенный и оптимизированный вариант предыдущего поколения.
  6. Сходная технология и сложность обещают, что цена карт на базе этого чипа будет не сильно превышать цену Ti500. В таком случае его, несомненно, можно назвать удачным — гораздо больше производительности и возможностей за практически те же деньги.
  7. Применение BGA памяти является удачным и оправданным ходом.
  8. Некоторые возможности (анизотропия, EMBM) слегка сдали по сравнению с NV20, что, даже учитывая заметно возросшую тактовую частоту, следует признать недостатком. Нет в этой жизни совершенства :-).
  9. Подсознательно, многие поклонники и владельцы NVIDIA ожидали от этого чипа большего, ведь с момента появления GeForce3 прошел практически целый год. Но, несмотря на желание как можно скорее увидеть в продаже новые революционные архитектуры и новшества, мы считаем подобную стратегию постепенного роста и оптимизации более оправданной в условиях значительного спада активности на IT рынке. Вспомним, что большинство новых возможностей DirectX 8, представленных вместе с GeForce3, еще только начинают пробивать себе путь в реальные приложения.

Вероятно, Ti 4400 будет позиционироваться как прямой конкурент RADEON 8500 128 МБ, в том числе и по ценовому диапазону. Этот факт не может не радовать. Ti 4600 займет позицию повыше, и прямых конкурентов иметь не будет — следовательно, и цена на него будет установлена заметно более серьезная.

Подводя общий итог, отметим, что новый чип NVIDIA (NV25) способен уверенно закрепиться в верхнем секторе игрового рынка, успешно подготовленным к его приходу GeForce3, и, возможно, станет в скором времени основным проповедником передовых технологий DX8.