Яке основне міркування для антизбудження з використанням декількох випадкових зразків у межах пікселя?


12

У графіці прийнято брати кілька зразків у межах пікселя та поєднувати їх разом (найчастіше це просто середнє значення) для остаточного кольору піксельного зразка. Це спричиняє антизбудження зображення.

З одного боку, це має сенс для мене, оскільки те, що ви ефективно робите, - це інтегрування кольору пікселя в область, яку представляє піксель. У такому напрямку мислення усереднення "випадкових" зразків представляється ідеальною схемою для інтеграції Монте Карло. ("випадковий" може бути стратифікований, на основі синього шуму, низької послідовності дискрецій тощо)

З іншого боку, з точки зору обробки цифрових сигналів це неправильно (або принаймні не так правильно, як це могло б бути). З цієї точки зору, здається, що ми беремо багато зразків, а потім знижуємо вибірку за допомогою фільтра коробки (розмиття поля), щоб отримати остаточне значення пікселя. У цьому світлі, мабуть, ідеальною річчю було б використовувати фільтрування sinc замість усереднення зразків. Я міг бачити, що бочковий фільтр - це дешевша апроксимізація для того, щоб мислити за цим принципом.

Це залишає мене трохи розгубленим. Чи є основна ідея, що ми інтегруємо піксельну область і усереднення є правильним? Або це те, що ми перебуваємо в режимі пониження тиску і мусимо використовувати sinc, але використовуємо фільтр, тому що це швидко?

Або це щось інше цілком?

Трохи пов’язані з цим: « Згладжування / фільтрування в режимі Tracing Tracing


Тут я знаходжу кілька відповідей: groups.csail.mit.edu/graphics/classes/6.837/F04/lectures/…
Алан Вулф

Відповіді:


9

З точки зору обробки сигналів, ви відбираєте сигнал безперервного домену, і вам потрібно відфільтрувати його, щоб позбутися від частоти, що перевищує межу Найквіста. Це те фільтрування, яке призводить до інтеграції в піксельній області, або, загалом, до інтеграції через підтримку вашого антиалізійного ядра (яке не повинно бути полем).

Розглянемо вашу функцію візуалізації, яка займає зразок точки у просторі екрану і повертає колір, знайдений у цій точці. (Давайте ігноруємо будь-які проблеми випадкової вибірки на даний момент, і припустимо, що вона повертає "ідеальний" наданий колір для цієї конкретної точки.) Ця функція ефективно визначає 2D сигнал безперервного домену. Або кажучи інакше, він визначає зображення нескінченної роздільної здатності , оскільки ніщо не заважає цій функції мати функції у довільно малих масштабах. Щодо частотної області: функція не обмежена смугами; він може включати компоненти довільно високих просторових частот.x,y

Тепер ви хочете перетворити його на обмежену кількість пікселів. Подібно до оцифрування аудіосигналу, коли ви відбираєте його, ви отримаєте згладжування, якщо спочатку не усунете частоти, що перевищують ліміт Найквіста, накладений частотою дискретизації. Іншими словами, ви повинні позбутися функцій, менших за піксельну сітку. Для цього ви застосовуєте фільтр низьких частот. Ідеальний фільтр нижніх частот є сінк функції, але з різних причин практичності ми використовуємо інші фільтри (які не повністю усунути частоти понад межі Найквіст, але вони , по крайней мере , послабити їх).

Низькочастотна фільтрація проводиться за допомогою згортки. Якщо - функція візуалізації, а - ядро ​​фільтра, то ми можемо визначити низькопрохідне відфільтроване зображення як:k ( x , y )f(x,y)k(x,y)

ffiltered(x,y)=f(x,y)k(xx,yy)dxdy

Тоді зображення безпечно для вибірки, тому остаточні значення пікселів отримують шляхом простої оцінки за піксельними координатами.ffiltered

Якщо - фільтр коробки, який виглядає як в піксельній коробці, а іншому місці, то це спрощує просто інтеграцію над піксельною коробкою. Але, як зазначалося, коробний фільтр не настільки великий, і є кращі варіанти, такі як наметний, двостулковий та гауссовий фільтри.k = 1 k = 0 fkk=1k=0f

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


Відмінна відповідь, як завжди.
ivokabel

4

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

Мені знадобилося чимало часу, щоб погодитися з цим поясненням. Те, що мені допомогло, - це документ Тоні Аподаки під назвою «Лори ТД» .


Дякуємо за чудове посилання! останнє посилання на цій сторінці, здається, занурилося прямо в це. На практиці, чи знаєте ви, чи дійсно щось над розмиттям коробки дає велику візуальну різницю? Або це дало б якийсь стимул до конвергенції?
Алан Вулф

2
Її найкращий ґрунтовник для 3D-графічних концепцій візуалізації, який я коли-небудь бачив (жорстке - це не стільки про фізичну основу, чи про трасування матеріалів, але все одно). Фільтровані в синхронізуванні зображення набагато чіткіше, ніж коробчастий фільтр надає дуже розмитий вигляд Чи швидше воно збіжиться, я сумніваюся.
joojaa

Схоже, це посилання зараз відсутнє. Яку назву ви назвали найкращим 3d читачем?
johnbakers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.