프레임 ( Frame )
프레임은 화면에 한 번 그려지는 그림 ( 이미지 ) 한 장을 의미한다.
비디오나 게임에서는 이 프레임들이 연속적으로 빠르게 표시되어 움직이는 것처럼 보이는 착시 효과를 낸다.
- 영화 : 1초에 24 프레임 ( 24 FPS )
- 일반 모니터 : 60 FPS
- 게이밍 모니터 144 FPS , 240 FPS
1초 동안 화면이 몇 번 새로 그려지는가가 프레임 속도 ( FPS , Frames Per Second ) 이다.
인간의 시각과 프레임
인간의 눈은 약 초당 24프레임 이상부터는 부드러운 연속 동작처럼 인식한다.
하지만 게임은 영화보다 즉각적인 반응성과 입력 지연 ( Latency ) 이 중요하므로 60 FPS 이상을 목표로 한다.
- 30 FPS → 약간 끊겨 보인다 ( 콘솔 기본 )
- 60 FPS → 부드럽고 표준적이다 ( PC 기본 )
- 120 ~ 240 FPS → 초고속 반응형 ( e스포츠 , VR )
게임 루프와 프레임의 관계
게임은 게임 루프 ( Game Loop ) 라는 반복 구조로 동작한다.
각 루프 한 번이 곧 한 프레임의 처리 과정이다.
한 프레임의 내부 과정
- 입력 ( Input ) 확인
→ 키보드 , 마우스 , 컨트롤러 입력을 받는다 - 로직 ( Update ) 계산
→ 캐릭터 이동 , 물리 연산 , AI , 충돌 처리 등 - 렌더 ( Render ) 단계
→ 카메라 시점으로 3D 장면을 2D 이미지로 그린다 - 출력 ( Display )
→ 모니터에 실제로 그 이미지가 표시된다
이 순환이 매 초 수십 번 일어나기 때문에 , 프레임마다 게임이 조금씩 변하고 애니메이션처럼 보이는 것이다.
프레임 레이트 ( FPS ) 와 성능
FPS ( Frame Per Second ) = 초당 처리되는 프레임 수
- FPS 가 높을수록
└ 애니메이션이 부드럽고 , 입력 반응이 빠르다 - FPS 가 낮을수록
└ 화면이 끊기고 ( 프레임 드랍 ) , 입력 지연이 커진다
| 구분 | 예시 | 영향 |
| CPU | 게임 로직 , AI , 물리 연산 | 프레임 계산 속도 |
| GPU | 그래픽 렌더링 | 프레임 그리기 속도 |
| RAM | 리소스 로딩 , 캐싱 | 데이터 병목 방지 |
| 해상도 / 이펙트 | 고해상도 텍스처 , 그림자 | GPU 부하 증가 |
- FPS 가 떨어지면 게임 루프가 제때 프레임을 완성하지 못하게 된다
Unity 에서의 프레임과 Time.deltaTime
Unity 는 매 프레임마다 Update( ) 를 호출한다
void Update()
{
transform.Translate(Vector3.forward * speed * Time.deltaTime);
}
여기서 Time.deltaTime 은 이전 프레임과 이번 프레임 사이에 걸린 시간 ( 초 ) 을 의미한다.
- 60fps → deltaTime ≈ 0.016초
- 30fps → deltaTime ≈ 0.033초
deltaTime을 곱해주면 프레임 속도에 상관없이 일정한 이동 속도를 유지할 수 있다.
프레임 독립적인 움직임을 위해 항상 deltaTime 을 사용한다.
프레임 버퍼와 렌더링 파이프라인
하드웨어 관점에서 프레임은 그래픽 카드 ( GPU ) 가 프레임 버퍼 ( Frame Buffer ) 에 그린 결과물이다
- CPU → 렌더링 명령 전달
- GPU → 장면을 렌더링 후 프레임 버퍼에 저장
- 모니터 → 버퍼의 이미지를 표시
더블 버퍼링 / 트리플 버퍼링 기술은 화면 찢김 ( tearing ) 을 막고 부드러운 렌더링을 돕는다.
프레임 타임 ( Frame Time )
프레임 타임 = 한 프레임을 처리하는 데 걸리는 시간
( 60 FPS → 16.6ms per frame )
| FPS | Frame Time |
| 30 | 33.3ms |
| 60 | 16.6ms |
| 120 | 8.3ms |
이 시간이 길어질수록 화면이 늦게 갱신되어 끊김이 발생한다.
개발자들은 FPS 보다는 Frame Time 을 일정하게 유지하는 것을 더 중요시하기도 한다.
정리
| 구분 | 설명 |
| Frame | 한 번 화면에 그려지는 이미지 한 장 |
| FPS | 초당 그려지는 프레임 수 |
| Frame Time | 한 프레임 처리에 걸리는 시간 |
| Game Loop | 입력 → 업데이트 → 렌더 과정을 반복 |
| Time.deltaTime | 프레임 간 경과 시간 ( Unity ) |
| Frame Buffer | GPU가 최종 이미지를 저장하는 메모리 공간 |
| 목표 | FPS 높이기 + Frame Time 일정하게 유지하기 |
비유
- 프레임은 영화의 필름 한 장면
- FPS 는 1초에 몇 장의 필름을 넘기는가
- deltaTime 은 필름 한 장을 넘기는 데 걸리는 시간
'🧊Unity Basic > 프레임&델타타임' 카테고리의 다른 글
| Graphics (0) | 2025.10.19 |
|---|---|
| 프레임 렌더링 (0) | 2025.10.19 |
| Time.deltaTime (0) | 2025.10.19 |