3D 포인트 세트를위한 가장 빠른 들로네 삼각 분할 라이브러리


26

3D 포인트 인 경우 수백만 세트로 들로네 삼각 분할을 수행하기위한 가장 빠른 라이브러리는 무엇입니까? GPU 버전도 있습니까? 다른 쪽에서 같은 점 집합의 보로 노이 테셀레이션을 사용하면 들로네 삼각 분할 (Delaunay Triangulation)을 얻는 데 도움이 될까요?


CGAL 및 TRIANGLE 소프트웨어에서 구현을 시도 했습니까? 두 가지 모두 알고리즘을 포함하며,이 알고리즘은 (이론적으로는) 가장 빠른 (병렬은 아니지만) 가장 빠른 알고리즘입니다. 영형(엔엘영형지(엔))
— Paul

Jonathan Shewchuk에는 스트림에 추가 데이터를 추가 할 수있는 경우 엄청나게 큰 데이터 세트를 처리 할 수있는 2D 용 스트리밍 버전도 있습니다. 이것을 위해 무엇을 사용하고 있습니까?
— Victor Liu

답변:


13

3 차원 들로네 삼각 분할 (사면 체화 )을 계산하기 위해 TetGen 은 일반적으로 사용되는 라이브러리입니다.

편의를 위해 다음은 단위 큐브에서 다수의 임의 포인트의 테레 데 랄화를 계산하는 데 걸리는 시간에 대한 약간의 벤치 마크입니다. 오래된 Pentium M에서는 100,000 포인트가 4.5 초 걸립니다.

Mathematica 그래픽

(이것은 Mathematica의 TetGen 인터페이스로 수행되었습니다. 얼마나 많은 오버 헤드가 도입되는지는 알 수 없습니다.)

다른 질문과 관련하여 : 이미 보로 노이 테셀레이션이있는 경우 들로네 삼각 분할을 얻는 것은 비교적 간단한 변환 입니다.


10

gStar4D 는 GPU를위한 빠르고 강력한 3D 들로네 알고리즘입니다. CUDA를 사용하여 구현되며 NVIDIA GPU에서 작동합니다.

GPU-DT 와 유사 하게이 알고리즘은 3D 디지털 보로 노이 다이어그램을 먼저 구성합니다. 그러나 3D에서는 위상 및 기하학적 문제로 인해 삼각 측량으로 이중화 할 수 없습니다. 대신, gStar4D는이 다이어그램의 주변 정보를 사용하여 4D로 들어 올린 별을 생성하고 GPU에서 효율적으로 별을 재생합니다. 이것으로부터 하부 선체를 추출함으로써, 3D 들로네 삼각 분할이 얻어진다.

가장 빠른 3D Delaunay 구현은 하이브리드 GPU-CPU 알고리즘 인 gDel3D 입니다.

GPU에서 병렬 삽입 및 뒤집기를 수행합니다. 결과는 Delaunay에 가깝습니다. 그런 다음 CPU에서 보수적 인 스타 재생 방법을 사용하여이 결과를 수정합니다.

이 두 가지 방법 모두 견고하므로 모든 종류의 축퇴 입력을 처리 할 수 ​​있습니다. 중간 데이터 구조를 보유하기에 충분한 GPU 메모리가 있으면 수백만 포인트를 처리 할 수 ​​있습니다.

공개 : 나는이 알고리즘과 구현의 저자입니다 :)


Ashci에 SciComp.Se에 오신 것을 환영합니다! 전체 공개를 위해 귀하가이 소프트웨어의 저자임을 추가해야합니다 ( meta.scicomp.stackexchange.com/a/342/1804 참조 ).
— Christian Clason

3

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 만 포인트를 수행 할 수 있습니다.


또한 추천 이유를 확장 할 수 있습니까? 경험이 있습니까?
— Godric Seer

1

이미 점 집합의 보로 노이 다이어그램을 가지고 있다면 들로네 삼각 분할 (Delaunay Triangulation)을 계산하면 O (n) 만 걸립니다. 마찬가지로, voronoi 포인트가 주어지면 O (1)에서 들로네 삼각형을 얻을 수 있습니다. 그것들은 이중이므로 가능할 때 마다이 상황을 악용하십시오.


1

내가 개발하고있는 지오 그램 소프트웨어를 사용해 볼 수 있습니다 : http://alice.loria.fr/software/geogram/doc/html/index.html

인텔 코어 I7에서 19 초 이내에 1,400 만 버텍스의 DT를 계산하는 병렬 알고리즘이 있습니다 (1 백만 버텍스의 경우 약 0.8 초 소요)


SciComp.SE에 오신 것을 환영합니다! 완전한 공개를 위해 (그리고 당신이 말하는 것을 알고 있음을 나타 내기 위해),이 소프트웨어의 개발자라는 것을 언급해야합니다.
— Christian Clason
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.