Apa yang menyebabkan aliasing?

47

Saya selalu mendengar tentang aliasing dan anti-aliasing dan saya tahu seperti apa itu tetapi apa yang saya tidak mengerti adalah penyebabnya. Apakah ini fenomena fisik? Atau yang numerik?

Jika membantu menjelaskan, saya memiliki pengetahuan pemrograman, tetapi tidak di video game atau grafik.

Kruncho
sumber

Jawaban:

60

Apakah ini fenomena fisik? atau numerik?

Pertanyaan ini menyiratkan kepada saya bahwa Anda tidak benar-benar tahu apa artinya aliasing / anti-aliasing. Maksud saya, Anda mengatakan Anda "tahu seperti apa rupanya" tetapi jika Anda benar-benar tahu apa arti istilah itu, Anda mungkin akan menyadari bahwa pertanyaan Anda tidak masuk akal. Aliasing adalah efek samping dari bagaimana grafik komputer dirender, dan grafik komputer secara definisi bukan fenomena fisik.

"Aliasing" hanya mengacu pada tampilan tangga pada garis miring karena grafik komputer sebenarnya terdiri dari banyak kotak kecil dalam sebuah kisi. Berikut ini gambar untuk menggambarkan apa yang saya bicarakan: masukkan deskripsi gambar di sini

Ini adalah masalah setiap kali Anda merender piksel dalam suatu gambar, apakah Anda menggambar secara langsung atau sedang menulis algoritma untuk menghitung piksel untuk poligon 3D. Ini hanya efek samping dari fakta bahwa gambar adalah kotak piksel persegi. "Anti-aliasing" adalah saat Anda menyamarkan tampilan tangga dengan memadukan warna bersama di sepanjang piksel tepi.

jhocking
sumber
18
@ Kruncho Jangan pernah menyesal atas kesalahan, kecuali jika Anda mengajari orang lain kesalahan Anda! Hanya minta maaf ketika Anda tidak mencoba untuk memahami atau tidak mau diperbaiki. Kesalahan Anda sebenarnya membantu untuk memperjelas apa yang sebenarnya Anda ingin ketahui: ('bagaimana' apakah alias terjadi dalam grafik komputer?). Btw, sementara jawaban ini terbaik untuk menggambarkan apa, bagaimana dan mengapa, itu adalah masalah numerik. Anda dapat menganggapnya sebagai batasan untuk mencoba merepresentasikan bilangan pecahan dengan hanya menggunakan bilangan bulat utuh. Tidak ada setengah piksel, dll. Jadi, Anda berakhir dengan gambar yang tampak pucat.
Fuzzy Logic
5
@jhocking Koreksi hebat: kuadrat piksel sebenarnya tidak relevan. Mengasingkan akan terjadi sama saja jika setiap piksel adalah titik bulat dari semua ukuran yang sama.
Fuzzy Logic
10
@jhocking "Kotak persegi" tidak akan memotongnya juga. Anda masih mendapatkan aliasing (terlihat sedikit berbeda) jika piksel Anda disusun dalam kisi heksagonal. Yang penting adalah bahwa piksel disusun dalam pola reguler dan ukurannya tidak nol, dan kedua kondisi tersebut berlaku untuk semua teknologi tampilan yang mungkin.
Mike Scott
3
Anda terpaku pada kata "kotak" ketika itu hanya deskripsi untuk "kotak".
jhocking
11
@MikeScott: Bahkan dengan piksel yang tidak teratur, aliasing akan muncul. :))) Syarat penting agar aliasing muncul adalah frekuensi maksimum dari sinyal asli (gambar asli) lebih tinggi dari 2 * (1 / T) (di mana T adalah interval antara sampel = jarak antara piksel ). --- Ketika gambar asli memiliki tepi yang tajam (seperti garis hitam pada latar belakang putih) maka frekuensi maksimumnya tidak terbatas.
pabouk
121

Jawaban yang diterima tidak sepenuhnya benar, meskipun ini membahas penggunaan paling umum dalam grafik komputer. Aliasing adalah konsep dasar dalam pemrosesan sinyal dan teori matematisnya mendahului tampilan komputer. Juga tidak sepenuhnya benar bahwa "itu adalah efek samping dari fakta bahwa piksel adalah persegi". Aliasing ada setiap kali Anda secara diam-diam mengambil sampel sinyal pada tingkat di bawah tingkat Nyquist untuk sinyal itu dan memengaruhi audio digital serta gambar dan banyak jenis sinyal sampel yang diambil secara lain. Mengasingkan dalam grafik komputer adalah efek samping dari pengambilan sampel diskrit, bukan dari bentuk piksel.

Anti-aliasing dalam grafik komputer adalah topik yang dalam dan kompleks dan ada banyak hal selain dari edge-aliasing. Sekali lagi, ada banyak teori yang mendasari dari pemrosesan sinyal dan ini adalah area aktif penelitian dalam grafik komputer bagaimana cara anti-alias secara efektif, tidak hanya untuk edge tetapi juga untuk aliasing sementara, untuk aliasing ketika merekonstruksi BRDF dalam pixel shaders, untuk shadow tepi dan di banyak daerah lainnya. Mip-mapping tekstur dalam grafik 3D adalah teknik anti-aliasing yang mapan yang menangani masalah penting selain edge anti-aliasing misalnya.

