Spatial Anchors

공간 앵커는 시스템이 시간이 지남에 따라 추적하는 세계에서 중요한 지점을 나타냅니다. 각 앵커에는 고정된 홀로그램이 정확하게 제자리에 유지되도록 다른 앵커 또는 참조 프레임을 기반으로 조정 가능한 좌표계가 있습니다. 앵커의 좌표계에서 홀로그램을 렌더링하면 지정된 시간에 해당 홀로그램에 대해 가장 정확한 위치를 지정할 수 있습니다. 이것은 시스템이 지속적으로 실제 세계에 따라 제자리에 다시 이동으로 홀로그램의 위치에 시간이 지남에 따라 작은 조정의 비용으로 온다.

애플리케이션 세션과 디바이스 간에 공간 앵커를 유지 및 공유할 수도 있습니다.

  • 로컬 공간 앵커를 디스크에 저장하고 나중에 다시 로드하면 애플리케이션은 단일 HoloLens의 여러 애플리케이션 세션에서 실제 환경에서 동일한 위치를 계산할 수 있습니다.
  • Azure Spatial Anchors를 사용하여 클라우드 앵커를 만들면 애플리케이션은 여러 HoloLens, iOS 및 Android 디바이스에서 공간 앵커를 공유할 수 있습니다. 각 디바이스가 동일한 공간 앵커를 사용하여 홀로그램을 렌더링하면 실제 세계에서 홀로그램이 같은 위치에 표시되는 것을 볼 수 있습니다. 이렇게 실제 세계 공유 환경을 제공합니다.
  • HoloLens, iOS 및 Android 디바이스에서 비동기 홀로그램 지속성에 Azure Spatial Anchors 를 사용할 수도 있습니다. 지속형 클라우드 공간 앵커를 공유하면 여러 디바이스가 동시에 함께 존재하지 않더라도 시간이 지남에 따라 동일한 지속형 홀로그램을 관찰할 수 있습니다.

지름이 5미터 이내인 테더링된 데스크톱 헤드셋의 경우 일반적으로 공간 앵커 대신 참조의 스테이지 프레임 을 사용할 수 있습니다. 이 프레임은 모든 콘텐츠를 렌더링하는 단일 좌표계를 제공합니다. 그러나 애플리케이션을 통해 사용자가 HoloLens에서 5미터를 초과하여 건물 전체 층에서 작업할 수 있는 경우 콘텐츠를 안정적으로 유지하기 위해 공간 앵커가 필요합니다.

공간 앵커는 세계에서 고정 상태를 유지해야 하는 홀로그램에 적합합니다. 배치된 앵커는 이동할 수 없습니다. 사용자와 함께 태그를 지정하는 동적 홀로그램에 더 적합한 앵커에 대한 대안이 있습니다. 고정된 참조 프레임(Unity의 월드 좌표에 대한 기초) 또는 연결된 참조 프레임을 사용하여 동적 홀로그램의 위치를 지정하는 것이 가장 좋습니다.

모범 사례

이 공간 앵커 지침은 실제 세계를 정확하게 따르는 고정 홀로그램을 렌더링하는 데 도움이 됩니다.

사용자가 배치하는 공간 앵커 만들기

일반적으로 사용자는 공간 앵커를 명시적으로 배치하는 사용자입니다.

예를 들어 HoloLens에서 애플리케이션은 사용자의 응시 선을 공간 매핑 메시와 교차하여 사용자가 홀로그램을 배치할 위치를 결정할 수 있습니다. 사용자가 탭하여 해당 홀로그램을 배치하면 교차 지점에 공간 앵커를 만든 다음, 홀로그램을 해당 앵커 좌표계의 원점에 배치합니다.

로컬 공간 앵커는 쉽게 만들 수 있습니다. 여러 앵커가 기본 센서 데이터를 공유할 수 있는 경우 시스템은 내부 데이터를 결합합니다. 홀로그램의 엄격한 그룹과 같이 아래에 설명된 경우를 제외하고 사용자가 명시적으로 배치하는 각 홀로그램에 대해 새 로컬 공간 앵커를 만드는 것이 좋습니다.

항상 앵커의 3미터 범위 내에서 고정된 홀로그램 렌더링

공간 앵커는 앵커의 원점 근처에 좌표계를 안정화합니다. 원본에서 3미터 이상 홀로그램을 렌더링하는 경우 홀로그램은 레버 암 효과로 인해 해당 원점으로부터의 거리에 비례하여 눈에 띄는 위치 오류를 경험할 수 있습니다. 홀로그램이 사용자와 멀리 떨어져 있기 때문에 사용자가 앵커 근처에 있는 경우에도 작동합니다. 즉, 먼 홀로그램의 각도 오류는 작습니다. 그러나 사용자가 먼 홀로그램까지 걸어가면 보기가 커 멀리 떨어진 앵커 원점의 레버 암 효과가 분명해집니다.

고정 클러스터를 형성하는 홀로그램 그룹화

애플리케이션에서 이러한 홀로그램이 서로 고정된 관계를 유지하도록 예상하는 경우 여러 홀로그램이 동일한 공간 앵커를 공유할 수 있습니다.

