프레임

less than 1 minute read


최적화 관점에서 fps와 frame-time을 생각해본다.

FPS

frame per second, frame rate

프레임 당 시간을 의미하며 프레임률이라고도 한다.

즉 1초 동안 보여지는 장면의 수를 뜻하며 예를 들어 60fps는 1초 동안 60장면을 화면에 그린다는 뜻이다.


Frame-time

화면에 한 프레임이 그려지는데 걸리는 시간을 말한다.

즉 한 프레임과 그 다음 프레임 사이를 통과하는데 걸리는 시간이다.

예를 들어 frame time 16ms는 한 장면을 그리는데 16ms 가 소요된다고 볼 수 있다.


두 개념은 다음과 같이 계산할 수 있다.

FPS Frame time
30 1/30(33.33ms)
60 1/60(16.67ms)
90 1/90(11.11ms)

하지만 이 수치는 이상적인 값으로 실제로는 다를 수 있다.


fps vs frame-time

이 경우 동일한 10fps이지만 하나는 일정한 속도로 프레임들이 보여지지만 다른 하나는 프레임마다 보여지는 속도에 차이가 있다.

이렇게 프레임이 전반적으로 불균일한 성능으로 지속적으로 반복된다면 게임에서 심각한 시차 문제로 나타날 수 있다.

따라서 최적화할 때 fps를 올리는것과 더불어서 frame time이 전체적으로 일관적이면서 이상적인 값에 가까워지도록 해야한다.


또한 frame time을 보면서 더 오랜 시간이 걸리는 특정 프레임을 찾을 수 있고 이러한 문제가 발생하는데는 CPU, RAM 등 여러 외부적인 요인이 있으며 프로그램의 전체적인 성능에 영향을 미치는 문제점을 파악하는데 지표가 될 수 있다.