ทำให้นามแฝงคืออะไร


47

ฉันมักจะได้ยินเกี่ยวกับนามแฝงและต่อต้านนามแฝงและฉันรู้ว่ามันดูเหมือนอะไร แต่สิ่งที่ฉันไม่เข้าใจคือสิ่งที่ทำให้มัน มันเป็นปรากฏการณ์ทางกายภาพหรือไม่? หรือตัวเลข?

ถ้าช่วยอธิบายได้ฉันมีความรู้ในการเขียนโปรแกรมบ้าง แต่ไม่ใช่ในวิดีโอเกมหรือกราฟิก

คำตอบ:


60

มันเป็นปรากฏการณ์ทางกายภาพหรือไม่? หรือตัวเลข?

คำถามนี้มีความหมายกับคุณว่าคุณไม่ทราบว่า aliasing / anti-aliasing หมายถึงอะไร ฉันหมายความว่าคุณบอกว่าคุณ "รู้ว่ามันมีลักษณะอย่างไร" แต่ถ้าคุณรู้จริง ๆ แล้วคำว่าหมายถึงอะไรคุณอาจจะรู้ว่าคำถามของคุณนั้นไร้สาระ การใช้นามแฝงเป็นผลข้างเคียงของวิธีการแสดงผลกราฟิกคอมพิวเตอร์และคอมพิวเตอร์กราฟิกค่อนข้างสวยโดยนิยามไม่ใช่ปรากฏการณ์ทางกายภาพ

"นามแฝง" หมายถึงการมองขั้นบันไดบนเส้นที่มีมุมเนื่องจากคอมพิวเตอร์กราฟิกนั้นประกอบด้วยสี่เหลี่ยมเล็ก ๆ จำนวนมากในกริด นี่คือภาพเพื่อแสดงสิ่งที่ฉันพูดถึง: ป้อนคำอธิบายรูปภาพที่นี่

ปัญหานี้เกิดขึ้นเมื่อใดก็ตามที่คุณแสดงพิกเซลในรูปภาพไม่ว่าคุณจะวาดด้วยมือเปล่าหรือกำลังเขียนอัลกอริทึมเพื่อคำนวณพิกเซลสำหรับรูปหลายเหลี่ยม 3 มิติ เป็นเพียงผลข้างเคียงจากความจริงที่ว่าภาพเป็นตารางสี่เหลี่ยมพิกเซล "การลบรอยหยัก" คือเมื่อคุณปิดบังขั้นบันไดโดยการผสมสีเข้าด้วยกันตามพิกเซลขอบ


18
@ Kruncho อย่าเสียใจที่ทำผิดเว้นแต่คุณกำลังสอนคนอื่นผิดพลาด! ต้องขออภัยเมื่อคุณไม่พยายามเข้าใจหรือไม่เต็มใจที่จะแก้ไข ความผิดพลาดของคุณช่วยอธิบายให้ชัดเจนว่าคุณขออะไรให้รู้: ('นามแฝง' เกิดขึ้นในกราฟิกคอมพิวเตอร์ได้อย่างไร) Btw ในขณะที่คำตอบนี้ดีที่สุดเพื่อแสดงให้เห็นว่าอะไรอย่างไรและทำไมมันเป็นปัญหาเชิงตัวเลข คุณอาจคิดว่ามันเป็นข้อ จำกัด ของการพยายามแสดงตัวเลขเศษส่วนโดยใช้เฉพาะจำนวนเต็มทั้งหมด ไม่มีพิกเซลครึ่งดังนั้นคุณจบลงด้วยภาพที่ดูบล็อก
Fuzzy Logic

5
@ jhocking การแก้ไขอย่างรวดเร็ว: ความแปรปรวนของพิกเซลไม่เกี่ยวข้องกัน การใช้นามแฝงจะเกิดขึ้นเหมือนกันหากแต่ละพิกเซลมีจุดกลมขนาดเดียวกันทั้งหมด
Fuzzy Logic

