2012-01-05 4 views
5

현재 OpenGL 게임에서 작업 중이며 최근에 iPad 이외에도 iPhone을 지원하도록 리팩토링하기 시작했습니다. 가능한 한 최소한의 작업을 제공하기 위해 EAGLView를 480x360 (iPad 종횡비 유지) 크기로 조정하고보기를 위로 이동하여 y의 원본을 -20으로 설정했습니다 (내용을 중앙에 배치하기 위해). , 가장자리가 잘릴 수 있으므로).UIView가 부분적으로 오프 스크린 인 경우 OpenGL ES 성능 문제가 발생했습니다.

이 결과는 (59-61 fps와 동일한 프레임 지속 시간을보고하는 CADisplay 링크에도 불구하고) 기기에서 갑자기 성능이 나타나며 iPad 버전과 나란히 비교했을 때 20 % 이상 느린 것으로 나타났습니다.

그런 다음 화면 크기를 480 x 320으로 조정했는데 성능이 정상으로 돌아갔습니다 (렌더링 된 내용에는 더 이상 올바른 종횡비가 없음).

'화면 꺼짐'렌더링으로 인해 성능이 저하되고 디스플레이 링크가 여전히 60fps로 실행되고 있다고 생각하는 이유는 무엇입니까?

아이디어가 있으십니까? 감사합니다.

답변

0

이것은 대부분 자연스러운 추측이지만 클리핑 영역은 어떻게됩니까? 창과 하드웨어 가속 그래픽을 혼합 할 수있는 하드웨어 기능이있었습니다. 모바일 장치에서 제대로 구현되지 않았을 수 있습니다.

그러나 UIView를 화면에 표시하지 않도록하고 glViewport()를 사용하여보기의 일부를 화면 밖으로 이동 시키십시오. 동일하게 보이지만 파이프 라인의 다른 부분 (래스터 라이저)에서 처리되므로 훨씬 빨라야합니다.

+0

응답 해 주셔서 감사합니다. 귀하가 말한대로 뷰포트를 미세 조정하고 끝내고 이제는 꿈처럼 운영됩니다. – Weaverfish

+0

듣기 좋게 ... –

관련 문제