Что такое edge detect фильтр
edge detect filter
Смотреть что такое «edge detect filter» в других словарях:
Edge detection — is a terminology in image processing and computer vision, particularly in the areas of feature detection and feature extraction, to refer to algorithms which aim at identifying points in a digital image at which the image brightness changes… … Wikipedia
Canny edge detector — The Canny edge detection operator was developed by John F. Canny in 1986 and uses a multi stage algorithm to detect a wide range of edges in images. Most importantly, Canny also produced a computational theory of edge detection explaining why the … Wikipedia
Atomic line filter — A potassium Faraday filter designed, built and photographed by Jonas Hedin for making daytime LIDAR measurements at Arecibo Observatory.[1] An atomic line filter (ALF) is an advanced optical band pass filter used in the physical sciences for… … Wikipedia
Radeon R600 — ATIGPU name = Radeon HD 2000/3000 Series codename = Pele created = 2006 ndash;2007 entry = Radeon HD 2400, HD 3400 midrange = Radeon HD 2600, HD 3600 highend = Radeon HD 2900, HD 3800 d3dversion = 10.0, Shader Model 4.0 (HD 2000) / 10.1, Shader… … Wikipedia
Chasys Draw IES — Developer(s) John Paul Chacha s Lab [1] Stable release 3.66.02 / 5 September 2011; 51 days ago (2011 09 05) Operating system … Wikipedia
test — 1. To prove; to try a substance; to determine the chemical nature of a substance by means of reagents. 2. A method of examination, as to determine the presence or absence of a definite disease or of some substance in any of the fluids, tissues,… … Medical dictionary
Life Sciences — ▪ 2009 Introduction Zoology In 2008 several zoological studies provided new insights into how species life history traits (such as the timing of reproduction or the length of life of adult individuals) are derived in part as responses to… … Universalium
spectroscopy — spectroscopist /spek tros keuh pist/, n. /spek tros keuh pee, spek treuh skoh pee/, n. the science that deals with the use of the spectroscope and with spectrum analysis. [1865 70; SPECTRO + SCOPY] * * * Branch of analysis devoted to identifying… … Universalium
Mathematics and Physical Sciences — ▪ 2003 Introduction Mathematics Mathematics in 2002 was marked by two discoveries in number theory. The first may have practical implications; the second satisfied a 150 year old curiosity. Computer scientist Manindra Agrawal of the… … Universalium
optics — /op tiks/, n. (used with a sing. v.) the branch of physical science that deals with the properties and phenomena of both visible and invisible light and with vision. [1605 15; Universalium
Physical Sciences — ▪ 2009 Introduction Scientists discovered a new family of superconducting materials and obtained unique images of individual hydrogen atoms and of a multiple exoplanet system. Europe completed the Large Hadron Collider, and China and India took… … Universalium
Сглаживание. Какое лучше?
При чем, одновременно можно использовать оба метода сразу. Какой выбрать исходя из эстетических соображений и ресурсов видеокарты, решать конечно индивидуально.
Начнем с того, что AA (Anti-Aliasing, Сглаживание) — способ устранения «ступенчатости» на краях объектов, линий, которые находятся под наклоном и не являются ни строго вертикальными и ни строго горизонтальными. Особенно «лесенка» заметна на стыках полигонов с разными цветами.
В играх может использоваться, когда видеокарте не хватает мощности для вывода изображения в высоком разрешении, где все детали плавные и приятны глазу. Если AntiAliasing отрабатывает хорошо и качественно, то из-за этого страдает производительность, падает фпс в играх. Если сглаживает плохо, то страдает графика, появляется замыливание картинки, артефакты. Поэтому, если есть возможность играть при высоком разрешении и фпс при этом падает не на много, не включайте AA, играйте на высоком. Так же из особенностей, сглаживание «лесенки» может быть включено на уровне настроек видеокарты и при этом еще и на уровне приложений. Эффект при этом «усиливается», если используется первый и второй тип сглаживания. Поэтому если собрались испытывать антиальясинг, убедитесь чтобы оно было включено где то в одном месте, дабы не получить замыленность.
Первый тип
Влияние на фпс прямое, в зависимости от метода и пропускной способности видеопамяти.
SSAA (SuperSample Anti-Aliasing, Избыточная выборка сглаживания) — Самое тяжелое, но и самое качественное и жутко нагружающее видеокарту. В ускорителях применяется регулярная маска размером от 2×1 до 4×4. От этого и появляется нагрузка, при разрешении 1920×1440 и маске 2х2 строится кадр с разрешением 3840х2880 (что требует памяти в 4 раза больше), после этого, усредняются цвета всех суб-пикселей в маске и уже после кадр сжимается и подается на вывод на экран в исходном разрешении.
Существовала технология в основном до DirectX 8, пока не появился MSAA. Из-за большого влияния на фпс от него отказались. Но так как мощность видеокарт перманентно росла, NVIDIA его вернули в строй и используется для игр с поддержкой DX9, DX10, DX11.
Хотите 60 фпс? Тогда сами сможете прикинуть под какой нагрузкой будет работать видеоадаптер. Однако, от картинки вы получите наслаждение. Данный метод рекомендуется обладателям производительных видюх для современных игр.
MSAA (MultiSample Anti-Aliasing, Множественная выборка сглаживания) — пришел на смену SSAA, потребляя меньше ресурсов, но и результат дает немного другой. Изображение по-прежнему рендерится в большем разрешении, но производительность достигнута за счет AA только краев объекта, а не всей картинки как в SSAA. Из минусов, на прозрачных полигонах (стекла, вода..) данный метод не работает, поэтому лесенку иногда можно лицезреть. И так как сглаживается только часть изображения, то можно наблюдать еще и артефакты. Плюс несовместимость с методом отложенного освещения. Нужно помнить, что MSAA выгоднее юзать на низких разрешениях. Чем оно выше, тем накладнее по ресурсам. Так же рекомендуется обладателям топовых видеокарт, с большим количеством видеопамяти.
CSAA (Coverage Sampling Anti-Aliasing, Выборка сглаживания с перекрытием) — это продолжение эволюции SSAA->MSAA->CSAA, который сохранил совместимость с алгоритмами используемых в железе. Улучшение достигнуто за счет того, что в буфер кадра передается еще информация о субсэмпле с соседнего пикселя. Что в итоге помогает рассчитать более качественное сглаживание.
При равных уровнях (4,8..) CSAA и MSAA, качество кадра всегда будет у CSAA выше, а по производительности они друг другу не будут уступать.
FSAA (Full Scene Anti-Aliasing, Полноэкранное сглаживание) — То же что и SSAA, но от AMD и с небольшими отличиями.
QCSAA (Quality Coverage Sampling Anti-Aliasing, Выборка сглаживания с перекрытием) — не трудно догадаться, что это улучшенная версия CSAA, только использует вдвое больше сэмплов для анализа
AAA (Adaptive Anti-Aliasing, Адаптивное сглаживание) — Как известно у MSAA есть проблема при сглаживании краев на прозрачных объектах. Данный способ призван устранить такую проблему. Является синергией мультисемплинга (MSAA) и суперсемплинга (SSAA). Как можно догадаться, данный вид ресурсоемок и рекомендуется обладателям топ карт. Используется у AMD.
TrAA (Transparency Anti-Aliasing, Прозрачное сглаживание) — тоже что и AAA, только от NVIDIA.
TrAAA (Transparency Adaptive Anti-Aliasing, Адаптивное Прозрачное сглаживание) — см. TrAA
TrMSAA (Transparency Multi-Sampling Anti-Aliasing, Прозрачная множественная выборка сглаживания) — использует краевой метод (MSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TMAA
TrSSAA (Transparency Super-Sampling Anti-Aliasing, Прозрачная полноэкранная выборка сглаживания) — использует полноэкранное сглаживание (SSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TSAA
OGSSAA (Ordered Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с упорядоченной решеткой) — Классический SSAA в котором используется решетка с упорядоченной выборкой, выровненная по вертикали и горизонтали.
RGSSAA (Rotated Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с повернутой решеткой) — Все тот же SSAA, с уточнением расположения решетки наклоненной под определенным углом. Данный метод показывает качество немного лучше, чем OGSSAA, при почти горизонтальных или вертикальных краях объектов (слегка наклоненных).
SGSSAA (Sparse Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с разряженной решеткой) — выборки располагаются на регулярной сетке, как в OGSSAA. Но выборка производится лишь на некоторых узлах сетки. Здесь заложен компромиссный подход между производительностью и качеством изображения. Метод используется у NVidia
HRAA (High-Resolution Anti-Aliasing, Полноэкранное сглаживание для высоких разрешений) — метод полноэкранного сглаживания в NVIDIA с 5-ю сэмплами. Качество как 4xSSAA, по нагрузке как 2xSSAA.
HRAA (Hybrid Reconstruction Anti-Aliasing, Гибридное сглаживание) — решение использующее лучшие практики, на основе краевого метода (MSAA, CSAA), постобработки с аналитикой и временного антиалиасинга.
EDAA (Edge Detect Anti-Aliasing, Краевое сглаживание) — так же краевой метод + обсчитываются контрастные переходы еще и на объектах и текстурах. Что в итоге сильнее садит fps. Условно можно назвать это аналогом CSAA, только от AMD. Это разновидность CFAA, описанного ниже.
QAA ( Quincunx Anti-Aliasing, Шахматное сглаживание ) — метод от NVidia, в основе которого лежит учет не только своих субпикселей, но и данные берутся от соседних. При этом, при расчете финального цвета, свой сэмпл имеет вес больше, чем данные с соседних. В расчет берется 5 точек. По качеству 2xQSAA, приблизительно так же выглядит как 4xMSAA.
FAA (Fragment Anti-Aliasing, Частичное Сглаживание) — разработана компанией Matrox. Сглаживание применяемое к краям объектов. Отличие от SSAA и MSAA, в том, что края и сами объекты не увеличиваются в несколько раз по маске. Каждый пиксель делится на 16 частей и если покрытие полное, то пиксель отправляется в кадровый буфер, если неполное, то уходит в отдельный буфер. Такой пиксель считается фрагментированным, при чем в дальнейшем над ним проводится анализ и он видоизменяется. Такая реализация очень сильно экономит ресурсы видеокарты. Но есть и проблема, алгоритм определения краев не всегда корректно обнаруживает те самые края. Проблема с прозрачными объектами во всей красе.
TXAA (Temporal approXimate Anti-Aliasing, Временное приблизительное сглаживание) — технология от Nvidia, которая использует основу MSAA. В формуле расчета используется время, данные по пикселям из предыдущих кадров и данные из обрабатываемой сцены. После чего происходит усреднение по цвету. Это позволяет избавиться от мерцания и дерганья объектов в игре. Вдали дает качественную картинку, однако немного мылит близкие объекты и требования к ресурсам почти как для MSAA, хотя качество при тех же значениях лучше.
Со слов производителя, TXAA 2x сравнимо по качеству с 8xMSAA, но при по затратам производительности сопоставимо как с 2xMSAA, а TXAA 4x выше по качеству чем 8xMSAA, но по затратам производительности сопоставимо как с 4xMSAA. Отлично подходит для сглаживания в динамике.
TSSAA (Temporal Super Sampling Anti-Aliasing, Временная избыточная выборка сглаживания) — Этот метод, что и TXAA, только не привязан к видеокартам NVIDIA и завязана на суперсэмплинг.
Второй тип
Влияние на фпс слабое. Так называемые методы пост-обработки, когда сглаживание происходит в момент вывода изображения на экран.
FXAA (Fast approXimate Anti-Aliasing, Быстрое приблизительное сглаживание) — разработка NVidia. Из названия видно, что это более производительное сглаживание по-сравнению с традиционным MSAA. Алгоритм использует простой способ обнаружения разрыва цветов фигур. В момент вывода изображения на экран усредняются по цвету все соседние пиксели. Это не нагружает видеокарту, но жутко мылит кадр. Далекие и затуманенные объекты в игре будут почти не узнаваемы. Такое сглаживание имеет смысл включать на слабых машинах, ноутбуках, нетбуках и прочих эконом вариантах.
MLAA (MorphoLogical Anti-Aliasing, Морфологическое сглаживание) — условный аналог FXAA. Методика придумана компанией Intel. Алгоритм, ищет пиксельные границы на каждом кадре, похожие на Z, L и U буквы и смешивает цвета соседних пикселей, входящих в каждую такую часть. Алгоритм переведен на использование процессора, а не GPU. Отсюда можно рекомендовать его обладателям слабых видеокарт и с более менее производительным процессором. Из-за более сложного алгоритма изображение получается более качественным, чем с FXAA. Имеется реализация у AMD, но технически может использовать и NVidia. Есть проблема: сглаживание не отрабатывает на прозрачных текстурах. Поэтому в довесок этой постобработки нужно подключать еще и TrAA для улучшения изображения. Время обработки занимает 0,9 мс. Так же есть методики MLAA реализованные на GPU.
CMAA (Conservative Morphological Anti-Aliasing, Консервативное морфологическое сглаживание) — среднее между FXAA и SMAA 1x. Идеально подходит для слабых и средних графических процессоров. Отличие от FXAA происходит за счет обработки линий краев длиной до 64 пикселей. Используется алгоритм, с обрабатыванием только симметричных разрывов цветов, чтобы избежать ненужного размытия. Отличие от SMAA 1x происходит за счет менее полного сглаживания объектов, т.к. обрабатывается меньше типов фигур и обладает повышенной временной стабильностью, т.е меньше мерцаний объектов.
MFAA (Multi-Frame Sampled Anti-Aliasing, Мультикадровое сглаживание) — производится выборка двух сэмплов для каждого пикселя из текущего кадра и двух сэмплов из предыдущих, после чего применяетя фильтр. MFAA, по сути, соответствует 2xMSAA по нагрузке на видеокарту, но даёт качество картинки на уровне 4xMSAA. При этом этот метод работает примерно на 30 процентов быстрее. Падение производительности из-за фильтра минимальное. Для MFAA необходим определенный уровень частоты кадров, чтобы сглаживание можно было рассчитывать на основе двух кадров. NVIDIA утверждает, что частоты кадров 30-40 fps должно быть достаточно.
GPAA (Geometric Post-process Anti-Aliasing, Сглаживание с геометрической постобработкой) — в работе техники заложено копирование буфера с отрендеренными данными и повторной обработки ребер.
GBAA (Geometry Buffer Anti-Aliasing, Сглаживание с буфером геометрии) — усовершенствованный GPAA, в котором границы обрабатываются несколько иначе. За счет чего улучшена производительность.

Остальные методы
Долгожданный ответ AMD/ATIв виде целого семейства DirectX 10 ускорителей
в том числе и RADEON HD 2900 XT (R600)
Часть 4: Качество анизотропной фильтрации и антиалиасинга
СОДЕРЖАНИЕ
Появившиеся на свет полгода назад видеокарты Nvidia Geforce 8 принесли с собой не только ожидаемое увеличение производительности и поддержку нового API DirectX 10, но и ряд довольно неожиданных положительных изменений в функциях анизотропной фильтрации и антиалиасинга. Высоко оценив качество новых алгоритмов фильтрации и антиалиасинга видеокарт GF8800, мы с нетерпением ждали ответа компании AMD — логика подсказывала, что приятные неожиданности поджидают нас и в новых чипах бывшей канадской компании.
И вот линейка чипов R6x0 появилась на свет — несколько позже, чем все ожидали, но, быть может, опоздание оправданное? Как и в случае с GF8, изменения затронули как алгоритмы анизотропной фильтрации, так и алгоритмы антиалиасинга &msdash; первые чуть меньше, вторые — чуть больше.
Анизотропная фильтрация
Начнем с анизотропной фильтрации, благо, что изменения в ней весьма незначительны. По сути, из чипов R6x0 был просто убран сравнительно низкокачественный «умолчательный» режим AF, знакомый нам со времен легендарной видеокарты Radeon 9700, и оставлен лишь режим High Quality, впервые появившийся в видеочипах R5x0.
И, разумеется, в драйвере Catalyst остались весьма удачные (и отключаемые!) программные оптимизации Catalyst AI, уменьшающие область трилинейной фильтрации на некоторых текстурах.
Исходя из написанного выше можно предположить, что в своем максимальном качестве анизотропная фильтрация чипов Radeon HD 2000 будет чуть уступать анизотропной фильтрации видеокарт Geforce 8: подобный вывод мы сделали при сравнении HQ-режимов анизотропной фильтрации Radeon X1900 с анизотропной фильтрацией Geforce 8800, а HQ-режим AF Radeon X1900 ничем не отличается от единственного режима AF видеокарт Radeon HD 2000.
D3D AF-Tester
Давайте сначала при помощи программы D3D AF-Tester проверим, действительно ли анизотропная фильтрация Radeon HD 2000 повторяет по качеству HQ AF Radeon X1000:
GF7800 | GF7800 HQ | GF8800 | GF8800 HQ | RX1900 | RX1900 HQ | RHD2900 | |
1x | | | | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
2x | | | | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
4x | | | | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
8x | | | | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
16x | | | | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG |
Всё же некоторая разница между HQ AF Radeon X1900 и AF Radeon HD 2000 присутствует, но она ничтожна даже в этом синтетическом тесте, а в реальных играх заметить её будет вообще невозможно.
Вместе с тем, подтверждается наш предварительный вывод: начиная с режима 8x анизотропная фильтрация Radeon HD 2000, уступает по качеству AF Geforce 8 (на углах в 45 градусов). Однако разница эта невелика, и в реальных играх заметить её будет практически невозможно — в играх не всегда заметна разница между старой «цветочной» фильтрацией и новым высококачественным HQ-режимом; что уж говорить о ничтожной разнице в качестве фильтрации наклонных поверхностей между GF8 и RHD2000.
Прежде чем двигаться дальше, отметим еще один немаловажный момент: со времен Geforce 6 / Radeon × и по сей день дефолтный режим фильтрации (со включенными оптимизациями) на видеокартах Radeon обладает более высоким качеством (за счёт более высокого качества этих самых оптимизаций). Таким образом, в дефолтном режиме Radeon HD 2000 чуть превосходят по качеству анизотропии своих конкурентов линейки Geforce 8; а в режиме максимального качества наоборот, чуть им уступают.
Давайте посмотрим, насколько заметной будет разница в алгоритмах анизотропии в реальном игровом приложении.
S.T.A.L.K.E.R.: Shadow of Chernobyl
Вышедший два месяца назад «долгострой» S.T.A.L.K.E.R. обладает сравнительно большим количеством редких в наши времена больших однообразно текстурированных поверхностей, на которых лучше всего проявляются любые огрехи анизотропной фильтрации.
Geforce 7800 | Geforce 8800 | Radeon X1900 | Radeon HD2900 | |
16x | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
16x HQ | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG |
В «умолчательном» режиме 16x (мы не видим смысла тестировать менее качественные режимы AF — ничтожное падение производительности при использовании максимального режима не оставляет никакого смысла в использовании режимов ниже 16x) Radeon HD 2900 XT чуть проиграл в четкости текстур видеокарте Geforce 8800 GTS — сложно сказать, что обуславливает подобный результат, однако мы подозреваем, что дело здесь, скорее, в особенностях кода игры и работы пресловутых оптимизаций, нежели в разнице в алгоритмах анизотропии. Помните, что излишняя четкость текстур может привести к появлению «песка» и «шума» в динамике!
В целом в стандартном режиме карты по уровню качества фильтрации расположились следующим образом:
Предыдущее поколение Radeon наиболее пострадало от «цветочного» алгоритма анизотропии. Впрочем, мы и раньше отмечали, что «цветочная» анизотропия на Geforce 6/7 лучше справляется с фильтрацией «неудобных» наклонных поверхностей.
В режиме максимального качества алгоритмы анизотропной фильтрации Geforce 8800, Radeon X1900 и Radeon HD 2900 продемонстрировали схожий уровень качества, от которого ощутимо отстала видеокарта Geforce 7800, не оснащенная нормальным, не «цветочным» алгоритмом AF.
Обратите внимание также на крышу дома в левой части сцены (её не видно на фрагменте): парадоксальным образом лучше всего с муаром на текстуре крыши справилась видеокарта Geforce 7800 в режиме HQ. Вероятнее всего, крыша попала на один из «неудобных» для алгоритма AF GF7800 углов, и в режиме HQ её просто «размыло» недостаточной степенью AF, устранив столь необычным образом и неприятный муар.
Антиалиасинг
Алгоритмы антиалиасинга в Radeon HD 2000 претерпели существенно бОлее весомые изменения по сравнению с Radeon X1000, нежели алгоритмы анизотропной фильтрации.
Кратко эти изменения уже упоминались в первой, теоретической части нашего обзора, однако мы предлагаем разобрать их подробнее.
Новшества в алгоритмах AA Radeon HD 2000
Итак, все пертурбации в алгоритмах антиалиасинга можно собрать в три большие группы:
Рассмотрим их по порядку.
1. Изменения в алгоритме MSAA
Здесь всё просто: давно знакомый всем владельцам видеокарт Radeon режим MSAA 6x был заменен на режим MSAA 8x.
Судя по тому, что одновременно из драйвера пропал режим 6x, видеокарты Radeon HD 2000, как и Geforce 8, научились делать 4 Z-теста за такт, т.е. MSAA 4x теперь выполняется для каждого экранного пикселя за один такт работы видеочипа, а два такта требуется для расчета MSAA 8x.
Учитывая, что Radeon HD 2900 впервые в истории общедоступных 3D-видеокарт оснащен 512-битной шиной памяти, это решение выглядит совершенно логичным.
Давайте посмотрим на расположение субсэмплов в новом режим MSAA 8x при помощи утилиты DX9 FSAAViewer:
Geforce 7800 | Geforce 8800 | Radeon X1900 | Radeon HD2900 | |
2x | | | | |
4x | | | | |
8xS/8x/6x/8x | | | | |
Расположение субсэмплов в новом режиме MSAA 8x на Radeon HD 2000 не похоже ни на режим 6x на предыдущих видеочипах Radeon, ни на режим 8x видеокарт Geforce 8, однако вряд ли из этого можно делать какие-либо выводы в плане качества нового режима.
Отметим также, что Radeon HD 2000 сохранил присутствовавшую в видеокартах Radeon со времен чипа R300 возможность программирования паттернов MSAA через драйвер, и показанная здесь маска расположения субсэмплов в режиме 8x запросто может измениться в новых версиях Catalyst.
Любопытной особенностью видеокарт Radeon HD 2000 является также возможность программирования масок расположения субсэмплов не только из драйвера, но и из приложения, исполняющегося на видеокарте: подобная возможность заявлена в числе усовершенствований будущего обновления API DirectX 10. Другими словами, в области алгоритма MSAA Radeon HD 2000 являются совместимыми не только с DX10, но и с будущей версией этого API.
2. Добавление режимов CFAA
Что такое CFAA (Custom Filter AA)? Приведем еще раз картинку из первой части нашего обзора:
По сути, CFAA — это программное управление алгоритмом смешивания значений цвета субпикселей MSAA в один итоговый цвет экранного пикселя. Radeon HD 2000 позволяет не только задавать охват субпикселей для расчета цвета экранного пикселя, но и присваивать субпикселям разные весовые коэффициенты. Что это даёт мы поясним чуть позже.
Любопытно, что возможность программного управления алгоритмами смешивания субпикселей также значится в числе усовершенствований будущей новой версии API DirectX — весьма вероятно, что управлять этим алгоритмом на Radeon HD 2000 могут не только драйверы, но и приложения — однако для этого необходимо дождаться новой версии API DirectX, известной сейчас под кодовым названием DX 10.1.
Однако, новая версия DX появится еще не скоро, и AMD предлагает использовать CFAA уже сегодня посредством форсирования одного из трёх доступных режимов даунсэмплинга в панели управления драйвером:
Указать тип фильтрации субпикселей можно для всех доступных режимов MSAA — 2x, 4x и 8x (что, по сути, даёт нам 3х3=9 вариантов антиалиасинга).
Box filter — это стандартный тип даунсэмплинга, используемый ранее во всех режимах MSAA Radeon и Geforce (про Geforce см. ниже). В этом фильтре для расчёта итогового значения цвета экранного пикселя используются только субпиксели, непосредственно относящиеся к этому экранному пикселю. Никакие весовые коэффициенты не применяются, все субпиксели обладают одинаковым значением при вычислении цвета итогового пикселя.
Narrow tent и Wide tent — это новые режимы даунсэмплинга Radeon HD 2000. Эти режимы при вычислении значения цвета экранного пикселя выбирают данные не только из субпикселей самого пикселя, но и из субпикселей окружающих пикселей, и отличаются, по сути, лишь размером зоны захвата за пределами границ пикселя, да, возможно, значениями весовых коэффициентов. Можно предположить, что субпиксели самого пикселя обладают более весомым вкладом в расчет значения его цвета, нежели субпиксели, захваченные «зонтиком» фильтра за пределами его границ.
Важно понимать, что CFAA не является новым типом антиалиасинга, это всего лишь «оптимизация» одной из стадий стандартного конвейера расчетов MSAA — стадии вычисления значения цвета экранного пикселя из значений цветов субпикселей MSAA. CFAA не добавляет новых субпикселей, не увеличивает количество информации, на основе которой рассчитывается MSAA, он лишь видоизменяет формулу этих вычислений.
Включение в расчет значения итогового пикселя информации из субпикселей, не входящих в этот пиксель, приводит лишь к одному: «смазыванию» картинки, появлению «мыла». Это «мыло», несомненно, повышает качество сглаживания границ треугольников, однако оно же понижает детализацию текстур и шейдерных эффектов.
Необходимо отметить, что компания AMD далеко не первая в деле добавления подобных алгоритмов AA в свои продукты: весной далекого 2001-го года компания Nvidia представила видеокарту Geforce 3 и «новый» алгоритм AA — Quincunx. Quincunx использовал аналогичный CFAA принцип: он «захватывал» значения субпикселей соседних пикселей при вычислении цвета итогового пикселя. Более того, в драйверах Nvidia довольно долгое время фигурировал «скрытый» режим 4x9tap, осуществлявший то же самое, и отличавшийся от Quincunx лишь количеством субпикселей, попадающих в зону «захвата».
Да, CFAA куда более продвинут, нежели алгоритмы старых чипов Nvidia, однако базовый принцип одинаков, а значит одинаков и базовый недостаток — «замыливание» картинки, снижение детализации текстур и эффектов.
Продемонстрируем это «замыливание» при помощи всё той же утилиты DX9 FSAAViewer:
8x | |
8xNT | |
8xWT | |
Да, «замыливание» не слишком велико, однако оно есть, и у нас есть основания предполагать, что в реальных играх оно будет еще более заметным.
3. Появление метода Edge Detect
Сразу скажем самое главное: метод Edge Detect практически не поддерживается текущей версией драйвера для Radeon HD 2900 XT. «Практически» потому что буквально за несколько дней до завершения NDA компания AMD разослала журналистам утилиту, позволяющую включить этот метод и оценить его качество в сравнении с другими режимами и режимами антиалиасинга видеокарт конкурента. Разумеется, использовать подобный «хак» в тестах производительности бессмысленно, да и тесты качества такой «сверхальфа-версии» алгоритма выглядят несколько сомнительными.
Нам непонятна причина, по которой столь интересное нововведение линейки Radeon HD 2000 оказывается, фактически, неработоспособным в момент начала продаж видеокарт линейки. Мы можем лишь высказать предположение, что Edge Detect не является в полном смысле новым «железным» алгоритмом AA Radeon HD 2000, а, скорее, использует продвинутые возможности программирования чипов R6x0 в области AA — и делает это сугубо потому что, что для компании AMD стало сюрпризом появление в видеокартах Geforce 8 алгоритма CSAA. Соответственно, разработка ответа на CSAA началась лишь в конце прошлого года — поэтому EDAA (это название мы придумали сами!) и пребывает сейчас в том состоянии, в котором пребывает.
Вместе с тем, основополагающая идея EDAA весьма любопытна: алгоритм вычисляет пиксели, попадающие на границы контрастных цветовых переходов, и резко увеличивает количество субпикселей, по которым рассчитывается значение их цвета. При этом пиксели, вариация цветовой информации в субпикселях которых незначительна, содержат существенно меньшее количество субпикселей, что позволяет экономить производительность, память и применять AA там, где он реально нужен.
К сожалению, AMD не раскрывает технических подробностей работы алгоритма ED, и приведенное выше описание его функционирования сделано нами самостоятельно на основании информации от AMD о том, к чему приводит использование этого алгоритма. Так, AMD заявляет, что EDAA сглаживает не только края треугольников, но и края стенсильных теней и даже пиксели внутри текстур и шейдерных поверхностей, что позволяет предполагать, что алгоритм ED использует в своей работе информацию о цвете субпикселей, а не об их Z-значении (последнее используется в алгоритме CSAA видеокарт Geforce 8).
И прежде чем переходить к оценке качества антиалиасинга в реальных играх еще раз напоминаем: режимы EDAA (12x и 24x) в нашем тесте приведены лишь «для ознакомления». Мы не можем гарантировать, что финальные версии этих режимов не будут разительно отличаться по своему качеству от тех, что вы увидите ниже.
Far Cry
Начнем, по традиции, с Far Cry: в этой уже сравнительно старой игре есть огромное количество резких контрастных переходов, на которых особенно хорошо проявляется любой алгоритм антиалиасинга.
Geforce 7800 | Geforce 8800 | Radeon X1900 | Radeon HD2900 | |
2x | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
4x | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
8x/6x | — | | | — |
JPG | PNG | JPG | PNG | |||
8xS/8xQ/8x | | | — | |
JPG | PNG | JPG | PNG | JPG | PNG | ||
16x/12x | — | | — | |
JPG | PNG | JPG | PNG | |||
16xQ/24x | — | | — | |
JPG | PNG | JPG | PNG |
Итак, первые же результаты довольно странные. Если в режимах 2х, 4х и 8xQ/8x обошлось без сенсаций (низкое качества сглаживания железного бруса на видеокартах Radeon в режиме 4x обусловлено неудачным для этих видеокарт наклоном «арматуры» на фрагменте), то дальше начинается нечто непонятное.
Режим 12x уступает по качеству не только режиму 16x видеокарты GF8800, но и собственному режиму 8x видеокарты Radeon HD 2900 XT! Режим 24x, по сути, всего лишь возвращается к качеству режима 8x, и безоговорочно уступает не только режиму 16xQ, но и режиму 16x видеокарты GF8800! При этом после активизации режимов 12x и 24x мы наблюдали на RHD2900XT тормоза, более присущие видеокарте позапрошлого поколения.
Мы вынуждены констатировать, что в этом тесте GF8800 разбила конкурента в плане качества «в сухую». Максимальный «официально доступный» режим 8x примерно сопоставим с режимами 8x/8xQ на GF8800, крыть же режимы 16x и 16xQ Radeon HD 2000 оказывается нечем — EDAA то ли пока слишком сырой, то ли просто не включился, то ли демонстрирует совершенно неприемлемый для вызываемого падения производительности уровень качества в этом тесте.
Но прежде чем двигаться к следующему приложению, давайте взглянем на работу CFAA в Far Cry:
8x | 8xNT | 8xWT |
| | |
JPG | PNG | JPG | PNG | JPG | PNG |
Отлично видно, что включение фильтра Wide Tent позволяет существенно улучшить качество режима 8x в плане сглаживания границ треугольников. Однако, что при этом происходит с текстурами.
8x | 8xNT | 8xWT |
| | |
JPG | PNG | JPG | PNG | JPG | PNG |
Как мы и опасались, текстуры существенно теряют в своей детализации (обратите внимание: при снятии этих скриншотов использовался Adaptive AA Quality, сглаживающий прозрачные текстуры; в случае его отключения «мыло» будет еще более заметным).
Возможно, для кого-то подобная потеря четкости текстур будет приемлема — в этом случае CFAA служит неплохим инструментом повышения качества сглаживания границ треугольников. Как бы там ни было, наличие подобной опции лучше её отсутствия, поэтому мы склонны записать CFAA в плюс видеокартам Radeon HD 2000, хотя практическая полезность этой опции вызывает у нас массу сомнений.
Больше тестировать CFAA мы не будем, потому как, на наш взгляд, приведенной выше информации вполне достаточно, чтобы самостоятельно сделать вывод о том, насколько этот режим полезен и востребован для вас лично.
The Elder Scrolls 4: Oblivion
Перейдем к существенно более новой игре, которая, вдобавок, использует FP16 HDR — у нас есть основания думать, что таких игр будет всё больше и больше, и поэтому оценить качество AA при использовании FP16 HDR особенно интересно.
Geforce 8800 | Radeon X1900 | Radeon HD2900 | |
2x | | | |
JPG | PNG | JPG | PNG | JPG | PNG | |
4x | | | |
JPG | PNG | JPG | PNG | JPG | PNG | |
8x/6x | | | — |
JPG | PNG | JPG | PNG | ||
8xQ/8x | | — | |
JPG | PNG | JPG | PNG | ||
16x/12x | | — | |
JPG | PNG | JPG | PNG | ||
16xQ/24x | | — | |
JPG | PNG | JPG | PNG |
Из числа тестируемых видеокарт естественным образом исчезла не поддерживающая AA для FP16-буферов Geforce 7800.
Остальные видеокарты расположились в довольно любопытной последовательности: вплоть до самых старших режимов 16xQ/24x мы не наблюдаем существенной разницы в качестве AA! Режимы 2x, 4x, 8x/6x, 8xQ/8x, 16x/12x оказываются очень близкими по своему качеству.
В противостоянии же топовых режимов 16xQ и 24x вперед достаточно неожиданно (после результатов в Far Cry) вырвался Radeon HD 2900 XT! Разумеется, когда речь идет о сравнении подобных режимов, разницу нужно искать с лупой, однако новый Radeon чуть-чуть лучше справился со сглаживанием «гребешка» крыши. Любопытно также отметить, что производительность режима 24x была в целом приемлемой — fps был вполне играбельным.
И снова мы не знаем, какой сделать вывод: является ли подобное поведение EDAA в Far Cry следствием ошибки в драйвере или подобная картина сохранится и будущем? Если Oblivion демонстрирует реальное качество и производительность EDAA, то следует признать, что Radeon HD 2000 неплохо справляются с противостоянием алгоритму CSAA видеокарт GF8 и, при использовании режима 24x, даже несколько превосходят их по качеству.
Half-Life 2: Episode One
Последняя игра в нашей части обзора не только использует HDR (правда, INT16, меньшего качества, зато более быстрый и совместимый с AA и на NV40+/R300+), но содержит сравнительно большое количество контрастных прозрачных текстур, на которых можно проверить работу алгоритмов Transparency AA/Adaptive AA.
Transparency AA Multisampling / Adaptive AA Performance
Сначала давайте посмотрим на работу алгоритмов низкого качества: TAA Multisampling / AAA Performance:
Geforce 7800 | Geforce 8800 | Radeon X1900 | Radeon HD2900 | |
2x | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
4x | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
8x/6x | — | | | — |
JPG | PNG | JPG | PNG | |||
8xS/8xQ/8x | | | — | |
JPG | PNG | JPG | PNG | JPG | PNG | ||
16x/12x | — | | — | |
JPG | PNG | JPG | PNG | |||
16xQ/24x | — | | — | |
JPG | PNG | JPG | PNG |
Первым в глаза бросается разница в яркости тумана: GF7800/RX1900 отличаются от GF8800, но хуже всего дела обстоят на RHD2900. Это ошибка приложения, которую компания Valve не может исправить уже полгода: на первых драйверах для GF8800 туман выглядел, как на RHD2900; затем Nvidia попыталась обойти эту ошибку драйверами (что, как вы видите, не слишком ей удалось); AMD же попала сейчас в ту же самую ловушку, что и Nvidia полугодием ранее.
Если абстрагироваться от тумана, то можно еще раз озвучить вывод о бесполезности TAA MS на Geforce для сглаживания MIN-фильтрованных прозрачных текстур (какой-то толк от него есть только при MAG-фильтрации, т.е. при увеличении текстуры на экране относительно её исходного размера в пикселях; в целом, TAA MS срабатывает в старых играх с текстурами небольшого размера, и оказывается бесполезным в играх новых), и отметить выпадение режима 12х на RHD2900 из ряда повышения качества вместе с ростом «номера» режима: сглаживание прозрачных текстур AAA Performance в режиме MSAA 8x оказывается более качественным, нежели в режиме EDAA 12x.
Transparency AA Supersampling / Adaptive AA Quality
Посмотрим, что получается в случае использования качественного режима сглаживания прозрачных текстур:
Geforce 7800 | Geforce 8800 | Radeon X1900 | Radeon HD2900 | |
2x | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
4x | | | | |
JPG | PNG | JPG | PNG | JPG | PNG | JPG | PNG | |
8x/6x | — | | | — |
JPG | PNG | JPG | PNG | |||
8xS/8xQ/8x | | | — | |
JPG | PNG | JPG | PNG | JPG | PNG | ||
16x/12x | — | | — | |
JPG | PNG | JPG | PNG | |||
16xQ/24x | — | | — | |
JPG | PNG | JPG | PNG |
В этом режиме всё идёт более «ровно», и все видеокарты демонстрируют сопоставимое качество сглаживания прозрачных текстур по мере повышения степени AA.
Выводы по качеству
Итак, новая линейка видеокарт компании AMD как минимум не ухудшила, а, скорее всего, заметно улучшила уровень качества, демонстрируемый ранее её предшественниками.
Анизотропная фильтрация, хоть и незначительно уступает в своём максимальном качестве AF современных видеокарт конкурента, обладает более чем достаточным для трехмерных игр уровнем качества. Небольшие огрехи AF на наклоненных на 45 градусов плоскостях в реальных играх вряд ли будут заметны.
В целом, качество анизотропной фильтрации находится на уровне качества AF видеокарт конкурента, и определить лидера здесь практически невозможно.
С антиалиасингом дело обстоит чуть сложнее, потому как самый интересный режим Edge Detect на момент анонса видеокарт линейки Radeon HD 2000, по сути, пребывает в нерабочем состоянии. Поэтому выводы по качеству антиалиасинга мы делим на две части:
А поскольку оптимизм лучше пессимизма, то мы склоняемся к варианту №2, и заочно вручаем Radeon HD 2000 приз за самый качественный режим AA (EDAA 24x) среди современных пользовательских 3D-видеокарт. Однако рекомендуется помнить, что — по крайней мере в области сглаживания границ треугольников — режим 16xQ видеокарт Geforce 8 остает очень и очень незначительно.
Таким образом, мы можем констатировать, что и по анизотропии, и по антиалиасингу между видеокартами Geforce 8 и Radeon HD 2000 наблюдается примерный паритет в плане качества. И это прекрасно, потому что покупатель выигрывает при любом выборе!