10
@ jhocking "Square grid" จะไม่ตัดมันเช่นกัน คุณยังคงได้รับนามแฝง (ดูแตกต่างกันเล็กน้อย) ถ้าพิกเซลของคุณถูกจัดเรียงในตารางหกเหลี่ยม สิ่งที่สำคัญคือพิกเซลถูกจัดวางในรูปแบบปกติและมีขนาดไม่เป็นศูนย์และเงื่อนไขทั้งสองนั้นเป็นจริงสำหรับเทคโนโลยีการแสดงผลใด ๆ ที่เป็นไปได้
Mike Scott

3
คุณกำลังวางกับคำว่า "square" เมื่อนั่นเป็นเพียงตัวอธิบายสำหรับ "grid"
jhocking

11
@MikeScott: แม้จะมีพิกเซลที่จัดเรียงอย่างไม่สม่ำเสมอการใช้นามแฝงก็จะปรากฏขึ้น :))) เงื่อนไขสำคัญสำหรับนามแฝงที่จะปรากฏคือความถี่สูงสุดของสัญญาณดั้งเดิม (ภาพดั้งเดิม) สูงกว่า 2 * (1 / T) (โดย T คือช่วงเวลาระหว่างตัวอย่าง = ระยะห่างระหว่างพิกเซล ) --- เมื่อภาพต้นฉบับมีขอบคม (เช่นเส้นสีดำบนพื้นหลังสีขาว) ความถี่สูงสุดจะไม่มีที่สิ้นสุด
pabouk

121

คำตอบที่ได้รับการยอมรับนั้นไม่ถูกต้องแม้ว่ามันจะกล่าวถึงการใช้งานทั่วไปในคอมพิวเตอร์กราฟิก นามแฝงเป็นแนวคิดพื้นฐานในการประมวลผลสัญญาณและทฤษฎีทางคณิตศาสตร์ของมันมาก่อนคอมพิวเตอร์แสดง มันไม่เป็นความจริงเลยว่า "มันเป็นผลข้างเคียงของพิกเซลที่เป็นสี่เหลี่ยม" การใช้นามแฝงมีอยู่ทุกครั้งที่คุณสุ่มตัวอย่างสัญญาณในอัตราที่ต่ำกว่าอัตรา Nyquist สำหรับสัญญาณนั้นและส่งผลต่อเสียงดิจิตอลรวมถึงรูปภาพและสัญญาณตัวอย่างที่แยกประเภทอื่น ๆ การใช้นามแฝงในกราฟิกคอมพิวเตอร์เป็นผลข้างเคียงของการสุ่มตัวอย่างแบบไม่ต่อเนื่องไม่ใช่รูปร่างของพิกเซล

การลบรอยหยักในกราฟิกคอมพิวเตอร์เป็นหัวข้อที่ซับซ้อนและลึกล้ำและมีมากกว่านั้นมากไปกว่าเพียงแค่การลดรอยหยัก อีกครั้งมีทฤษฎีพื้นฐานมากมายจากการประมวลผลสัญญาณและเป็นพื้นที่ใช้งานการวิจัยในคอมพิวเตอร์กราฟิกวิธีการป้องกันนามแฝงได้อย่างมีประสิทธิภาพไม่เพียง แต่สำหรับขอบ แต่ยังสำหรับนามแฝงชั่วคราวสำหรับนามแฝงเมื่อสร้าง BRDF ในหน่วยพิกเซล ขอบและในพื้นที่อื่น ๆ การทำแผนที่แบบ Mip ของพื้นผิวในกราฟิก 3D เป็นเทคนิคการลดรอยหยักที่ได้รับการยอมรับเป็นอย่างดีซึ่งแก้ไขปัญหาที่สำคัญอื่น ๆ นอกเหนือจากการลดรอยหยักขอบ

