Найшвидша бібліотека триангуляції Делоне для наборів 3D точок


26

Яка найшвидша бібліотека для виконання триангуляції множин з мільйонами, якщо 3D-очки? Чи доступні також версії GPU? З іншого боку, маючи вороной тесселяцію одного і того ж набору точок, допомогло б (з точки зору продуктивності) отримати зворотну тріангуляцію?


Ви спробували реалізацію програмного забезпечення CGAL і TRIANGLE? Обидва включають алгоритми , які (теоретично) є найшвидшими в наявності (хоча і не паралельно). О(нлог(н))
Пол

Джонатан Шевчук також має потокову версію для 2D, яка може обробляти смішно великі набори даних, якщо ви можете додати кілька додаткових даних у свій потік. Для чого ви це використовуєте?
Віктор Лю

Відповіді:


13

Для обчислення тривимірних триангуляцій Делоне (насправді тетраедралізацій) TetGen - це широко використовувана бібліотека.

Для вашої зручності, ось невеликий орієнтир щодо того, скільки часу потрібно для обчислення тереедралізації декількох випадкових точок з одиничного куба. На 100 000 балів на старий Pentium M. потрібно 4,5 секунди.

Графіка математики

(Це було зроблено за допомогою інтерфейсу TetGen Mathematica. Я не знаю, скільки накладних витрат він вводить.)

Щодо вашого іншого питання: якщо у вас вже є тесселяція Вороного, то отримання триангуляції Делоне - це відносно проста трансформація .


10

gStar4D - це швидкий і надійний 3D-алгоритм Delaunay для GPU. Він реалізований за допомогою CUDA та працює на графічних процесорах NVIDIA.

Подібно до GPU-DT , цей алгоритм спочатку будує 3D-цифрову діаграму Вороного. Однак у 3D це неможливо дуалізувати до тріангуляції через топологічні та геометричні проблеми. Натомість gStar4D використовує інформацію про сусідство з цієї діаграми для створення зірок, піднятих до 4D, та виконує ефективні зірки на них на GPU. Витягуючи з цього нижній корпус, отримують триангуляцію 3D Делоне.

Найшвидша реалізація 3D Delaunay - це gDel3D , який є гібридним алгоритмом GPU-CPU.

Він виконує паралельну вставку та гортання на GPU. Результат близький до Делоне. Потім він фіксує цей результат, використовуючи консервативний метод зірки на процесорі.

Обидва ці методи є надійними, тому вони можуть працювати з будь-яким виродженим входом. Вони можуть обробляти мільйони точок, якщо у вас є достатньо велика пам'ять GPU, щоб вмістити проміжні структури даних.

Розкриття: Я автор цих алгоритмів та реалізацій :)


Ласкаво просимо до SciComp.Se, Ешвін! В інтересах повного розкриття інформації слід додати, що ви є автором цього програмного забезпечення (див. Meta.scicomp.stackexchange.com/a/342/1804 ).
Крістіан Класон

3

Я рекомендую спробувати CGAL http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Triangulation_3/Chapter_main.html#Section_39.2 , як запропонував Павло вище. CGAL - це міцна і добре підтримувана бібліотека, яка існує вже досить давно. Раніше я його використовував щасливо, навіть на точкових множинах з колінійними та копланарними точками. Я не знаю, чи це найшвидше сьогодні, але це, безумовно, хороше місце для початку.

Посилання, наведене вище, також включає деякі показники продуктивності: воно може робити мільйон балів за 10 секунд, а 10 мільйонів - за 1,5 хвилини.


Також ви могли б розширити, чому ви рекомендуєте це? Чи маєте ви з цим досвід?
Годрік Провид

1

Якщо у вас вже є діаграма вороного набору точок, то обчислення триангуляції Делоне займе лише O (n). Рівнозначно, задавши вороной точку, ви можете отримати її трикутник Делоне в O (1). Вони подвійні, тому намагайтеся використовувати цю ситуацію, коли це можливо.


1

Ви можете спробувати програмне забезпечення для геограми, яке я розробляю: http://alice.loria.fr/software/geogram/doc/html/index.html

Він має паралельний алгоритм, який обчислює DT 14 мільйонів вершин менш ніж за 19 секунд на Intel Core I7 (на 1 мільйон вершин потрібно близько 0,8 с)


Ласкаво просимо до SciComp.SE! В інтересах повного розкриття інформації (і щоб показати, що ви знаєте, про що говорите), ви повинні згадати, що ви розробник цього програмного забезпечення.
Крістіан Класон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.