1

Xcode 4.5.2의 OpenGL 게임 템플릿을 기반으로하는 프로젝션 매트릭스 설정 코드가 포함 된 앱이 있습니다. update 함수에서 [[UIDevice currentDevice] userInterfaceIdiom]UIDeviceOrientationIsLandscape:UIDeviceOrientationIsPortrait:을 쿼리하여 baseModelViewMatrix에 대한 적절한 z- 변환 값을 설정했습니다. 이렇게하면 효과적으로 각 장치에 대해 오리엔테이션 기준으로 화면에 렌더링 된 영역의 크기를 설정할 수 있습니다. 또한 updatewillAnimateRotationToInterfaceOrientation:duration:에서 호출하여 런타임 중에 장치의 각 방향에 대한 올바른 렌더링 비율을 유지합니다.GLKit 렌더링 및 iOS 장치 방향 (페이스 업/다운)

이 모든 것이 정상적으로 작동하지만 기기가 정면 또는 정면을 향하고있을 때 내 장면이 표시되지 않고 빈 GLKView로 보이는 부분 만 보았습니다. 장치를 그라운드 평면에 수직 인 방향으로 회전 시키면 장면이 예상되는 동작으로 복원됩니다. UIDeviceOrientationIsValidInterfaceOrientation:을 확인해 보았는데, 필요한 것으로 처리해야하는 것처럼 보였지만, 동작에 어떤 차이도 보이지 않았습니다.

제가 생각하기에 GLKit은 방향 변경이 감지되었을 때 GLKView를 자동으로 업데이트하지만이 특정 동작을 유발할 수있는 원인에 대한 명확한 답을 찾지 못했습니다. 무슨 일이 일어나고 있는지에 대한 생각? 미리 감사드립니다.

답변

0

GLKMatrix4MakeLookAt와 같은 기능을 사용하는 경우보기 방향이 위쪽 방향과 평행하지 않도록해야합니다. 똑바로 위아래로 볼 경우 카메라의 "위로"벡터를 0,0, -1 또는 0,0,1과 같은 다른 값으로 조정해야합니다.