ไลบรารีใดที่เร็วที่สุดสำหรับการแสดงชุดสามเหลี่ยมโดยใช้เดลยูเนย์เป็นล้านหากคะแนน 3D มีรุ่น GPU ด้วยหรือไม่ จากอีกด้านหนึ่งการมี voronoi tessellation ของชุดคะแนนเดียวกันจะช่วย (ในแง่ของประสิทธิภาพ) สำหรับการรับ delaunay triangulation หรือไม่?
ไลบรารีใดที่เร็วที่สุดสำหรับการแสดงชุดสามเหลี่ยมโดยใช้เดลยูเนย์เป็นล้านหากคะแนน 3D มีรุ่น GPU ด้วยหรือไม่ จากอีกด้านหนึ่งการมี voronoi tessellation ของชุดคะแนนเดียวกันจะช่วย (ในแง่ของประสิทธิภาพ) สำหรับการรับ delaunay triangulation หรือไม่?
คำตอบ:
สำหรับการคำนวณแบบสามเหลี่ยมสามมิติ Delaunay (tetrahedralizations จริง ๆ ) TetGenเป็นห้องสมุดที่ใช้กันทั่วไป
เพื่อความสะดวกของคุณนี่คือเกณฑ์มาตรฐานเล็กน้อยเกี่ยวกับระยะเวลาที่ใช้ในการคำนวณคะแนนการสุ่มคะแนนจากคิวบ์หน่วย สำหรับ 100,000 คะแนนจะใช้เวลา 4.5 วินาทีใน Pentium M เก่า
(สิ่งนี้ทำกับส่วนต่อประสาน TetGen ของ Mathematica ฉันไม่ทราบว่าค่าใช้จ่ายดังกล่าวสูงแค่ไหน)
เกี่ยวกับคำถามอื่น ๆ ของคุณ: ถ้าคุณมี tessellation Voronoi แล้วได้รับสมเนย์คือการเปลี่ยนแปลงที่ค่อนข้างง่าย
gStar4Dเป็นอัลกอริทึม 3D Delaunay ที่รวดเร็วและมีประสิทธิภาพสำหรับ GPU มันถูกนำมาใช้โดยใช้ CUDA และทำงานบน NVIDIA GPUs
คล้ายกับGPU-DTอัลกอริทึมนี้สร้างไดอะแกรม Voronoi ดิจิทัล 3D เป็นอันดับแรก อย่างไรก็ตามใน 3D สิ่งนี้ไม่สามารถทำให้เป็นสามเหลี่ยมได้เนื่องจากการทอพอโลยีและปัญหาเชิงเรขาคณิต ในทางกลับกัน gStar4D ใช้ข้อมูลย่านใกล้เคียงจากแผนภาพนี้เพื่อสร้างดาวยกระดับเป็น 4D และทำการดาวกระจายบน GPU อย่างมีประสิทธิภาพ โดยการแยกฮัลล์ด้านล่างออกจากนี้จะได้การหาสมการ 3D Delaunay
การติดตั้ง 3D Delaunay ที่เร็วที่สุดคือgDel3Dซึ่งเป็นอัลกอริธึม GPU-CPU ไฮบริด
มันทำการแทรกแบบขนานและพลิกบน GPU ผลลัพธ์ใกล้กับ Delaunay จากนั้นแก้ไขผลลัพธ์นี้โดยใช้วิธีการกระจายดาวฤกษ์บนซีพียู
วิธีการทั้งสองนี้มีประสิทธิภาพดังนั้นจึงสามารถจัดการอินพุตที่เสื่อมสภาพได้ทุกชนิด พวกเขาสามารถจัดการกับจุดนับล้านถ้าคุณมีหน่วยความจำ GPU ที่ใหญ่พอที่จะเก็บโครงสร้างข้อมูลกลาง
การเปิดเผยข้อมูล: ฉันเป็นผู้เขียนอัลกอริทึมและการใช้งานเหล่านี้ :)
ฉันจะแนะนำให้ลองใช้ CGAL http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Triangulation_3/Chapter_main.html#Section_39.2 ตามที่ Paul แนะนำไว้ข้างต้น CGAL เป็นห้องสมุดที่แข็งแกร่งและได้รับการสนับสนุนที่ดีมาโดยตลอด ฉันเคยใช้มันอย่างมีความสุขในอดีตแม้ในจุดที่มีจุดร่วมเชิงเส้นและร่วมภาพถ่ายระนาบ ฉันไม่รู้ว่ามันเร็วที่สุดในวันนี้หรือไม่ แต่เป็นจุดเริ่มต้นที่ดีแน่นอน
ลิงค์ด้านบนยังมีหมายเลขประสิทธิภาพบางส่วน: สามารถทำคะแนนได้หนึ่งล้านคะแนนในเวลาประมาณ 10 วินาทีและ 10 ล้านในเวลาประมาณ 1.5 นาที
หากคุณมีไดอะแกรม voronoi ของชุดของคะแนนแล้วการคำนวณสมการ Delaunay จะนำคุณ O (n) เท่านั้น เท่ากันเมื่อกำหนดจุด voronoi คุณสามารถรับสามเหลี่ยม Delaunay ใน O (1) พวกเขาเป็นคู่ดังนั้นลองใช้ประโยชน์จากสถานการณ์นี้เมื่อใดก็ตามที่เป็นไปได้
คุณสามารถลองใช้ซอฟต์แวร์ geogram ที่ฉันพัฒนาได้: http://alice.loria.fr/software/geogram/doc/html/index.html
มีอัลกอริทึมแบบขนานที่คำนวณ DT ของ 14 ล้านยอดในเวลาน้อยกว่า 19 วินาทีใน Intel Core I7 (สำหรับยอด 1 ล้านจุดใช้เวลาประมาณ 0.8 วินาที)