"거리 필드"란 무엇이며 충돌 감지에 어떻게 적용됩니까?


12

"거리 필드"를 발견했을 때 정적 및 동적 객체가있는 장면에서 충돌을 감지하는 효율적인 방법을 찾고있었습니다.

이 개념을 검색하고 이해하려고했지만 매우 복잡한 언어로 작성된 논문 만 찾을 수있었습니다. 거리 필드가 무엇인지, 충돌 감지에 어떻게 사용할 수 있는지 쉽게 설명 할 수 있습니까?


거리지도를 의미 했습니까?
LearnCocos2D

답변:


13

거리 필드 ( 또는 거리 또는 거리 변환 맵 ) 격자 내의 각 셀로부터 가장 짧은 거리를 나타내는 구조 격자로 하는 다른 특성을 가진 세포에 세포. 대부분 "기타 속성"은 플레이어가 통과 할 수없는 벽이나 메쉬 표면과 같은 경계 유형의 셀입니다.

디스턴스 필드는 많은 적용 가능성이 있습니다. 예를 들어, 그것들이 어떻게 이동 안내를 구현하기 위해 어떻게 사용될 수 있는지 상상할 수 있습니다 (위험하거나 바람직한 물체에 대한 거리 맵을 작성하고 그것들에 의한 가중치를 결정함으로써).

그러나 충돌에 대해 구체적으로 물었습니다. 필드의 범위가 커짐에 따라 거리 필드의 재구성이 매우 느려질 수 있기 때문에 거리 필드를 사용하여 두 움직이는 물체 사이의 충돌 감지를 신속하게 수행하는 것은 다소 비효율적 일 수 있습니다 (특히 3D에서는 생성 시간을 개선하는 방법이 연구 분야 임).

따라서 거리 장 충돌은 주로 동적 물체와 정적 물체의 충돌을 감지하는 데 사용됩니다. 가장 흔하게, 나는 장면에서 천 (또는 다른 변형 가능한) 객체와 다른 고정 된 객체의 충돌감지하기 위해이 작업을 수행했습니다 .

정교하게, 이것은 정적 오브젝트에 대해 부호있는 거리 필드를 사용하여 이루어집니다. 여기서 한 부호 (보통 음수)는 메쉬 내부 의 셀을 나타내고 다른 부호 (명백히 양수)는 메쉬 외부의 셀을 나타냅니다. 클로 쓰 메쉬의 파티클은 스태틱 메시의 로컬 공간으로 변형 될 수 있으며, 주어진 클로 쓰 시뮬레이션 단계에서 파티클의 "이전"및 "이후"위치를 거리 필드와 비교하여 부호가 변경되었는지 여부를 확인할 수 있습니다 (및 따라서 충돌이 발생했습니다). 예 를 들어이 2003 논문에서 천 시뮬레이션에 대해 논의 된 방법 입니다.

거리 필드를 유일한 충돌 감지 방법으로 사용하지 않는 것이 좋습니다. 그들은 자신이 잘하는 것에 대해 상당히 효율적일 수 있지만 모든 것에 능숙하지는 않습니다. 효율적인 충돌 감지를 수행하는 가장 좋은 방법은 계층을 탐색 할 때 정확도를 높이면서 여러 방법을 계층 적으로 자주 사용하는 것입니다.


5

거리 필드는 무엇입니까?

형상 및 컴퓨터 그래픽에서 이미지 처리에도 사용되는 거리 필드 (간단한 단어로 표시)는 가장 가까운 다각형 객체의 거리 또는 이미지 처리에 특별한 속성이있는 픽셀이있는 각 셀의 레이블 (이미지 처리의 픽셀)입니다. .

즉,지도에 의해 정의 된 특수 속성이있는 가장 가까운 객체의 값이있는 각 셀의 레이블입니다. 응용 프로그램에 따라 개체가 다릅니다.

여기에 이미지 설명을 입력하십시오

위의 이미지에는 경계 픽셀에 대한 거리 맵이 포함되어 있습니다. 각 픽셀에 가장 가까운 경계 픽셀까지의 거리가 어떻게 포함되어 있는지 확인하십시오. 거리는 맨해튼 거리를 사용하여 계산됩니다.

거리를 계산하는 방법에는 여러 가지가 있으며 일반적인 방법은 다음과 같습니다.

충돌 감지에 어떻게 적용됩니까?

장면에서 오브젝트의 거리 맵을 유지함으로써 거리에 따라 두 오브젝트가 충돌하는지 확인할 수 있습니다. 불행하게도 그러한지도를 유지하는 것은 비싸다. 그리고 이것은 일반적으로 천 시뮬레이션과 같은 자체 교차 객체에 사용되며 객체의 특성으로 인해 거리 맵을 더 효율적으로 유지 관리하고 업데이트 할 수있었습니다.


자체 교차 객체에서 왜 이것이 "보다 효율적으로"수행 될 수 있습니까?
lucidbrot
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.