อ่าน 2 นาที
บัฟเฟอร์ A
ในกราฟิก คอมพิวเตอร์ A-buffer หรือที่รู้จักกันในชื่อ anti-aliased , area-averaged หรือ accumulation buffer...
บัฟเฟอร์ A
ในกราฟิกคอมพิวเตอร์A-bufferหรือที่รู้จักกันในชื่อanti-aliased , area-averagedหรือaccumulation bufferเป็นกลไกพื้นผิวที่ซ่อนอยู่ทั่วไปที่เหมาะสำหรับคอมพิวเตอร์หน่วยความจำเสมือนขนาดกลาง มันช่วยแก้ปัญหาการมองเห็นระหว่างวัตถุทึบแสง โปร่งใส และวัตถุที่ตัดกันจำนวนมาก โดยใช้หน้าต่างฟูริเยร์ (box filter) ที่คำนวณได้ง่าย มันช่วยเพิ่มความละเอียดของภาพที่มีประสิทธิภาพมากกว่า Z-buffer หลายเท่า พร้อมกับต้นทุนที่เพิ่มขึ้นเล็กน้อย[ 1 ]
วิธีการบัฟเฟอร์ A เป็นวิธีที่พัฒนามาจากบัฟเฟอร์ Z ที่เป็นที่รู้จักกันดี ซึ่งให้ผลลัพธ์ที่มีคุณภาพดีในเวลาที่เหมาะสม
การใช้งาน
ในระบบสังเคราะห์ภาพสามมิติ ความสมดุลระหว่างคุณภาพและต้นทุนการคำนวณเป็นสิ่งที่จำเป็นเสมอ การใช้อัลกอริธึมพื้นผิวที่มองเห็นได้ที่มีความแม่นยำระดับวัตถุเต็มรูปแบบที่แต่ละพิกเซลนั้นมีค่าใช้จ่ายสูง วิธีการใช้บัฟเฟอร์ A ให้ผลลัพธ์ที่มีคุณภาพปานกลางด้วยต้นทุนการคำนวณที่เหมาะสม
A-buffer ช่วยในการใช้เทคนิคการมองเห็นและรองรับรูปทรงเรขาคณิตพื้นฐานที่สามารถจินตนาการได้ทั้งหมด เช่น รูปหลายเหลี่ยม แพทช์ ควอดริก แฟรกทัล และอื่นๆ นอกจากนี้ยังช่วยจัดการความโปร่งใสและพื้นผิวที่ตัดกัน (และพื้นผิวที่ตัดกันแบบโปร่งใส) วิธีการแบบ A-buffer ยังถูกใช้สำหรับความโปร่งใสที่ไม่ขึ้นกับลำดับที่แน่นอนบน GPU โดยที่ส่วนย่อยของพิกเซลจะถูกจับในโครงสร้างต่อพิกเซลที่มีความยาวแปรผัน ซึ่งโดยทั่วไปคือรายการเชื่อมโยง จากนั้นจึงเรียงลำดับตามความลึกและประกอบเข้าด้วยกันในขั้นตอนต่อไป[ 2 ] [ 3 ]
กลยุทธ์
อัลกอริทึม A-buffer ของ Carpenter [ 1 ]แก้ปัญหานี้โดยการประมาณการสุ่มตัวอย่างพื้นที่ที่มีความแม่นยำต่อพิกเซลของวัตถุของ Catmull [ 4 ]ด้วยการดำเนินการที่มีความแม่นยำต่อพิกเซลของภาพที่ดำเนินการบนตารางย่อยพิกเซล ในการใช้งาน REYES ของ Carpenter รูปหลายเหลี่ยมถูกสร้างขึ้นตามลำดับเส้นสแกนโดยประมาณ แต่ลำดับเส้นสแกนไม่จำเป็นสำหรับ A-buffer เอง[ 1 ]รูปหลายเหลี่ยมจะถูกประมวลผลก่อนตามลำดับเส้นสแกนโดยการตัดให้เหลือเฉพาะพิกเซลสี่เหลี่ยมที่ครอบคลุม ซึ่งส่งผลให้ได้รายการชิ้นส่วนรูปหลายเหลี่ยมที่ถูกตัดซึ่งสอดคล้องกับพิกเซลสี่เหลี่ยมแต่ละพิกเซล ในวิธีการ A-buffer ชิ้นส่วนเหล่านี้จะถูกจัดเก็บไว้ในรายการต่อพิกเซลที่มีความยาวแปรผันแทนที่จะเป็นเพียงชิ้นส่วนที่มองเห็นได้ใกล้ที่สุด แม้ว่าการใช้งานดั้งเดิมของ Carpenter จะจัดเก็บสีที่แก้ไขแล้วโดยตรงสำหรับพิกเซลที่ครอบคลุมอย่างสมบูรณ์อย่างง่าย และใช้ตัวชี้ไปยังรายการชิ้นส่วนจากด้านหน้าไปด้านหลังสำหรับพิกเซลที่ซับซ้อน[ 5 ] [ 1 ]แต่ละส่วนย่อยมีมาสก์บิตขนาด 4 x 8 ของส่วนพิกเซลที่ครอบคลุม[ 6 ]
บิตมาสก์สำหรับแฟรกเมนต์จะถูกคำนวณโดยการรวมมาสก์ที่แสดงถึงขอบแต่ละด้านของแฟรกเมนต์เข้าด้วยกัน เมื่อประมวลผลรูปหลายเหลี่ยมทั้งหมดที่ตัดกับพิกเซลแล้ว ค่าเฉลี่ยถ่วงน้ำหนักตามพื้นที่ของสีของพื้นผิวที่มองเห็นได้ของพิกเซลจะได้รับโดยการเลือกแฟรกเมนต์ตามลำดับความลึก และใช้บิตมาสก์ของแฟรกเมนต์เหล่านั้นเพื่อตัดบิตมาสก์ของแฟรกเมนต์ที่อยู่ไกลออกไป
สามารถจัดการกับบิตมาสก์ได้อย่างมีประสิทธิภาพด้วยการดำเนินการทางตรรกะแบบบูลีนตัวอย่างเช่น สามารถนำบิตมาสก์ของสองแฟรกเมนต์มาบวกกันเพื่อหาค่าการทับซ้อนกันได้ อัลกอริทึม A-buffer จะบันทึกข้อมูลเพิ่มเติมเพียงเล็กน้อยสำหรับแต่ละแฟรกเมนต์ ตัวอย่างเช่น มันจะบันทึกค่าขอบเขต z ของแฟรกเมนต์ แต่ไม่มีข้อมูลเกี่ยวกับส่วนใดของแฟรกเมนต์ที่เกี่ยวข้องกับค่า z เหล่านั้น ดังนั้น อัลกอริทึมจึงต้องตั้งสมมติฐานเกี่ยวกับเรขาคณิตระดับซับพิกเซลในกรณีที่บิตมาสก์ของแฟรกเมนต์ทับซ้อนกันในแนวแกน z
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ บัฟเฟอร์ A
ในกราฟิก คอมพิวเตอร์ A-buffer หรือที่รู้จักกันในชื่อ anti-aliased , area-averaged หรือ accumulation buffer...
การใช้งาน
ในระบบสังเคราะห์ภาพสามมิติ ความสมดุลระหว่างคุณภาพและต้นทุนการคำนวณเป็นสิ่งที่จำเป็นเสมอ การใช้อัลกอริธึมพื้นผิวที่มองเห็นได้ที่มีความแม่นยำระดับวัตถุเต็มรูปแบบที่แต่ละพิกเซลนั้นมีค่าใช้จ่ายสูง วิธีการใช้บัฟเฟอร์ A...
กลยุทธ์
อัลกอริทึม A-buffer ของ Carpenter [ 1 ] แก้ปัญหานี้โดยการประมาณการสุ่มตัวอย่างพื้นที่ที่มีความแม่นยำต่อพิกเซลของวัตถุ ของ Catmull [ 4 ] ด้วยการดำเนินการที่มีความแม่นยำต่อพิกเซลของภาพที่ดำเนินการบนตารางย่อยพิกเซล ในการใช้งาน REYES ของ Carpenter...