2017-11-13 1 views
0

두 개의 3D 점 A와 B가 있습니다.이 점들은 쿼드 메쉬 인 M에 의해 형성된 표면에 놓입니다. A와 B는 메쉬의 정점과 형성되는 선이 될 수 있습니다. 사이에 분명히 표면에 정확하게 거짓말을 보장하지 않습니다.쿼드 메쉬로의 3D 라인 투영

이미지를 A에서 B로 여행하려고합니다. 표면에 선을 투영 할 수 있다고 상상한다면, A에서 B까지의 도보를 완료하면서 투영이 교차하는면 목록을 복구하고자합니다. 선 실제로 메쉬 내부 또는 외부에있을 수있는 것은 아닙니다. 실제로 내부에서 외부로 또는 그 반대로 전환 할 수 있습니다.

당신이 B.

나는 돈에의 흔적을 따라 당신이 방문 할면 어떤 "하늘"이 행 다음에 메시 표면을 따라 산책하는 것처럼 당신은 그것을 생각할 수

측지선 거리를 복구해야하고 사전에 A-> B 선을 알고 있기 때문에 운동을 찾는 경로가 아닙니다.

어떻게 효율적으로 처리 할 수 ​​있습니까?

+0

메쉬에 대한 공간 계층 구조 (예 : Octree)를 계산하고 언급 한 A, B 및 언급 된 스카이 라인을 통과하는 평면과 교차하는면을 쿼리 할 수 ​​있습니다. 경로에 대해 올바른 행 순서를 생성하려면 하프 에지 메쉬 구조가 필요하거나 얼굴 인접성을 쿼리 할 수있는 다른 구조가 필요할 수 있습니다 – meowgoesthedog

답변

0

힌트 :

투사가 정말만큼 당신이 투사 방향이없는 것으로 정의되어 있지 않습니다. 어쩌면 표면에 최대한 직각 인 투영을 원할 것입니다. 어쩌면 일정한 방향으로 나아갈 수 있을까요? 후자의 경우 평면을 평면과 교차시켜야합니다.

선과 가까운면을 찾아야합니다. 세그먼트의 방향을 보면면이 선분으로 나타나며 투영 된 선 (단일 점으로 보임)에 가까운 선분을 찾아야합니다.

경계면의 계층 구조에 패싯을 배치 한 경우 방향을보고 후보 세그먼트 (면)를 효율적으로 찾을 수 있습니다. 구체를 사용하여 3D에서 경계선을 넘어선 (경계 된) 선과 교차하지 않는 경계선을 거부 할 수도 있습니다.

그런 다음 끝점에 가까운면을 사용하여면 방향을 선택하고면과면의 개별 교차점을 가져 와서 3D 폴리 라인을 재구성 할 수 있습니다.