ATI vs nVidia

test_lab (test_lab@gameland.ru)

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


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

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

Как же происходит наложение текстур? Разумеется, читатель знает, что изображение на экране монитора представляется набором пикселей. С другой стороны, текстуры также состоят из пикселей, которые обозначают специальным термином - тексель (texel). Это вносит определенность, и становится ясно, идет ли речь о пикселе экрана или же о пикселе текстуры.

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

Чтобы представить это более наглядно, достаточно вообразить себе некую гипотетическую плоскую поверхность, на которую наложена какая-то текстура. Допустим, что поверхность эта как бы прислонена к экрану изнутри, то есть каждый тексель однозначно отображается в пиксель такого же цвета. Фактически это равносильно тому, что мы просто вывели на экран плоское изображение текстуры. Но что же будет, если эта поверхность начнет "заваливаться" назад, как если бы кто-то поставил на стол толстую книгу обложкой к себе и подтолкнул ее? Очевидно, что теперь идеальность нашего отображения разрушится. Верхняя часть поверхности начнет быстро удаляться от зрителя, и придется выбирать цвет каждого пикселя на экране при прорисовке каждого кадра. Тут все зависит от применяемого метода (техники) наложения текстуры.

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

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

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

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