ทำไมรูปสามเหลี่ยมที่อยู่ติดกันจึงไม่เคยทับซ้อนกันเมื่อแรสเตอร์?


11

ขออภัยสำหรับคำถาม noob ต่อไปนี้เป็นเพียงฉันไม่สามารถหาคำตอบที่น่าพอใจทุกที่ ...

เมื่อฉันสร้างรูปสี่เหลี่ยมที่มีแกนเรียบง่ายประกอบด้วยสามเหลี่ยมสองรูปฉันไม่เข้าใจว่าทำไมไม่มีสิ่งประดิษฐ์ใด ๆ ที่มองเห็นได้บนขอบทแยงมุมที่สามเหลี่ยมเหล่านั้นมาบรรจบกัน พิกเซลบางส่วนนั้นต้องอยู่ในรูปสามเหลี่ยมทั้งคู่ใช่ไหม ดังนั้นถ้า fragshader ของฉันเปล่งสีโปร่งใสบางส่วน - สีดำ 50% พูดเสมอ - แล้วไม่ควรมีเส้นทแยงมุมสีดำที่มองเห็นได้ในรูปสี่เหลี่ยมที่เกิดขึ้นหรือไม่

เห็นได้ชัดว่ามันดีมากที่นี่ไม่ใช่ปัญหาจริงที่ต้องเขียนรหัสฉันแค่ไม่เข้าใจว่าทำไมมันถึงไม่ได้ ความมหัศจรรย์ของ GPU คืออะไรที่ทำให้สิ่งนี้เป็นจริง

คำตอบ:


10

นี่เป็นปัญหาเดียวกับที่กล่าวไว้ในช่องว่างตัวอย่างระหว่างการแปลงสแกน?

อย่างย่อ rasterisation - อย่างน้อยที่สุดก็ด้วยระบบฮาร์ดแวร์ส่วนใหญ่ - ทดสอบที่จุด 'เล็ก' สำหรับแต่ละพิกเซลเพื่อตรวจสอบว่าพิกเซลนั้นอยู่ในรูปสามเหลี่ยมที่กำหนดหรือไม่

หากจุดตัวอย่างอยู่ตรงขอบกฎการผูกไทม์เพิ่มเติมมักจะเรียกว่า "การเติมกฎ" เข้ามาเล่น โดยทั่วไปสิ่งเหล่านี้จะเป็นสิ่งที่เทียบเท่าพูดเพียงพิจารณาจุดขอบที่ด้านบน / ซ้าย ** ขอบของรูปสามเหลี่ยมที่จะ "ภายใน"

** มีกฎอื่นอีก ;-)


ใช่ฉันเป็นเพียงการมองหาว่าคำตอบ
joojaa

1
ข้อความที่เกี่ยวข้องจาก Black Book: jagregory.com/abrash-black-book/…
bblack

ขอบคุณมาก ๆ ! ตอนนี้มันค่อนข้างสมเหตุสมผลแล้วและหนังสือสีดำเล่มนั้นก็ดูเหมือนเป็นแหล่งข้อมูลที่ยอดเยี่ยมเช่นกัน
Reuben Scratton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.