다음을 통해 공유


월드 고정 물리학 샘플

물리학 빔 샘플은 World Locking Tools의 월드 고정 좌표계를 통해 구현되는 몇 가지 가상 물리학적 환경을 살펴보세요.

배경 정보

HoloLens에서는 들어오는 센서 데이터 또는 기존 데이터의 재처리 때문에 공간 앵커와 헤드 또는 기타 공간 앵커 간의 관계가 언제든지 변경될 수 있습니다.

Unity의 공간 앵커는 연결된 GameObject를 함께 끌어 기본 공간 앵커의 포즈 변경에 반응합니다. 이 움직임으로 인해 물리학 시뮬레이션에 어려움이 발생합니다.

  • 공간이 고정된 GameObject의 포즈는 프레임마다 공간 앵커에 의해 명시적으로 설정되므로 시뮬레이션(예: 모멘텀)에서 설정할 수 없습니다.
  • 공간 앵커는 GameObject의 포즈를 자주 업데이트하기 때문에 다른 정지 RigidBodies에 비해 휴지 상태인 것처럼 보이지 않습니다.
  • Unity 좌표계의 암시적 변화로 인해 공간 앵커가 정적 홀로그램의 좌표를 조정하여 실제 세계를 기준으로 고정된 상태로 유지하므로, 경로 및 궤적과 같은 물리학 계산이 빗나갑니다. 예를 들어 홀로그램이 궤적 계산과 대상에 도달하는 사이에 공간 앵커에 의해 위치가 변경되면 홀로그램을 완벽하게 조준한 발사체가 여전히 빗나갑니다.

측정된 공간 앵커와 여기에 고정된 시각적 가상 개체 간의 관계가 일관적이지 않으면 World Locking Tools는 Unity의 공간 앵커처럼 가상 개체를 조정하는 대신 헤드 변환을 조정하여 이러한 불일치로부터 인식된 아티팩트를 최소화합니다. 이렇게 하면 가상 개체가 안정적인 좌표 공간에서 일관되게 표시되어 위의 문제를 해결할 수 있습니다.

샘플 빌드

이 샘플을 사용하려면 SpatialPerception 기능이 필요합니다. 음성 명령에도 마이크 기능이 필요합니다.

이 샘플을 사용하려면 프로젝트의 태그 및 계층에 다음 계층을 추가해야 합니다.

  • Pillared
  • SpatialMapping

데모 실행

컨트롤 HUD

이 기본 HUD는 이 물리학 빔 샘플과 관련이 없지만, World Locking Tools의 기능 탐색 동작에 대한 런타임 제어만 가능합니다. World Locking Tools의 초기 설정에 설명된 대로 애플리케이션에서 World Locking Tools를 사용하여 앱을 개발하기 위한 드롭인으로 사용할 수 있습니다.

샘플 HUD의 스크린샷

진단 통계는 기본적으로 표시되지만, 컨트롤 HUD에서 사용하지 않도록 설정할 수 있습니다.

모드 라디오 단추

샘플은 언제든지 다음 중 한 가지 모드에 있습니다.

  • 유휴 - 물리학 샘플이 현재 입력을 처리하고 있지 않습니다. 물론 HUD 및 라디오 단추 메뉴는 계속해서 입력을 처리합니다.

  • 다트 던지기 - 기본 물리학 법칙에 따라 궤적이 계산되고 표시됩니다. 표시된 호는 선택 제스처를 통해 발사된 발사체가 따르는 경로를 보여줍니다. 던져진 다트는 탄도 궤적을 따라 이동하다가 SR(공간 재건) 메시를 포함하여 충돌하는 충돌 표면에서 튀어 오릅니다.

    이러한 다트는 아래에 설명된 대로 "제거 가능"합니다.

  • 기둥 추가 - 선택 제스처에서 광선이 지정된 방향으로 월드에 투사됩니다. 충돌 가능한 표면이 발견되면 해당 위치에서 세로 기둥이 장면에 추가됩니다.

    추가된 모든 기둥은 충돌 가능하며, 아래에 설명된 대로 지지대 역할을 할 수 있습니다. 그러나 다음과 같은 두 가지 종류의 기둥이 추가됩니다.

    • 기둥이 "제거 가능한" 표면에 설정되어 있으면 기둥이 물리적으로 시뮬레이션됩니다(예: 넘어질 수 있음).
    • 그렇지 않으면 기둥이 충돌할 수 있지만 고정적입니다.

    실제로 이 규칙은 기둥이 SR 메시에 추가되면 고정적이고 그렇지 않으면 동적임을 의미합니다.

    기둥은 "제거 가능"합니다.

  • 빔 추가 - 첫 번째 선택 시 광선이 장면에 투사되어 빔의 첫 번째 엔드포인트를 찾습니다. 그 후 선택 광선이 장면을 통해 이동하면 첫 번째 엔드포인트에서 현재 엔드포인트로 선이 그려집니다. 두 번째 선택 제스처는 첫 번째 엔드포인트와 현재 엔드포인트 사이에 뻗어 있는 빔을 만듭니다.

    빔과 기둥의 엔드포인트 간에 균형을 맞추려면 엔드포인트 기둥이 서로를 기준으로 고정된 위치를 유지하는 공간이 필요합니다.

    빔은 "제거 가능"합니다.

  • 개체 제거 - 선택 시 광선 투사 개체가 "제거 가능"한 경우 장면에서 제거됩니다. 제거된 개체가 받치고 있는 모든 개체가 떨어집니다.