국가 선택/위치
Australia
Österreich
België
Canada
Canada - Français
中国
Česká republika
Denmark
Deutschland
France
HongKong
Iceland
Ireland
Italia
日本
Korea
Latvija
Lietuva
Lëtzebuerg
Malta
المملكة العربية السعودية (Arabic)
Nederland
New Zealand
Norge
Polska
Portugal
Russia
Saudi Arabia
Southeast Asia
España
Suisse
Suomi
Sverige
台灣
Ukraine
United Kingdom
United States
국가 선택/위치
België
Česká republika
Denmark
Iceland
Ireland
Italia
Latvija
Lietuva
Lëtzebuerg
Malta
Nederland
Norge
Polska
Portugal
España
Suisse
Suomi
Sverige

동일한 장면에서 6DoF와 3DoF 간을 전환하려면 어떻게 해야 하나요?

6DoF 장치가 있고 6DoF 모드에서 실행 중일 경우 콘텐츠가 6DoF와 3DoF 간에 전환된다고 가정할 수 있습니다. 콘텐츠에 3DoF와 6DoF 간 전환이 필요한 경우 주의할 사항이 몇 가지 있습니다.

헤드셋과 컨트롤러

3DoF에서 컨트롤러는 일반적으로 고정된 변환으로 인해 앞에 위치합니다. 고정된 변환은 컨트롤러와 컨트롤러를 사용하는 사람 사이에 거리를 유지하고 이 거리는 컨트롤러가 움직여도 변하지 않을 수 있습니다. 하지만 6DoF에서 고정된 변환은 제거해야 합니다. 제거되지 않은 경우에는 항상 컨트롤러와 컨트롤러를 사용하는 사람 사이가 분리됩니다.
일반적으로 6DoF에서 컨트롤러는 헤드셋과 동일한 위치에 배치됩니다. 이 위치는 센서의 본래 위치입니다.
Vector3(0, 0, 0)
. 3DoF으로 전환할 경우 헤드셋과 컨트롤러는 항상 본래 위치에 고정됩니다.

VR에서 헤드셋과 컨트롤러의 GameObject에 다른 조작이 없으면 사용자의 헤드에서 컨트롤러 모델이 나오고 헤드가 플로어 위에 있는 것을 볼 수 있습니다. 따라서 고정된 변환은 컨트롤러와 플로어 사이의 거리를 유지하기 위해 필요합니다.

자세 추적기

WaveVR_PoseTracker에서 3DoF 모드일 때 trackPositionfalse로 설정합니다. 이 플래그는 위치를 GameObject의 변형으로 업데이트하지 않습니다. 이 작업은 스크립트에서 수행할 수 있습니다.
controllerGameObject.GetComponent<WaveVR_PoseTracker>().trackPosition = false;

6DoF 모드로 전환하려면 trackPositiontrue로 설정하십시오.

렌더링

렌더링은 자세를 가져올 때 모든 프레임마다 origin type을 설정합니다. 원점 유형은 자세 좌표 (0,0,0)이 표시되는 방법을 결정합니다.
팁: 원점 유형은 런타임에서 변경할 수 있습니다.

3DoF에서는 WaveVR의 render.originWVR_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로 지정됩니다.

제출
감사합니다! 귀하의 피드백은 다른 사람들이 가장 도움이 되는 정보를 보는 데 도움이 됩니다.