ATI vs nVidia

test_lab (test_lab@gameland.ru)

Xakep, номер #061, стр. 061-016-4


Мипмеппинг

Описанный выше метод не избавляет от искажений, связанных с ошибками определения глубины сцены. Для решения этой проблемы был разработан метод мипмеппинга (mip-mapping). Суть его состоит в том, что для более или менее удаленных объектов используются текстуры с разным уровнем детализации (уровни мипмеппинга). То есть для каждой текстуры создаются ее уменьшенные копии и накладываются на более удаленные полигоны. Однако это создает новую проблему - часто могут быть различимы границы перехода от текстуры с одним уровнем деталей к другой, что создает эффект полосатости.

Трилинейная фильтрация

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

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

Анизотропная фильтрация (anisotropic filtering) учитывает положение полигона относительно точки наблюдения. Это можно сравнить с изменением формы светового пятна, отбрасываемого на ровную поверхность карманным фонариком - если светить прямо перпендикулярно, то пятно света круглое, если же под углом - эллиптическое. В других упомянутых способах фильтрации использовались области из четырех текселей, что можно считать донельзя упрощенным вариантом круга, тогда как при анизотропной фильтрации применяются приближения формы эллипса для различных углов зрения. Таким образом, форма области текселей, определяющая цвет пикселя, не является постоянной (анизотропна) и зависит от угла зрения.

Теперь, поняв основные способы наложения текстур, можно проанализировать их влияние на производительность. Как мы уже упоминали, текстуры могут храниться в памяти видеоустройства или в оперативной памяти компьютера. Последний вариант стал возможен благодаря технологии AGP, которая позволяет видеокарте обращаться к оперативной памяти напрямую, а не через шину PCI, как это было раньше. Стало быть, нет необходимости устанавливать большие объемы дорогостоящей видеопамяти, устройство больше не зажато в рамки пропускной способности шины PCI, а пропускная способность является одним из ключевых моментов при наложении текстур. Почему? Чтобы понять это, достаточно представить себе, сколько текселей придется считать из памяти для того, чтобы получить изображение одного пикселя. В случае билинейной фильтрации, к примеру, нужно выбрать из памяти 4 текселя для определения цвета каждого пикселя, а всего таких пикселей у нас, скажем, 1024х768, то есть 786432. Да при том каждую секунду таких кадров надо сформировать в среднем 40. А при трилинейной фильтрации надо считать из памяти в два раза больше текселей. Что и говорить про анизотропную фильтрацию, при которой прежде чем считать некоторое количество текселей, нужно еще затратить ресурсы, чтобы определить, какие именно.

Назад на стр. 061-016-3  Содержание  Вперед на стр. 061-016-5