Обзор GeForce3 и GeForce3 MX

28.06.2001


HRAA: Антиалиасинг высокого разрешения, реализуемый посредством мультисэмплинга


Обычные методы антиалиасинга

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


Высокое разрешение

- Единственный способ борьбы с алиасингом это создание эффекта большего количества пикселей на экране. Исторически сложилось так, что лучшим решением этой проблемы было увеличение разрешения. Размер одной "зазубрены", или "ступеньки", не может превышать реального размера пикселя. Следовательно, если уменьшить размер пикселя, то уменьшится размер артефакта. Однако, изменение разрешения далеко не всегда возможно. Например, если вы уже используете максимальное разрешение, поддерживаемое монитором или приложением (игрой). Эти ограничения можно обойти, увеличив эффективное разрешение. Лучший способ осуществить это - использовать технику расчёта цвета каждого пикселя на экране таким образом, чтобы создавалось впечатление наличия большего числа пикселей. Такие технологии называют "антиалиасингом".


Суперсэмплинг

- алгоритм реализации антиалиасинга, основанный на использовании "содержимого" каждого пикселя в нескольких местах, в том смысле, что цвет рассчитывается в нескольких точках внутри области, покрываемой пикселем. Эти точки, называемые "сэмплами", комбинируются и, впоследствии, определяют цвет конечного пикселя. По своей сути, эти сэмплы представляют собой дополнительные пиксели, используемые для увеличения эффективного разрешения итогового изображения, выводимого на экран. Если край объекта частично попадает в область пикселя, то его цвет, и цвет другого объекта, который тоже заполняет "область" пикселя, будут использованы при расчёте итогового цвета. В результате, получается более плавный переход от одной линии пикселей к другой вдоль краёв объектов, где алиасинг заметнее всего.
Фактически, суперсэмплинг - это метод реализации антиалиасинга, посредством "грубой силы", используемый в GeForce2 и других современных графических процессорах. Графический процессор, использующий суперсэмплинг, строит изображение в гораздо более высоком разрешении, чем текущий видеорежим, а затем, перед выводом на экран, масштабирует и фильтрует его, чтобы привести картинку к текущему разрешению. Для выполнения данной операции существует множество методов, но для их реализации требуется, чтобы графический процессор построил ровно столько дополнительных пикселей, сколько требуется для данного метода суперсэмплинга. Кроме того, построив "дополнительные" пиксели, графический процессор должен промасштабировать и отфильтровать их, чтобы получить разрешение для вывода на экран, что также снижает производительность.
Степень масштабирования конкретного режима суперсэмплинга часто обозначается по отношению числа пикселей в исходном изображении к их числу в конечном, масштабированном изображении. Например, 2x суперсэмплинг запишет в кадровый буфер в два раза больше пикселей, чем при отсутствии антиалиасинга. 4x запишет их в четыре раза больше. Как вы уже наверное понимаете, суперсэмплинг приводит к ощутимому падению скорости. Если графический процессор строит в четыре раза больше пикселей, тогда fps должен составить лишь четверть от стандартного режима, без антиалиасинга. В действительности, падение скорости может быть даже ещё ощутимее, из-за упомянутой выше стадии масштабирования.
Самая большая проблема суперсэмплинга - большое падение производительности. Кому понравится падение fps в два или четыре раза, относительно режимов без антиалиасинга?


Мультисэмплинг для антиалиасинга высокого разрешения (HRAA)

Мультисэмплинг - более сложный метод, чем суперсэмплинг. Мультисэмплинг позволяет добиться более качественной картинки, чем при стандартном рендеринге и дать гораздо большую производительность, по сравнению с суперсэмплингом. Однако, для мультисэмплинга требуется поддержка его алгоритмов "в железе", поэтому, данный метод недоступен на GeForce2 и более старых ускорителях.
Основа мультисэмплинга в том, что GPU "знает", что для расчёта итогового цвета пикселя будут использоваться несколько сэмплов. Можно считать эти дополнительные сэмплы за "виртуальные пиксели". Архитектура GeForce3 такова, что он может работать с этими дополнительными "виртуальными пикселями", не снижая обычную скорость рендеринга. Этот чип может построить дополнительные сэмплы, вообще не снижая скорости. GeForce3 использует одни и те же текстурные данные для всех сэмплов пикселя, что значительно снижает нагрузку на полосу пропускания памяти при текстурировании всех сэмплов для антиалиасинга. Полоса пропускания памяти может оказаться узким местом в производительности системы в режимах высокого разрешения и совсем стать "бутылочным горлышком" при использовании антиалиасинга. Однако, рассмотренная выше архитектура памяти LightSpeed позволяет значительно раздвинуть это горлышко J.
GeForce3 использует новый алгоритм антиалиасинга посредством мультисэмплинга, реализованный при помощи шаблона выборки сэмплов (sampling pattern). Расположение сэмплов для мультисэмплинга позволяет применить "восстанавливающий фильтр" (reconstruction filter), который использует данные расположенных рядом пикселей для расчёта цвета итогового пикселя. Это увеличивает общее количество работы и, тем самым, немного снижает fps, но в итоге мы получаем хорошее качество изображения. Этот новый шаблон выборки сэмплов, NVIDIA назвала Quincunx, по названию "узора" на игральной кости, на которой выпало "5". Шаблон Quincunx даёт качество, сравнимое с режимами "4x", при производительности на уровне режимов "2x". Кроме того, мы можем получить более высокое качество, за счёт использования reconstruction filter Quincunx, что в итоге предлагает неплохой компромисс качества и скорости.
Режим антиалиасинга Quincunx столь быстр, поскольку он использует данные сэмплов от соседствующих пикселей вместо того, чтобы заставлять GPU создавать дополнительные сэмплы для каждого пикселя. Ниже показана решётка расположения сэмплов и как используются сэмплы соседних пикселей.


Шаблон выборки сэмплов для AA.



Шаблон выборки сэмплов для AA

1 пиксель
шаблон выборки 2x

  

2 пикселя
шаблон выборки 4x

     

Шаблон выборки Quincunx

Поскольку режим Quincunx использует сэмплы от ближайших пикселей, он устанавливает баланс между использованием большего числа входных данных для реконструкции конечных пикселей и падением производительности при записи множества сэмплов на каждый пиксель в буфер кадров. Кроме того, поскольку Quincunx в два раза эффективнее традиционного 4x, для него требуется меньшая область памяти, чем для режима 2x, становится возможным использование более высоких разрешений без риска натолкнуться на ограниченный размер памяти ускорителя.


Требования к объёму памяти для режимов AA


Горизонтальное
разрешение

Вертикальное
разрешение

Глубина цвета
(в битах)

Требуемый объём буфера кадров (в Мб)

No AA

2X AA

Quincunx AA

4X AA

640

480

32

3.6

6

6

10.8

800

600

32

5.625

9.375

9.375

16.875

1024

768

32

9.216

15.36

15.36

27.648

1280

1024

32

15.36

25.6

25.6

46.08

1600

1200

32

22.5

37.5

37.5

67.5

2048

1536

32

36.864

61.44

61.44

110.592


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



Переход на страницу:

 1 

 2 

 3 

 4 

 5 

 6 

 7 

 8 

 9 

 10