AMD/ATI также не стоят на месте. И как обычно, идут к новым вершинам своим путём, отличным от того, что выбрала NVIDIA.
С выходом видеокарт R600 (Radeon HD 2000), AMD/ATI представила новую разновидность антиалиасинга - CFAA (Custom Filter Anti-Aliasing). Его идея заключается в том, чтобы делать resolve не в blit engine видеокарты, а в программируемом шейдерном процессоре, т. к. Direct3D 10 железо способно читать отдельные color сэмплы из текстуры (отдельные depth сэмплы - в Direct3D 10.1). C появлением CFAA видеокарты AMD/ATI владеют cледующими программируемыми фильтрами выборки:
1. Box filter.
2. Narrow tent.
3. Wide tent.
4. Adaptive edge detect.
Нужно сказать, что последний вариант появился только с выходом RV770, потом поддержка распространилась и на предыдущее поколение DX10 видеокарт.
Box filter это стандартный способ выборки нескольких сэмплов в пределах границ фрагмента. Ниже изображён вариант 8xMSAA:
Narrow tent делает выборку 50% дополнительных сэмплов за границами фрагмента. Вариант 12xCFAA:
Wide tent работает так же, как и Narrow tent, но делает выборку 100% дополнительных сэмплов. Т. е. при 8x мультисэмплинге делается выборка из 16 сэмплов (16xCFAA):
Фильтры narrow tent и wide tent как способы сглаживания изображения не являются идеологически правильными, т. к. выборка за пределами фрагмента приводит не только к сглаживанию границ, но и к размытию изображения. AMD не вдаётся в подробное объяснение работы фильтров, но скорее всего усреднение происходит на основе весов, где центральные сэмплы имеют наибольшие веса, а удалённые от центра - наименьшие.
Последний и наиболее продвинутый фильтр - adaptive edge detect:
Программируемый фильтр выборки в случае использования этого режима осуществляет выборку сэмплов только в районе границы трегольника. Это повышает качество сглаживания, что особенно хорошо заметно на мелких деталях и позволяет избежать излишнего «замыливания», свойственного предыдущим фильтрам. AMD заявляет, что edge detect сглаживает не только края треугольников, но и края стенсельных теней и даже пиксели внутри текстур, что позволяет предполагать, что алгоритм использует в своей работе информацию о цвете сэмплов, а не об их Z-значениях. Расход видеопамяти остаётся таким же, как в случае использования обычных режимов MSAA 4x и 8x. В режиме 4xMSAA производится 12 выборок, а в 8xMSAA - 24. Следует отметить, что в последнем случае производительность видеокарты существенно "проседает".
Ниже приводится таблица возможных CFAA-фильтров:
Mode Filter
4x CFAA 2x + Narrow Tent
6x CFAA 2x + Wide Tent or 4x Narrow tent
8x CFAA 4x + Wide Tent
12x CFAA 8x + Narrow Tent
16x CFAA 4x + Wide Tent
24x CFAA 8x + Edge Detect
воскресенье, 6 сентября 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
"идеологическая правильность" метода зависит не от выборки за пределами пикселя, а от весов, т.е. от формы фильтра
ОтветитьУдалить