2012-07-05 4 views
2

FRAPS가 OpenGL 프레임 버퍼를 캡처하는 방법이 궁금합니다. 아무 것도 저장되지 않아도 glReadPixels을 반복 호출하는 것보다 훨씬 나은 것으로 보여지기 때문입니다. OpenGL 프레임 버퍼를 빠르게 캡처합니까?

나는 다음과 같습니다 간단한 OpenGL은 데모가 :

http://puu.sh/Gat5

내가 밀리 초 단위로 실제 프레임 시간과 비교하는 방법을 의미 프레임 속도 알고,하지만 나는 간단한 비교를 위해 그것을 사용하는거야 이리.

정상적으로 실행 때, 나는 glReadPixels를 호출 할 때 훨씬 넘는 8000

최대 크기의 60 FPS로 고정 FRAPS로 촬영할 경우

, 프레임 율이 낮아

(240)의 평균 프레임 속도를 얻을

및 아무것도하지 않으면 프레임 속도는 225입니다.

FRAPS는 어떻게 을 기록하여 합리적인 시간 내에 출력합니까? 매우 가벼운 인코딩 형식을 사용하는 녹음 스레드를 사용합니까?

+0

아마도 FRAPS는 네 번째 프레임마다 'glReadPixels' 만 호출할까요? 어쨌든 디스플레이에 도달하지 않을 여분의 프레임을 왜 렌더링하고 싶습니까? –

+0

여기에 요점은 240 프레임을 기록하고 싶지는 않지만 렌더링 속도가 크게 떨어지는 것입니다. – Overv

+0

그리고 요점은 초당 60 프레임을 캡처하는 FRAPS가 초당 225 프레임을 캡처하여 코드보다 느려질 수 있다는 것입니다. –

답변

1

Ben Voigt가 말한 것처럼, 초당 30 또는 60 프레임만을 캡처 (즉, glReadPixels 호출) 할 때 속도 저하가 훨씬 적습니다.

관련 문제