-
VIVE Wave
-
SDK
- VIVE Wave란 무엇인가?
- Wave SDK는 어디에서 다운로드할 수 있나요?
- Wave Developer Community 포럼에 액세스하려면 어떻게 해야 하나요?
- 사용자 지정 패키지를 가져온 후 컴파일 또는 빌드 오류를 해결하려면 어떻게 해야 하나요?
- 컨트롤러를 장면에 삽입하려면 어떻게 해야 하나요?
- 동일한 장면에서 다른 추적 자세 설정이 있는 헤드를 전환하려면 어떻게 해야 하나요?
- 동일한 장면에서 6DoF와 3DoF 간을 전환하려면 어떻게 해야 하나요?
- 이벤트를 받거나 시스템 오버레이를 클릭할 수 없는 이유는 무엇인가요?
- 런타임에 컨트롤러 객체를 가져오려면 어떻게 해야 하나요?
- 컨트롤러 포인터를 표시하거나 숨기려면 어떻게 해야 하나요?
- 컨트롤러 모델 객체를 루트에서 이미터로 변경하려면 어떻게 해야 하나요?
- 컨트롤러가 이벤트를 전송했는지 확인하려면 어떻게 해야 하나요?
- 회전 전용 환경에서 컨트롤러 위치를 설정하려면 어떻게 해야 하나요?
- 장면에 하나의 컨트롤러만 표시하려면 어떻게 해야 하나요?
- 플로어와 헤드의 거리를 구하려면 어떻게 해야 하나요?
-
-
VIVE SRWorks
-
VIVE 아이 및 페이셜 트래킹
- VIVE 아이 및 페이셜 트래킹 SDK 및 런타임은 어디에서 다운로드할 수 있습니까?
- 아이 트래킹을 보정하려면 어떻게 해야 하나요?
- VIVE 아이 및 페이셜 트래킹에는 어떤 드라이버가 필요하나요?
- VIVE 아이 및 페이셜 트래킹 런타임은 어떻게 업데이트합니까?
- VIVE Pro Eye 펌웨어를 업데이트하려면 어떻게 해야 하나요?
- 앱을 시작할 때 Windows에서 권한 변경 메시지가 표시되는 이유는 무엇인가요?
- 아이 카메라 버전이 "N/A"으로 표시됩니다. 오류인가요?
- 다른 아이 트래킹 문제가 발생하면 어떻게 해야 하나요?
- 눈 보정 초기화 및 OpenCL 오류가 발생했습니다. 어떻게 해야 하나요?
- VIVE 무선 어댑터를 사용할 때 아이 트래킹이 작동할 수 있습니까?
- 사용자에게 시각 장애가 있는 경우 교정 데이터는 어떻게 됩니까?
- 추적 가능한 FOV란 무엇인가요? 추적 정확도는 어떤가요?
-
VIVE 핸드 트래킹
-
VIVE 3DSP Audio
-
VIVEPORT
-
VIVE Business 스트리밍
-
얼굴 추적
-
핸드 트래킹
-
동일한 장면에서 6DoF와 3DoF 간을 전환하려면 어떻게 해야 하나요?
6DoF 장치가 있고 6DoF 모드에서 실행 중일 경우 콘텐츠가 6DoF와 3DoF 간에 전환된다고 가정할 수 있습니다.
콘텐츠에 3DoF와 6DoF 간 전환이 필요한 경우 주의할 사항이 몇 가지 있습니다.
헤드셋과 컨트롤러
3DoF에서 컨트롤러는 일반적으로 고정된 변환으로 인해 앞에 위치합니다. 고정된 변환은 컨트롤러와 컨트롤러를 사용하는 사람 사이에 거리를 유지하고 이 거리는 컨트롤러가 움직여도 변하지 않을 수 있습니다. 하지만 6DoF에서 고정된 변환은 제거해야 합니다. 제거되지 않은 경우에는 항상 컨트롤러와 컨트롤러를 사용하는 사람 사이가 분리됩니다.
일반적으로 6DoF에서 컨트롤러는 헤드셋과 동일한 위치에 배치됩니다. 이 위치는 센서의 본래 위치입니다.
Vector3(0, 0, 0). 3DoF으로 전환할 경우 헤드셋과 컨트롤러는 항상 본래 위치에 고정됩니다.
VR에서 헤드셋과 컨트롤러의 GameObject에 다른 조작이 없으면 사용자의 헤드에서 컨트롤러 모델이 나오고 헤드가 플로어 위에 있는 것을 볼 수 있습니다. 따라서 고정된 변환은 컨트롤러와 플로어 사이의 거리를 유지하기 위해 필요합니다.
자세 추적기
WaveVR_PoseTracker에서 3DoF 모드일 때 trackPosition을 false로 설정합니다. 이 플래그는 위치를 GameObject의 변형으로 업데이트하지 않습니다. 이 작업은 스크립트에서 수행할 수 있습니다.
controllerGameObject.GetComponent<WaveVR_PoseTracker>().trackPosition = false;
6DoF 모드로 전환하려면 trackPosition을 true로 설정하십시오.
렌더링
렌더링은 자세를 가져올 때 모든 프레임마다 origin type을 설정합니다. 원점 유형은 자세 좌표 (0,0,0)이 표시되는 방법을 결정합니다.
팁: 원점 유형은 런타임에서 변경할 수 있습니다.
3DoF에서는 WaveVR의 render.origin을 WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnHead_3DoF로 설정하십시오. 자세한 내용은 SDK API의 설명을 참조하십시오.
var render = WaveVR_Render.Instance; render.origin = WVR_PoseOriginModel.WVR_PoseOriginModel_OriginOnHead_3DoF;
아이에서 헤드로 변환
아이에서 헤드로 변환은 아이 공간 좌표를 헤드 공간 좌표로 변경하는 변환입니다.
예를 들어 왼쪽 눈이 (0, 0, 1) 위치의 앞에 있는 사과를 보는 경우에는 전체 공간에서 사과가 있는 실제 위치는 다음과 같습니다.
HeadPose * EyeToHeadTransform * (0,0,1)
EyeToHeadTransform은 다음으로 가정하고
| 1 0 0 -0.03 | | 0 1 0 0 | | 0 0 1 0 | | 0 0 0 1 |
헤드셋의 변환은 다음으로 가정합니다.
| 1 0 0 0 | | 0 1 0 1.8 | | 0 0 1 0 | | 0 0 0 1 |
아이의 변환(-0.03, 0, 0)은 헤드 공간에서 가져올 수 있습니다. 사과는 다음 위치에 있습니다.
- 헤드 공간의 (-0.03, 0, 1)
- 전체 공간의 (-0.03, 1.8, 1)
또한 사과의 위치는 역변환된 전체 공간과 아이 공간으로도 알 수 있습니다.
EyeToHeadTransform^-1 * HeadPose^-1 * (-0.03, 1.8, 1)
EyeToHeadTransform은 6DoF 및 3DoF에서 값이 다를 수 있습니다.
left eye in 6DoF | 1 0 0 -0.03 | | 0 1 0 0.05 | | 0 0 1 0.05 | | 0 0 0 1 | left eye in 3DoF | 1 0 0 -0.03 | | 0 1 0 0 | | 0 0 1 -0.15 | | 0 0 0 1 |
6DoF 변환 값은 헤드셋에 따라 달라집니다. 3DoF에서 변환 값은 헤드의 회전 중심을 기반으로 하며 여기에서 z는 일반적으로 더 나은 사용자 경험을 위해 -0.15로 지정됩니다.
이 항목이 도움이 되었나요?
예
아니오
제출
감사합니다! 귀하의 피드백은 다른 사람들이 가장 도움이 되는 정보를 보는 데 도움이 됩니다.