Dalam grafik, adalah umum untuk mengambil beberapa sampel dalam batas-batas piksel dan menggabungkannya bersama-sama (umumnya hanya melakukan rata-rata) untuk warna piksel sampel akhir. Ini memiliki efek anti aliasing gambar.
Di satu sisi ini masuk akal bagi saya karena apa yang Anda lakukan secara efektif adalah mengintegrasikan warna piksel di atas area yang diwakili piksel. Dalam alur pemikiran ini, rata-rata sampel "acak" tampaknya merupakan pengaturan yang ideal, untuk melakukan integrasi monte carlo. ("acak" dapat distratifikasi, berbasis noise biru, urutan perbedaan rendah dll)
Di sisi lain, ini terasa salah (atau setidaknya tidak seakurat mungkin) dari sudut pandang pemrosesan sinyal digital. Dari sudut pandang itu, rasanya seperti kami mengambil banyak sampel dan kemudian downsampling menggunakan kotak filter (kotak blur) untuk mendapatkan nilai piksel akhir. Dalam hal itu, sepertinya hal yang ideal untuk dilakukan adalah menggunakan penyaringan sinc daripada rata-rata sampel. Saya bisa melihat bahwa filter kotak adalah pendekatan yang lebih murah untuk pemikiran yang tulus di sepanjang garis-garis ini.
Ini membuat saya sedikit bingung. Apakah ide inti bahwa kami mengintegrasikan area piksel dan rata-rata sudah benar? Atau apakah kita downsampling dan harus menggunakan sinc, tetapi menggunakan filter kotak karena cepat?
Atau itu sesuatu yang lain sama sekali?
Sedikit terkait: Anti-aliasing / Filtering di Ray Tracing
sumber
Jawaban:
Dari sudut pandang pemrosesan sinyal, Anda mengambil sampel sinyal domain kontinu, dan Anda perlu memfilternya untuk menghilangkan frekuensi di luar batas Nyquist. Penyaringan inilah yang mengarah pada pengintegrasian area pixel — atau lebih umum, pengintegrasian atas dukungan kernel antialiasing Anda (yang tidak harus berupa kotak).
Sekarang Anda ingin mengonversinya ke jumlah piksel yang terbatas. Sama seperti mendigitalkan sinyal audio, ketika Anda mengambil sampelnya, Anda akan mendapatkan aliasing kecuali Anda terlebih dahulu menghilangkan frekuensi di luar batas Nyquist yang dikenakan oleh laju sampling. Dengan kata lain, Anda harus menyingkirkan fitur yang lebih kecil dari pixel grid. Untuk melakukan ini, Anda menerapkan filter low-pass. The yang ideal low-pass filter adalah fungsi sinc, tetapi karena berbagai alasan kepraktisan kita menggunakan filter lainnya (yang tidak sempurna menghilangkan frekuensi di luar batas Nyquist, tapi mereka setidaknya menipiskan mereka).
Maka gambar aman untuk sampel, sehingga nilai-nilai piksel akhir didapat dengan hanya mengevaluasi pada koordinat piksel.ffiltered
Jika adalah filter kotak, yang terlihat seperti di dalam kotak piksel dan tempat lain, maka ini menyederhanakan untuk hanya mengintegrasikan atas kotak piksel. Tetapi seperti yang disebutkan, filter kotak tidak begitu bagus dan ada pilihan yang lebih baik seperti filter tenda, bikubik, dan Gaussian.k = 1 k = 0 fk k=1 k=0 f
Bagaimanapun, sekarang kita memiliki integral, kita dapat menggunakan Monte Carlo untuk itu dan menggabungkannya dengan integral lain yang mungkin ingin kita lakukan — untuk penerangan, blur, dan sebagainya. Kita bahkan dapat menerapkan sampling penting ke faktor dalam integral, dengan menghasilkan sampel untuk setiap piksel yang didistribusikan di sekitar pusat piksel sesuai dengan .kk k
sumber
Anda sebenarnya melakukan kedua hal tersebut. Anda mengintegrasikan area dan karena hasil Anda masih berupa sampel diskrit, Anda merekonstruksi sinyal untuk membuatnya berfungsi secara berkelanjutan. Oleh karena itu semakin tinggi penyaringan pesanan. (Juga mata manusia adalah sampler diskrit sehingga juga merekonstruksi sinyal)
Butuh banyak waktu bagi saya untuk menerima penjelasan ini. Hal yang membantu saya adalah makalah karya Tony Apodaca berjudul The Lore of TDs .
sumber