มันเป็นปรากฏการณ์ทางคณิตศาสตร์มากกว่าฟิสิกส์จริง ๆ แต่ปรากฏในงานวิศวกรรมในหลาย ๆ ด้านนอกเหนือจากคอมพิวเตอร์กราฟิก ฉันจะไม่อธิบายว่ามันเป็นปรากฏการณ์เชิงตัวเลขอย่างใดอย่างหนึ่ง - มันเป็นผลมาจากการสุ่มตัวอย่างแบบไม่ต่อเนื่องไม่ได้เป็นตัวแทนของค่าตัวเลขที่ไม่ต่อเนื่องในคอมพิวเตอร์ การทำความเข้าใจพื้นฐานของการประมวลผลสัญญาณเป็นรากฐานที่ดีสำหรับการทำความเข้าใจว่านามแฝงปรากฏในคอมพิวเตอร์กราฟฟิคอย่างไรและเพื่อทำความเข้าใจวิธีลดขนาด


6
ในอีกด้านหนึ่งเฮ้ฉันได้เรียนรู้สิ่งใหม่ในวันนี้ไม่เคยได้ยินนามแฝงในบริบทอื่นนอกเหนือจากขอบกราฟิก ที่กล่าวว่ารายละเอียดทางเทคนิคเพิ่มเติมนี้ดูเหมือนจะไม่ขัดแย้งกับคำอธิบาย "มันเป็นผลข้างเคียงจากข้อเท็จจริงที่ว่าพิกเซลเป็นสี่เหลี่ยม" "การสุ่มตัวอย่างแบบไม่ต่อเนื่อง" เป็นเพียงวิธีแฟนซีในการพูดว่า "ขอบนั้นเป็นพิกเซลจำนวนมากโดยสิ้นเชิงไม่ใช่เส้นต่อเนื่อง"
jhocking

15
+1 สำหรับความถูกต้องทางเทคนิค แม้ว่าจะมีเทคนิคเล็กน้อยเกินไประดับของคำถามที่ถามและไม่ได้ตอบคำถามโดยนัย คำตอบที่ยอมรับนั้นเหมาะสมกับเจตนาของคำถามมากกว่า ผมได้เรียนรู้บางสิ่งบางอย่างแม้ว่าใหม่เพื่อขอบคุณสำหรับรายละเอียดเพิ่มเติม :) ความ
ฟัซซี่ลอจิก

6
@ จ๊อคขอโทษผู้เขียนโปรแกรมกราฟิกของเรามักจะทำงานกับนามแฝง :) ฉันคิดว่าคำตอบของคุณตอบคำถาม แต่ถ้ามีคนต้องการที่จะไปลึกลงไปในกราฟิกคอมพิวเตอร์ฉันคิดว่ามันเป็นประโยชน์ที่จะเข้าใจว่านามแฝงเป็นปรากฏการณ์ทางคณิตศาสตร์ ทฤษฎีที่อยู่เบื้องหลังมัน รายละเอียดทางเทคนิคทั้งหมดนั้นมีประโยชน์สำหรับเป้าหมายสูงสุดในการสร้างภาพสวย ๆ ในเกมของเรา :)
mattnewport

4
@ jhocking ประเด็นก็คือมันไม่สำคัญว่าพิกเซลจะเป็นรูปร่างแบบไหน - ดังนั้นมันจึงไม่ใช่ผลข้างเคียงของความจริงที่ว่าพิกเซลเป็นสี่เหลี่ยมจัตุรัสมันเป็นผลข้างเคียงของข้อเท็จจริงที่ว่าพิกเซลไม่เปลี่ยนสี ขอบเขต และต่อไปพิกเซลไม่ได้เป็นตารางเล็ก ๆ น้อย ๆ
Daniel Wagner