예를 들어, 방에 홀로그램 태양계에 애니메이션을 적용하는 경우 모든 태양계 물체를 중앙의 단일 앵커에 묶는 것이 좋습니다. 이렇게 하면 서로에 따라 원활하게 이동합니다. 이 경우, 구성 요소 부품이 앵커 주위를 동적으로 움직이고 있음에도 불구하고 전체적으로 고정된 태양계입니다.

홀로그램 안정성을 유지하기 위한 주요 주의 사항은 위의 3미터 규칙을 따르는 것입니다.

로컬 공간 앵커가 아닌 고정 참조 프레임을 사용하여 매우 동적인 홀로그램 렌더링

방 주위를 걷는 문자나 사용자 근처 벽을 따라 이어지는 부동 UI와 같이 매우 동적 홀로그램이 있는 경우 로컬 공간 앵커를 건너뛰고 고정된 참조 프레임에서 제공하는 좌표계에서 직접 홀로그램을 렌더링하는 것이 가장 좋습니다. Unity에서는 WorldAnchor 없이 홀로그램을 월드 좌표에 직접 배치하여 이를 달성합니다. 고정된 참조 프레임의 홀로그램은 사용자가 홀로그램과 멀리 떨어져 있을 때 드리프트가 발생할 수 있습니다. 그러나 이것은 동적 홀로그램에 대해 눈에 띄는 가능성이 적습니다 : 홀로그램은 어쨌든 지속적으로 이동하거나 그 움직임은 지속적으로 드리프트가 최소화 될 사용자와 가깝게 유지합니다.

동적 홀로그램의 흥미로운 사례 하나는 고정된 좌표계 사이를 애니메이션으로 이동하는 개체입니다. 예를 들어 10미터 떨어져 있는 두 개의 성이 각각 다른 성에서 대포를 발사하는 하나의 성으로 자체 공간 앵커에 있을 수 있습니다. 대포가 발사되면 첫 번째 성의 고정 좌표계에서 대포와 일치하도록 고정된 참조 프레임의 적절한 위치에 렌더링할 수 있습니다. 그런 다음, 탄환이 공중으로 10미터 날아갈 때 고정 참조 프레임의 궤도를 따를 수 있습니다. 대포가 다른 성에 도달하면 두 번째 성의 고정 좌표계로 이동하여 해당 성의 단단한 몸체로 물리학 계산을 할 수 있습니다.

디바이스 간에 매우 동적 홀로그램을 공유하는 경우 고정된 참조 프레임을 디바이스 간에 공유할 수 없으므로 부모 역할을 할 클라우드 공간 앵커를 선택합니다. 그러나 동적 홀로그램 또는 이를 보는 디바이스가 앵커의 3미터 반경 내에 유지되어 홀로그램이 모든 디바이스에서 안정적으로 표시되도록 해야 합니다.

공간 앵커 그리드를 만들지 않음

사용자가 이동할 때 애플리케이션에서 공간 앵커의 일반 그리드를 삭제하여 동적 개체를 앵커에서 앵커로 전환할 수 있습니다. 그러나 시스템 자체가 내부적으로 유지 관리하는 심층 센서 데이터의 이점 없이 애플리케이션에 대한 더 많은 관리가 포함됩니다. 이러한 경우 위의 섹션에 설명된 대로 홀로그램을 고정된 참조 프레임에 배치하여 더 나은 결과를 얻을 수 있습니다. 정적 공간 주위에 클라우드 공간 앵커 집합을 미리 배치할 때는 임의의 앵커 그리드를 만드는 대신 사용자가 위의 원칙에 따라 들어오는 키 홀로그램의 위치에 공간 앵커를 배치하는 것이 좋습니다. 이렇게 하면 해당 키 홀로그램의 안정성을 극대화할 수 있습니다.

더 이상 필요하지 않은 로컬 공간 앵커 릴리스

로컬 공간 앵커가 활성화되어 있는 동안 시스템은 해당 앵커 근처에 있는 센서 데이터를 유지하는 데 우선 순위를 줍니다. 공간 앵커를 더 이상 사용하지 않는 경우 해당 좌표계에 대한 액세스를 중지합니다. 이렇게 하면 필요에 따라 기본 센서 데이터를 제거할 수 있습니다.

이는 공간 앵커 저장소에 유지한 로컬 앵커에 특히 중요합니다. 이러한 앵커 뒤에 있는 센서 데이터는 애플리케이션이 향후 세션에서 해당 앵커를 찾을 수 있도록 영구적으로 유지되므로 다른 앵커를 추적하는 데 사용할 수 있는 공간이 줄어듭니다. 이후 세션에서 다시 찾아야 하는 로컬 앵커만 유지합니다. 사용자에게 더 이상 의미가 없는 경우 스토어에서 제거하는 것이 좋습니다.

클라우드 공간 앵커의 경우 상황에 따라 스토리지를 확장할 수 있습니다. 필요한 만큼 클라우드 앵커를 저장할 수 있으며, 사용자가 앵커가 다시 필요하지 않음을 알고 있을 때 해제할 수 있습니다.

추가 정보