Ini benar-benar sebuah fenomena matematika lebih dari yang fisik tetapi muncul di bidang teknik di banyak bidang selain komputer grafis. Saya tidak akan benar-benar menggambarkannya sebagai fenomena numerik juga - ini adalah hasil dari pengambilan sampel diskrit, bukan dari representasi diskrit nilai-nilai numerik pada komputer, meskipun itu dapat menyebabkan efek aliasing juga. Memahami dasar-dasar pemrosesan sinyal adalah dasar yang baik untuk memahami bagaimana aliasing bermanifestasi dalam grafik komputer dan untuk memahami bagaimana cara menguranginya.

mattnewport
sumber
6
Di satu sisi, hei saya belajar sesuatu yang baru hari ini, tidak pernah mendengar aliasing dalam konteks apa pun selain tepi grafis. Yang mengatakan, detail teknis tambahan ini tampaknya tidak bertentangan dengan penjelasan "itu adalah efek samping dari fakta bahwa piksel itu persegi". "Pengambilan sampel diskrit" hanyalah cara mewah untuk mengatakan "ujung sebenarnya sekelompok piksel diskrit, bukan garis kontinu".
jhocking
15
+1 untuk kebenaran teknis. Meskipun agak terlalu teknis mengingat tingkat pertanyaan yang diajukan dan sebenarnya tidak menjawab pertanyaan yang tersirat. Jawaban yang diterima lebih sesuai dengan maksud pertanyaan. Saya belajar sesuatu yang baru, jadi terima kasih atas elaborasi :)
Fuzzy Logic
6
@jhocking maaf, kami programmer grafis cenderung sedikit bekerja keras tentang aliasing :) Saya pikir jawaban Anda menjawab pertanyaan tetapi jika seseorang ingin lebih dalam grafis komputer saya pikir itu membantu untuk memahami bahwa aliasing adalah fenomena matematika dengan sekelompok teori di baliknya. Semua detail teknis berguna untuk tujuan akhir membuat gambar-gambar cantik di gim kami :)
mattnewport
4
@jhocking Intinya adalah bahwa tidak peduli apa bentuk pikselnya - jadi itu bukan efek samping dari fakta bahwa piksel itu persegi , itu adalah efek samping dari fakta bahwa piksel tidak berubah warna di atas pikselnya. tingkat. Lagi pula, sebuah pixel bukan persegi kecil .
Daniel Wagner
1
Jawaban Anda tidak ada gambar, kalau tidak pasti akan diterima. Terlepas dari contoh anti-aliasing tepi yang dibutuhkan: 1) gif animasi roda mobil berputar searah jarum jam dan tiba-tiba berhenti dan mengubah arah. 2) papan catur 3D (Anda tahu yang akan sampai tak terbatas) ... Saya juga mempelajari pemrosesan sinyal.
MartinTeeVarga
68

Menambah dua jawaban lainnya, berikut adalah penjelasan yang lebih intuitif tentang apa yang terjadi.

Mengasingkan dalam poligon 2D

Kotak kotak mewakili piksel. Poligon merah di sebelah kiri adalah bentuk yang digambar, direpresentasikan secara internal sebagai urutan titik. Ketika itu diberikan, itu dikonversi dari daftar poin ke buffer warna piksel. Sampling diskrit menentukan piksel mana yang gelap dan piksel mana yang terang, berdasarkan pada seberapa banyak poligon yang menutupi setiap piksel.

Untuk menjawab pertanyaan Anda, ini adalah fenomena numerik / matematika karena informasi tentang bentuk asli hilang karena perkiraan.

Antialiasing

Anti-aliasing adalah saat rendering berupaya mengoreksi untuk aliasing dengan membuat piksel yang tercakup sebagian kurang kuat.

aebabis
sumber
5
Inilah jawaban pertama yang benar-benar menjelaskan apa yang terjadi. Sudah selesai dilakukan dengan baik.
Beska
1
"membuat piksel yang tercakup sebagian kurang intens" tidak persis seperti yang saya mengerti. Saya percaya bahwa sebagian besar algoritma Anti Aliasing menerapkan Low Pass Filter (sama seperti blur filter), kadang-kadang di seluruh kerangka yang diberikan (seperti dengan FXAA) atau algoritma yang lebih cerdas melakukannya hanya melintasi batas tepi. MSAA melakukannya dengan cara yang berbeda, tetapi efek keseluruhan tetap dari LPF di atas batas tepi yang keras.
Luke
1
@ Lukas Saya tidak bermaksud paragraf terakhir untuk menjadi penjelasan tentang bagaimana hal-hal bekerja; itu hanya menggambarkan hasil dari anti-aliasing. "Intense" bukan istilah yang tepat untuk digunakan, tetapi itu berlaku ketika anti-aliasing dilakukan pada bentuk yang warnanya lebih intens daripada latar belakang. Itu saja yang saya katakan.
aebabis
3

Dalam bidang pemrosesan sinyal, aliasing merujuk pada kesalahan identifikasi frekuensi sinyal. Misalnya, karena kurangnya pertimbangan yang memadai dalam langkah pengambilan sampel yang kurang dapat menyebabkan kesalahan dan distorsi. Ini dapat digeneralisasikan ke sinyal diskrit 2D seperti gambar.

pengguna70164
sumber