1
คำตอบของคุณไม่มีรูปภาพไม่เช่นนั้นจะเป็นที่ยอมรับอย่างแน่นอน นอกเหนือจากตัวอย่างการขจัดรอยหยักที่ขอบแล้วต้องการ: 1) gif เคลื่อนไหวของล้อรถหมุนตามเข็มนาฬิกาและหยุดและเปลี่ยนทิศทางทันที 2) กระดานหมากรุก 3 มิติ (คุณรู้ว่ากำลังจะไม่มีที่สิ้นสุด) ... ฉันยังศึกษาการประมวลผลสัญญาณ
MartinTeeVarga

68

เมื่อเพิ่มคำตอบอีกสองข้อลงไปนี่เป็นคำอธิบายที่ง่ายขึ้นว่าจะเกิดอะไรขึ้น

ชื่อแทนในรูปหลายเหลี่ยม 2D

สี่เหลี่ยมกริดหมายถึงพิกเซล รูปหลายเหลี่ยมสีแดงด้านซ้ายคือรูปร่างที่กำลังวาดซึ่งแสดงภายในเป็นลำดับของคะแนน เมื่อมันถูกเรนเดอร์มันจะถูกแปลงจากรายการของจุดเป็นบัฟเฟอร์ของสีพิกเซล การสุ่มตัวอย่างไม่ต่อเนื่องกำหนดว่าพิกเซลใดที่มืดและพิกเซลใดที่มีแสงขึ้นอยู่กับรูปหลายเหลี่ยมที่ครอบคลุมแต่ละพิกเซล

เพื่อตอบคำถามของคุณนี่เป็นปรากฏการณ์เชิงตัวเลข / คณิตศาสตร์เนื่องจากข้อมูลเกี่ยวกับรูปร่างดั้งเดิมหายไปเนื่องจากการประมาณ

การลดรอยหยัก

Anti-aliasing คือเมื่อการเรนเดอร์พยายามแก้ไข aliasing โดยทำให้พิกเซลที่ครอบคลุมบางส่วนมีความเข้มน้อยลง


5
นี่คือคำตอบแรกที่อธิบายสิ่งที่เกิดขึ้นจริง ๆ ทำได้ดี.
Beska

1
"การทำให้พิกเซลที่ครอบคลุมบางส่วนน้อยลง" ไม่ตรงตามที่ฉันเข้าใจ ฉันเชื่อว่าอัลกอริธึม Anti Aliasing ส่วนใหญ่ใช้ Low Pass Filter (เช่นเดียวกับตัวกรองเบลอ) บางครั้งในเฟรมที่แสดงทั้งหมด (เช่นเดียวกับ FXAA) หรืออัลกอริทึมอัจฉริยะอื่น ๆ ดำเนินการข้ามขอบเขตขอบเท่านั้น MSAA ทำในลักษณะที่แตกต่างกัน แต่เอฟเฟกต์โดยรวมยังคงเป็นของ LPF ที่อยู่เหนือขอบเขตที่ขอบแข็ง
ลุค

1
@ ลุคฉันไม่ได้ตั้งใจจะให้ย่อหน้าสุดท้ายเป็นคำอธิบายเกี่ยวกับวิธีการทำงานของสิ่งต่าง ๆ ; เป็นเพียงการอธิบายผลลัพธ์ของการต่อต้านนามแฝง "Intense" ไม่ใช่คำที่ถูกต้องที่จะใช้ แต่จะใช้เมื่อมีการลบรอยหยักบนรูปร่างที่มีสีเข้มกว่าพื้นหลัง นั่นคือทั้งหมดที่ฉันพูด
aebabis

3

ในฟิลด์การประมวลผลสัญญาณนามแฝงอ้างถึงการระบุความถี่สัญญาณที่ไม่ถูกต้อง ตัวอย่างเช่นเนื่องจากการขาดการพิจารณาอย่างเพียงพอในขั้นตอนการสุ่มตัวอย่างต่ำอาจนำไปสู่การสร้างข้อผิดพลาดและการบิดเบือน มันสามารถวางนัยให้สัญญาณ 2D ไม่ต่อเนื่องเช่นภาพ

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