적어도 the documentation에 따라 Eye.getEyeView 및 Eye.getPerspective 행렬의 역할을 이해합니다. 첫 번째는 카메라의 위치를 가져 와서 현재 눈의 위치로 변환합니다. 이것은 머리 추적과 각 학생의 오프셋을 고려합니다. 두 번째는 투시 투영 행렬을 제공합니다. 이것은 머리 추적에 의존하지 않고 각 눈에 대한 시야에만 의존합니다.eye.getEyeView() 및 eye.getPerspective 행렬 이해
내가 이해할 수없는 것은 각 눈에 대한 시야의 차이입니다. 우리의 눈은 대략 전방을 향하고 있습니다. 그래서 그들은 동일해야합니까? 자, 행렬은 실제로는 다소 다릅니다. 이제 살펴 보자, 이들은 SDK에서 TreasureHunt 예의 변형 사용하여 onDrawEye 방법에 기록 된 :
왼쪽 EyeView을 매트릭스 :
0.99938333 & 0.013064715 & 0.03259317 & 0.0 \\
-0.022139862 & 0.95490175 & 0.2960955 & 0.0 \\
-0.02725487 & -0.2966345 & 0.9546021 & 0.0 \\
0.03028951 & -0.0033823675 & 0.10220718 & 1.0
오른쪽 EyeView 매트릭스 :
0.99938333 & 0.013064715 & 0.03259317 & 0.0 \\
-0.022139862 & 0.95490175 & 0.2960955 & 0.0 \\
-0.02725487 & -0.2966345 & 0.9546021 & 0.0 \\
-0.03361049 & -0.0033823675 & 0.10220718 & 1.0
이를 약 0.064만큼 다른 a_ {41}을 제외하고는 동일합니다. 단위가 미터라면 나는 이것이 학생들 사이의 거리라고 생각합니까? 왜 3x3 방향 매트릭스가 동일한 지 알 수 있습니다. 그러나 네 번째 행의 다른 두 값인 a_ {42}와 a_ {43}이 왜 다른지는 알 수 없습니다. 눈의 위치는 한 축에서만 다릅니다! 우연히 모든 프레임에 공통적 인 것은 아닙니다.
이제 관점 행렬을 살펴 보자 :
왼쪽 관점 매트릭스 :
0.8990804 & 0.0 & 0.0 & 0.0 \\
0.0 & 0.762166 & 0.0 & 0.0 \\
0.106264874 & 0.08848558 & -1.00002 & -1.0 \\
0.0 & 0.0 & -0.0200002 & 0.0
오른쪽 관점 매트릭스 :
0.89908034 & 0.0 & 0.0 & 0.0 \\
0.0 & 0.762166 & 0.0 & 0.0 \\
-0.10626444 & 0.08848558 & -1.00002 & -1.0 \\
0.0 & 0.0 & -0.0200002 & 0.0
이는 A_ {31} 다르다. 나는 그 값에 단위를 적용하는 것이 타당하지 않다고 생각한다. (그러나 내가 잘못하면 나를 바로 잡는다.) 이것은 왼쪽이나 오른쪽으로 0.1만큼 출력 이미지를 이동시키는 것처럼 보일 것입니다. 이 두 행렬은 동일하고 차이점은 eyeView 행렬에서 고려해야합니다. 모두 0으로 변경하면 3D 효과가 사라집니다.
아무도 내게 무슨 일이 벌어 졌는지 알려줄 수 있습니까?