Mengapa segitiga yang berdekatan tidak pernah tumpang tindih saat diraster?


11

Permintaan maaf untuk pertanyaan noob berikut, hanya saja saya tidak dapat menemukan jawaban yang memuaskan di mana saja ...

Ketika saya membuat quad sederhana yang disejajarkan dengan sumbu yang terdiri dari dua segitiga, saya tidak mengerti mengapa tidak pernah ada artefak yang terlihat di tepi diagonal tempat segitiga itu bertemu. Beberapa dari piksel tersebut harus berada di kedua segitiga, bukan? Jadi jika fragshader saya selalu memancarkan warna yang sebagian transparan - 50% hitam katakan - maka bukankah seharusnya ada garis diagonal gelap yang terlihat di quad yang dihasilkan?

Jelas itu bagus bahwa ini bukan masalah nyata yang harus dikodekan, saya hanya tidak mengerti mengapa tidak. Keajaiban GPU apa yang membuat ini selalu berhasil?

Jawaban:


10

Ini adalah masalah yang sama seperti yang dibahas dalam Apa kesenjangan sampel selama konversi pemindaian?

Secara singkat, rasterisasi - setidaknya dengan mayoritas sistem perangkat keras - menguji pada titik 'sangat kecil' untuk setiap piksel untuk menentukan apakah piksel tersebut berada di dalam segitiga yang diberikan.

Jika titik sampel terletak tepat di tepi, maka aturan tambahan yang mengikat, sering disebut sebagai "aturan mengisi", ikut bermain. Biasanya ini akan menjadi sesuatu yang setara dengan, katakanlah, hanya menganggap titik tepi di atas / kiri ** tepi segitiga sebagai "dalam".

** Aturan lain tersedia ;-)


Ya saya hanya mencari jawaban itu
joojaa

1
Bagian yang relevan dari Black Book: jagregory.com/abrash-black-book/...
bblack

Terima kasih banyak! Agak masuk akal sekarang, dan buku hitam itu tampak seperti sumber yang bagus juga
Reuben Scratton
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.