오픈 이슈 갤러리

전체보기

모바일 상단 메뉴

본문 페이지

[게임] PC에서 콘솔처럼 영화적이고 부드러운 30프레임으로 똑같이 만드는 방법

아이엔에프피
댓글: 8 개
조회: 1146
추천: 1
2025-11-01 11:30:03
개요
저는 닌텐도 스위치와 야숨을 사기 전까지는 프레임은 높을수록 무조건 좋은 줄 알았습니다.
60프레임을 넘어 70, 90, 100... 그리고 그 이상 150, 240프레임 이렇게 높이면 아주 부드럽고 반응도 빠릿해서 정말 몰입감이 좋고 더 재밌어졌다고 느껴왔습니다.
하지만 AAA게임들(GTA5, 레데리2, 사펑, 어크 시리즈, 호라이즌 시리즈, 기타 등등)을 할때는 분명 풀옵인데 뭔가 이상하게 그래픽이 구린듯한 어색한 느낌을 받아왔습니다.
당시에는 그저 '게임 그래픽을 못 만들었으니까 구리겠지. 요즘 게임 수듄 ㅉㅉ'라고만 생각했습니다.

이제 와서 이 팁을 한번 더 쓰는 이유
과거에는 RTSS 프론트 엣지 싱크로만 30프레임 제한 하나만 하면 콘솔 느낌이 날 줄 알았습니다.
근데 이거 하나로는 부족하다는 걸 오늘 알아냈습니다.
RTSS 하나만 달랑 쓰면 그냥 눈 아프게 버벅거려 보입니다.
그래서 요번에 완전히 체감할 수 있는 방법을 알아내서 정리합니다.

전개
스위치1으로 야숨을 입문해보니 처음엔 야숨이 60프레임 게임인 줄 알았습니다.
PC에서 30프레임 제한 해봤었을때 겁나 눈 아프게 끊겼던 게 전혀 없었거든요.
근데 30프레임 게임인 걸 알았을때부터 '왜 야숨은 30프레임 게임이지만 끊기지 않는가?'부터 연구를 하기 시작했습니다.

요점부터 말하자면, 닌텐도가 닌텐도만 쓸 수 있는 아주 특별한 최적화 기술을 쓴 건 아니었습니다.
핵심은 '프레임타임'이었습니다. 프레임레이트가 아무리 고정돼있어도 프레임타임이 요동치면 끊겨보인다는 것이고, 이 프레임타임을 고정시키는 걸 '프레임 페이싱'이라고 부릅니다.
프레임 페이싱이 얼마나 잘 됐냐에 따라 게이머가 느끼는 부드러움이 달라집니다.
프레임레이트가 아무리 높아도 프레임타임이 조금이라도 요동치고 있으면 부드럽지 않습니다. 프레임레이트 자체가 낮으면 부드럽지 않고 눈 아픈 게 더 극대화될 뿐이고요.
프레임레이트가 높을수록 프레임타임은 낮아집니다. 1초에 프레임을 더 많이 보여주니까 프레임간 간격은 더 짧아지는 거죠.

그렇다면 콘솔에서는 왜 30프레임임에도 끊겨보이지 않았는가? 에 대해서도 알아봤습니다. (프레임 드랍을 말하는 것이 아닙니다.)
콘솔에는 시스템 레벨에서 프레임을 동기화시키는 API가 존재합니다.
소니, 마소, 닌텐도 모두 일정한 프레임 페이싱을 유지시켜주는 API call이 있습니다.
PC에도 아예 없진 않지만 콘솔의 'PresentInterval = 2'처럼 자동으로 일정한 페이싱을 해주는 통합 기능은 없습니다.
기껏해야 몇Hz마다 화면을 표시할지, 언제 다음 프레임을 보낼지, 마지막 프레임이 언제 표시됐는지를 확인할 수만 있을 뿐이고, 이런 것들은 타이밍 관찰은 가능하지만 보장을 해주지 않습니다.
그나마 콘솔 수준의 프레임 페이싱을 가능하게 하는 윈도우8.1부터 추가된 IDXGISwapChain2::GetFrameLatencyWaitable*!* API도 있지만, 너무 하드웨어에 가까운 로우레벨이라 개발이 빡세서 아무도 이걸 사용하지 않습니다.
DWM에서 최종 프레임 출력 타이밍을 DComposition API의 SetFrameRate()나 WaitForCommitCompletion() 같은 걸로 맞출 수 있지만, DWM 자체가 전체 윈도우 창을 다 관할하는 것이기 때문에 게임 엔진이 세밀하게 제어할 수가 없습니다. 게다가 독점 전체화면 모드에서는 DWM이 개입하지 않고요.
고로, PC에서는 프레임 페이싱을 위한 기능이 없다고 봐도 됩니다. PC에서 프레임 페이싱을 하려면 개발자가 콘솔에서보다 더 빡세게 일해야한다는 거죠. 콘솔에서는 그냥 대충 'PresentInterval = 2' 이렇게만 해줘도 알아서 완벽하게 페이싱을 해주고요.
그리고 지싱크, 프리싱크 같은 VRR은 보조적 역할만 할뿐 프레임 타이밍을 완전히 일정하게 해결해주지 않습니다.

