2011-09-09 2 views
4

현재 OpenGL ES iPhone 게임의 스크린 샷을 찍으려면 this method from Apple을 사용하고 있습니다. 스크린 샷이 멋지다. 그러나 스크린 샷을 찍으면 게임 플레이에서 약간의 더듬이가 발생합니다 (그렇지 않으면 60fps에서 원활하게 실행됩니다). the method from Apple을 수정하여 더 낮은 품질의 스크린 샷을 찍을 수 있습니다 (따라서 스크린 샷을 찍음으로 인한 더듬이 현상을 없애는 방법)?품질 향상 OpenGL ES 스크린 샷 (iPhone)

편집 # 1 : 최종 목표는 AVAssetWriter을 사용하여 게임 플레이의 동영상을 만드는 것입니다. 아마도 this SO post에서 참조 된 CVPixelBuffers를 생성하는보다 효율적인 방법이있을 것입니다.

답변

2

Apple 메서드는 디스플레이 버퍼에서 모든 데이터를 가져오고 GPU와 CPU간에 동기화 장벽 등을 트리거하는 glReadPixels()을 사용합니다. 그 부분을 더 빨리 또는 더 낮은 해상도로 만들 수는 없습니다.

일회성 비디오를 제작 하시겠습니까? 또는 사용자가 프로덕션 코드에서이 동작을 트리거 할 수있게 하시겠습니까? 전자의 경우 속도를 높이기 위해 모든 종류의 속임수를 쓸 수 있습니다. 모든 것을 작은 크기로 렌더링하고 present을 전혀하지 않고 입력 데이터를 게임에 기록하는 등의 방법으로 프레임을 캡처하거나 그러한 트릭을 사용하거나 전체 시뮬레이션을 절반 속도로 실행하여 모든 프레임을 얻습니다.

여기에 실제 게임 내 기능이 필요하면 덜 도움이됩니다. 아마 다른 누군가가있을 것입니다.

+0

예 게임 내 기능을 찾고 있습니다. – SundayMonday

2

그렇지 않은 경우 모두 실패합니다.

다음 http://store.apple.com/us/product/MC748ZM/A

중 하나를 가져 오기 그리고 외부 장치의 일종을 통해 디지털 해당 컴포지트 비디오를 변환합니다. 오래 전 vhs 영화를 DVD로 변환했을 때이 작업을 수행했습니다.

+0

OP는 게임에서 단 시간 비디오가 아닌 게임 내 캡처 기능을 만들려고합니다. –

3

녹음 목적은 무엇입니까?

  • 장치에서 시퀀스를 재생하려면 개체 위치 등을 저장하고 3D로 시퀀스를 다시 그릴 수 있습니다. 또한 다른 뷰 위치의 시퀀스를 재생할 수도 있습니다.

  • 다른 게임/카메라로 게임 플레이를 녹화하거나 시뮬레이터에서 ScreenFlow와 같은 일부 화면 캡처 소프트웨어를 사용하여 일부 게임 플레이를 기록 할 수 있습니다.