เมื่อระบุรายการของดัชนีสามเหลี่ยมเราจะแปลงมันไปยังรายการของดัชนีด้วยการใช้คำคุณศัพท์สำหรับ shader เรขาคณิตได้อย่างไร
โปรดทราบว่าเรากำลังพูดถึงดัชนีที่นี่อย่างเคร่งครัด- มีจุดยอด แต่เราจะมุ่งเน้นไปที่ดัชนีเพียงอย่างเดียวเพราะเราสามารถใช้เพื่อจับคู่จุดยอดที่ซ้ำกันโดยไม่ต้องไปเปรียบเทียบจุดลอยตัวและ epsilons - งานนั้นมี เสร็จเรียบร้อยแล้ว
ฉันรู้ว่าสำหรับสามเหลี่ยมใด ๆ ที่ระบุในรายการดัชนี {0, 1}, {1, 2} และ {2, 0} (หรือ {n, n + 1}, {n + 1, n + 2}, { n + 2, n} หากคุณต้องการ) มันเป็นขอบ รายการดัชนีมีรูปแบบที่ดีและเคารพลำดับการหมุนอย่างถูกต้อง
ฉันรู้ว่าสำหรับขอบใดก็ตามที่กำหนดเราสามารถค้นหารายการทั้งหมดสำหรับสามเหลี่ยมอีกอันที่ใช้สองดัชนีเหล่านั้นและดัชนีที่สามของสามเหลี่ยมนั้นเป็นดัชนีที่ใช้ในการทำสามเหลี่ยมที่อยู่ติดกันให้เสร็จ
ฉันรู้ว่าในรายการคำคุณศัพท์แต่ละรูปสามเหลี่ยมดั้งเดิมนั้นแทนด้วย 6 ดัชนีดัชนีดั้งเดิมเข้าสู่ช่อง 0, 2, 4; ดัชนีใหม่เพื่อให้ adjacency เสร็จสมบูรณ์เข้าไปในสล็อต 1, 3, 5 ดัชนีที่ทำให้สมบูรณ์สำหรับ edge {0, 1} จะเข้าสู่ slot 1, ดัชนีที่จะทำให้สมบูรณ์สำหรับ edge {1, 2} เข้าไปใน slot 3, index เพื่อให้สมบูรณ์สำหรับขอบ {2, 1} จะเข้าสู่สล็อต 5
ฉันลองทำอะไร
ฉันได้ลองใช้วิธีการเดรัจฉานและใช่ว่ามันจะได้ผล แต่ฉันก็ใช้วิธีที่หรูหรากว่านี้
ฉันลองตัวสร้างรายการขอบของ Eric Lengyel แต่ (1) ดูเหมือนจะไม่เคารพลำดับสามเหลี่ยมดั้งเดิม (2) ดูเหมือนจะไม่เคารพคำสั่งที่คดเคี้ยว (3) มันชัดเจนเหมือนโคลนที่จะไป ถัดไปหลังจากที่คุณสร้างรายการขอบและ (4) ฉันสงสัยรหัสตัวอย่างที่มีข้อผิดพลาดที่เห็นได้ชัดอย่างชัดเจนเช่น "triangleIndex" เทียบกับ "faceIndex" - ผู้เขียนได้รวบรวมรหัสแล้ว ยืนยันหรือไม่
ดังนั้น - ข้อเสนอแนะหรือตัวชี้จากที่นี่หรือไม่