3D 포인트 인 경우 수백만 세트로 들로네 삼각 분할을 수행하기위한 가장 빠른 라이브러리는 무엇입니까? GPU 버전도 있습니까? 다른 쪽에서 같은 점 집합의 보로 노이 테셀레이션을 사용하면 들로네 삼각 분할 (Delaunay Triangulation)을 얻는 데 도움이 될까요?
3D 포인트 인 경우 수백만 세트로 들로네 삼각 분할을 수행하기위한 가장 빠른 라이브러리는 무엇입니까? GPU 버전도 있습니까? 다른 쪽에서 같은 점 집합의 보로 노이 테셀레이션을 사용하면 들로네 삼각 분할 (Delaunay Triangulation)을 얻는 데 도움이 될까요?
답변:
3 차원 들로네 삼각 분할 (사면 체화 )을 계산하기 위해 TetGen 은 일반적으로 사용되는 라이브러리입니다.
편의를 위해 다음은 단위 큐브에서 다수의 임의 포인트의 테레 데 랄화를 계산하는 데 걸리는 시간에 대한 약간의 벤치 마크입니다. 오래된 Pentium M에서는 100,000 포인트가 4.5 초 걸립니다.
(이것은 Mathematica의 TetGen 인터페이스로 수행되었습니다. 얼마나 많은 오버 헤드가 도입되는지는 알 수 없습니다.)
다른 질문과 관련하여 : 이미 보로 노이 테셀레이션이있는 경우 들로네 삼각 분할을 얻는 것은 비교적 간단한 변환 입니다.
gStar4D 는 GPU를위한 빠르고 강력한 3D 들로네 알고리즘입니다. CUDA를 사용하여 구현되며 NVIDIA GPU에서 작동합니다.
GPU-DT 와 유사 하게이 알고리즘은 3D 디지털 보로 노이 다이어그램을 먼저 구성합니다. 그러나 3D에서는 위상 및 기하학적 문제로 인해 삼각 측량으로 이중화 할 수 없습니다. 대신, gStar4D는이 다이어그램의 주변 정보를 사용하여 4D로 들어 올린 별을 생성하고 GPU에서 효율적으로 별을 재생합니다. 이것으로부터 하부 선체를 추출함으로써, 3D 들로네 삼각 분할이 얻어진다.
가장 빠른 3D Delaunay 구현은 하이브리드 GPU-CPU 알고리즘 인 gDel3D 입니다.
GPU에서 병렬 삽입 및 뒤집기를 수행합니다. 결과는 Delaunay에 가깝습니다. 그런 다음 CPU에서 보수적 인 스타 재생 방법을 사용하여이 결과를 수정합니다.
이 두 가지 방법 모두 견고하므로 모든 종류의 축퇴 입력을 처리 할 수 있습니다. 중간 데이터 구조를 보유하기에 충분한 GPU 메모리가 있으면 수백만 포인트를 처리 할 수 있습니다.
공개 : 나는이 알고리즘과 구현의 저자입니다 :)
Paul이 위에서 제안한 것처럼 CGAL http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Triangulation_3/Chapter_main.html#Section_39.2를 사용해 보는 것이 좋습니다 . CGAL은 꽤 오래 전부터 강력하고 잘 지원되는 라이브러리입니다. 과거에는 동일 선상 및 동일 평면 점이있는 점 세트에서도 행복하게 사용했습니다. 오늘 가장 빠른지 모르겠지만 시작하기에 좋은 곳입니다.
위의 링크에는 몇 가지 성능 수치가 포함되어 있습니다. 약 10 초 동안 백만 포인트를 수행 할 수 있으며 약 1.5 분 동안 1000 만 포인트를 수행 할 수 있습니다.
내가 개발하고있는 지오 그램 소프트웨어를 사용해 볼 수 있습니다 : http://alice.loria.fr/software/geogram/doc/html/index.html
인텔 코어 I7에서 19 초 이내에 1,400 만 버텍스의 DT를 계산하는 병렬 알고리즘이 있습니다 (1 백만 버텍스의 경우 약 0.8 초 소요)