Журналистское расследование: трюки ati с оптимизацией текстурной фильтрации

Журналистское расследование: трюки ati с оптимизацией текстурной фильтрации

Введение

В случае если делать выводы по данным на форумах и из статей в сети, то ATi хитрит с трилинейной фильтрацией текстур на новом графическом процессоре X800. Но, находятся и яростно защищающие ATi.

По большому счету, подобные дискуссии напоминают нам скандал годовалой давности, который связан с nVidia.

Предлогом для столь тёплого дискуссии стала статья на немецком сайте Computerbase. В ней было продемонстрировано, как ATi применяет оптимизированную трилинейную фильтрацию текстур, довольно часто именуемую брилинейной (brilinear) из-за смеси билинейной и трилинейной фильтраций, в графических процессорах Radeon 9600 и X800. Новость вправду стала ошеломляющей, поскольку ATi постоянно твердила о применении настоящей трилинейной фильтрации.

Но как обстановка выглядит в действительности?

Это — оптимизация, хитрость либо легко разумное ответ? Дабы делать выводы, нам нужно углубиться в технологии разных способов фильтрации. И первая часть статьи будет посвящена этому, причём, кое-какие технологии мы изложим очень упрощённо, дабы уложиться в пара страниц. Итак, давайте посмотрим на базисные и принципиальные функции фильтрации.

Это сравнение чётко демонстрирует, как верная фильтрация усиливает уровень качества картины.

Множественное отображение текстуры (mipmapping)

Текстурная фильтрация, о которой мы говорим в данной статье, применяет пара уровней множественного отображения текстур (mipmap). Под термином множественное отображение мы подразумеваем применение одной и той же текстуры, но различных размеров. Представьте, что вы находитесь в долгом коридоре, пол которого покрыт паркетом до горизонта.

Для реалистичного отображения паркета те квадратики, каковые находятся близко к наблюдателю, должны быть очень сильно детализованы. Но чем ближе к горизонту, тем квадратики (и текстура) становятся меньше и меньше — другими словами они отображаются меньшим числом пикселей. Наряду с этим теряются подробности типа швов между квадратиками, поскольку драйвер видеокарты не знает, какие конкретно подробности в текстуре являются серьёзными.

Множественное отображение усиливает уровень качества графики, применяя текстуры, каковые уменьшаются вдвое по мере удаления от наблюдателя. Переход с одного mip-уровня на другой задаётся так называемым уровнем детализации текстур Texture LOD (Level Of Detail).

Текстура с множественным отображением.

Обе части экрана показывают изображение с билинейной фильтрацией. Слева мы продемонстрировали различные mip-уровни множественного отображения текстуры. Вы имеете возможность подметить характерные артефакты на правой части экрана при переходе с одного mip-уровня на другой.

Но, для получения приличного результата графической карте приходится делать не только множественное отображение, потому, что возможность текстуры при приближении к горизонту искажается, и чем дальше текстура находится от наблюдателя, тем она должна быть меньше. Без фильтрации текстуры (это именуется режимом point sampling) вы получите весьма пикселизованное изображение. Представьте снова долгий коридор.

Чем дальше квадратик паркета находится от наблюдателя, тем меньше пикселей по горизонтали доступно для его отображения, поскольку коридор сходится из нижней части экрана к центру.

Тут продемонстрирован кадр из игры, близкий к нашему примеру с коридором. Вы имеете возможность наглядно видеть, что возможность требует различного масштаба.

Следующий раздел статьи показывает, как множественное отображение противодействует пикселизации, позванной масштабированием. Для демонстрации мы применяли тест текстурной фильтрации 3DMark 2003 (версия Pro):

Левая часть картины выведена без множественного отображения. Вам может показаться, что она выглядит более чётко.

Вправду так, но без текстур различных размеров вы получите мерцание с громадным числом шума — на ходу это выглядит легко плохо. Вы имеете возможность сами попытаться отключить множественное отображение в играх, базирующихся на движке Q3. Выставьте режим r_textureMode в GL_LINEAR для отключения множественного отображения с активной линейной фильтрацией, GL_NEAREST для point sampling без разработки множественного отображения и GL_NEAREST_MIPMAP_NEAREST — для множественного отображения с разработкой point sampling.

Кроме этого направляться подчернуть, что mip-уровни текстур необязательно должны поставляться вместе с игрой. Современные видеоплаты смогут сами создавать mip-текстуры из базисной текстуры.

Случайная статья:

Оптимизация ПК. Поднятие производительности ПК. Увеличение скорости системы и поднятие FPS \ ФПС


Похожие статьи:

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.