Методы полного анти-алиасинга

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

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

Стоит отметить, что если каждый пиксель из области с текстурами, рассчитывается на основании нескольких "честных" субпикселей (т.е., не взятых у другого пикселя), то это весьма положительно сказывается на качестве. Чтобы объяснить почему, необходимо сделать небольшое отступление и рассказать о текстурах.

Текстура - это рисунок, имеющий определенное разрешение, допустим 256х256 точек. Если он накладывается на большой (или близкий) объект, занимающий область примерно 256х256, то все в порядке. А вот что делать, если объект занимает область, намного меньшую, чем разрешение текстуры, например 128х128? В этом случае, на один реальный пиксель приходится 4 текселя (так называется один пиксель текстуры) и физического разрешения не хватает для вывода текстуры. В обычном режиме, ускоритель снижает качество (разрешение) текстуры. Эта техника называется LOD (Level Of Detail) Biasing. К сожалению, она далеко не идеальна: текстуры упрощаются гораздо больше, чем необходимо потому, что метод применяется для всех текстур сразу, на определенном расстоянии от экрана, без учета размера объектов, на который они наложены и без учёта их разрешения. К счастью, уровень LOD Biasing можно изменять, т.е. текстуры с увеличением расстояния от наблюдателя будут упрощаться сильнее или слабее. Если LOD Biasing уменьшить, то текстуры будут упрощаться слабее, т.е. их четкость на удалении будет намного выше. Но, если слишком занизить Biasing, то на удаленных объектах появляется артефакт, называемый "дрожание текстур", "шум текстур", "песок" и пр. Выглядит это так: пиксели как будто разбросаны и явно находятся не на своем месте, причем, во время движения сцены, пиксели хаотично прыгают на новые места, в результате чего, на удаленных текстурах заметен шум, немного напоминающий то, что мы видим на экране телевизора после того, как канал прекратил свое вещание. Этот артефакт вызван тем, что текстура имеет большее разрешение, чем область экрана, отведенная для ее изображения.

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

Другие публикации

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

Анти-алиасинг изображения
Как следует из приставки "анти", эта технология призвана бороться с алиасингом. Что же это такое? Не так давно, слова "алиасинг" и "анти-алиа ...

Меню

Copyright @2020, TECHsectors.ru.