전개2
그럼 30프레임도 부드러울 수 있다는 건 알겠고, 왜 프레임을 30으로 제한하는 걸까요? 2025년에 그냥 기본을 60으로 두고 그 이하는 완전히 다 없애버리지 않고요?
이건 저도 다른 콘솔 유저들이 '영화 같은 30프레임', '박진감 넘치는 30프레임'이라고 말하는 거보고 개소리라고 생각했던 건데,
프레임에 따라 연출이 달라질 수도 있다는 걸 알아냈습니다.
위아래 두 화면을 동시에 보면 위쪽이 엄청 끊겨보이는데, 위아래를 번갈아가며 손바닥으로 가리면서 보면 위쪽도 끊겨보이지 않습니다.
동시에 보면 24프레임과 60프레임을 왔다갔다 프레임드랍되는 거 같기 때문에 더 끊겨보일 뿐이고,
24만 쭉 보면 안끊겨보입니다.

초당 60장을 촘촘하게 보여주는 60프레임의 경우, 한 프레임에서 다음 프레임까지 걸리는 시간이 16.6ms로 아주 짧아서 움직임이 더 가볍게 보입니다.
24면 초당 24장, 30이면 초당 30장의 화면을 보여주기 때문에 한 프레임에서 다음 프레임까지 걸리는 시간이 30프레임이면 33.3ms, 24프레임이면 41.6ms로 길어서 움직임이 더 무겁게 보입니다. 묵직한 타격감을 위해 고의적으로 프레임 스킵시키거나 슬로우 모션을 넣는 걸 생각하면 이해가 쉽습니다.

전개3
낮은 프레임의 또 다른 연출상의 이점은 CG(그래픽)티가 덜 난다는 겁니다.
아바타 물의 길 24프레임 트레일러

아바타 물의 길 48프레임 HFR 트레일러

젤다 야숨 스위치1 버전 30프레임과 스위치2 에디션 60프레임 비교 영상 (이 영상도 위아래를 손으로 번갈아 가리면서 보셔야 제대로 비교가 됩니다.)

말로 설명이 잘 안되기는 하는데, 전반적으로 높은 프레임 쪽은 자연스럽다기보다는 인공적이라는 느낌이 들지 않나요? 그래픽도 뭔가 어설퍼 보이고요.
이 정도 차이면 범죄영화를 높은 프레임으로 보면 서로 봐주면서 합 맞추는 거 다 보여서 재미없을 거 같고요, 실제로 총 쏘고 총 맞고 찌르고 때려야 24프레임과 똑같은 느낌을 줄 수 있을 것 같습니다.
당연히 그래선 안되니까 높은 프레임으로 게임하는 것도 이런 면에서 보면 현실과 완벽하게 똑같아서 무한대의 폴리콘 갯수와 초초초초초고해상도의 텍스처를 쓰면 CG티가 안나겠네요. 묵직한 타격감은 전투할때만 해당 동작의 프레임만 일부러 스킵시키면 되고요.

정리
그래서 PC에서 콘솔 30프레임의 영화적이고 끊기지 않는 느낌을 완벽하게 똑같이 구현하는 방법은 이렇습니다.

  • HAGS(하드웨어 가속 GPU 일정 예약) 끄기 + 60Hz + 1/2 Vsync(수직동기화) + 프레임 제한 30 + RTSS 프론트 엣지 싱크 30프레임 제한 + VRR(지싱크, 프리싱크) 끄기
  • HAGS(하드웨어 가속 GPU 일정 예약) 끄기 + 120Hz + 1/4 Vsync(수직동기화) + 프레임 제한 30 + RTSS 프론트 엣지 싱크 30프레임 제한 + VRR(지싱크, 프리싱크) 끄기
하나라도 빼먹으면 안됩니다.


HAGS를 켜면 GPU 스케줄링을 윈도우 커널에서 안하고 GPU가 직접하는 식으로 더 빠르게 프레임을 출력시켜 딜레이를 줄이는데, 문제는 일정하게 출력시키는 게 아니라 프레임을 빨리 만들었으면 빨리 출력시키고 늦게 만들었으면 늦게 출력시키기 때문에 프레임타임이 요동칩니다.
롤, 오버워치, 배그, 발로란트, 리듬게임, 격투게임 같은 반응속도가 중요한 게임만 하는 게 아니라면 끄는 게 좋습니다.


다 그대로 따라했는데 그래픽카드 제어판이나 인게임 프레임 제한만 안한다면 인풋렉이 폭발합니다. 미친듯이 느려집니다.


다 그대로 따라했는데 RTSS 프론트 엣지 싱크 30프레임 제한만 안한다면 콘솔 느낌이 안납니다.

다 안따라하고 RTSS 하나만 사용하거나 Normal Vsync를 사용하거나 주사율이 30의 배수가 아니라면 타이밍이 어긋나서 눈이 아픕니다.

결론
  1. 콘솔 유저들이 말하는 '영화 같은 30프레임', '박진감 넘치는 30프레임'은 거짓말도 아니었고, 개소리도 아니었다.
  2. 수치적인 결과로만 드러나는 게 전부는 아니더라.
  3. 프레임은 높을수록 무조건 항상 좋은 게 아니더라.

Lv24 아이엔에프피

MBTI : INFP

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

AD