[모니터를골라보자] ③프리싱크와 수직동기화

조회수 2017. 7. 14. 15:03 수정
번역beta Translated by kaka i
번역중 Now in translation
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 다양한 분야의 재밌고 유익한 콘텐츠를 카카오 플랫폼 곳곳에서 발견하고, 공감하고, 공유해보세요.

주사율만큼 중요하다

모니터 이야기를 계속 하고 있습니다. 2편에서 화면 주사율 이야기를 했습니다. 화면 주사율은 1초에 화면을 몇 번 새로 그려내는지를 표시하는 겁니다. 모니터의 기준은 대체로 60Hz로, 1초에 60장의 화면을 넘겨 움직이는 화면을 만들어내는 것이지요.


여기에서 하나 짚고 갈 게 있습니다. 바로 동기화입니다. 모니터가 1초에 60장의 화면을 뿌릴 수 있다고 해도 화면을 만들어서 보내는 쪽의 사정은 또 다릅니다. 특히 한 프레임이 아쉬운 게이머라면 주사율이 높은 모니터도 중요하지만 그만큼 동기화에 대한 고민도 해야 합니다.

(모니터를 골라보는 시간이 또 찾아왔어요)

요즘 모니터의 주사율은 대체로 높습니다. 60Hz는 기본이고, 요즘 고성능 게이밍 모니터들은 144Hz까지도 냅니다. 1초에 144장이라, 쉬울 것 같지만 만만치는 않습니다. 일반적인 데스크톱 화면에 워드프로세서로 글자를 입력한다거나, 웹브라우저로 글을 읽고, 동영상을 뿌리는 정도는 현재 CPU나 그래픽카드가 처리하기에 충분하기 때문이죠. 아마 요즘 PC는 모르긴 몰라도 1초에 1천 프레임이라도 뿌려낼 겁니다.


문제는 정확히 프레임 수를 만들어내지 못하는 경우에 생깁니다. 네, 게임 이야기입니다. 요즘 게임들은 미리 그려진 이미지를 쓰는 게 아니라 실시간으로 3D 그래픽을 그려냅니다. 게임에서 처리해야 할 폴리곤의 수는 기하급수적으로 늘어나고, 단순히 텍스처만 올려서 이미지를 만드는 게 아니라 광원과 물리엔진 등 게임을 돌리는 동안 컴퓨터가 할 일은 너무나 많습니다.


그러다 보니 모니터 주사율이 60Hz로 맞춰져 있다고 해도 실제 화면은 들쑥날쑥하게 됩니다. 어떤 장면에서는 30프레임, 또 다른 장면에서는 80프레임을 만들어낼 수도 있습니다. 일단 30프레임 아래로 떨어지면 화면 움직임이 끊어져 보입니다.


이 문제는 단순히 화면이 끊어져 보이는 데서 끝나지 않습니다. 게임을 하다 보면 화면이 뭔가 잘려 보일 때가 있습니다. 특히 움직임이 많은 1인칭 슈팅 액션게임에서는 고개를 휙 돌리면 화면이 둘로 나뉘어 따로따로 따라오기도 합니다. 이건 보내는 PC와 받는 모니터가 사인이 안 맞아서 생기는 현상입니다.

정상적으로는 60분의 1초마다 화면을 하나씩 만들어서 보내줘야 하는데, 실제로는 47분의 1초, 82분의 1초처럼 들쑥날쑥하게 됩니다. 이렇게 만든 화면은 왼쪽 맨 윗줄부터 순차적으로 뿌리는데, 이게 평소에는 아주 빠르기 때문에 잘 안 느껴지지만 보내는 쪽과 받는 쪽의 신호가 잘 안 맞으면 화면의 위는 다음 프레임, 아래는 이전 프레임이 합쳐져서 나오는 일이 벌어지게 됩니다. 화면이 찢어지는 느낌이죠.


이걸 맞추기 위해 화면 동기화를 합니다. 게임마다 대부분 그래픽, 디스플레이 설정에 보면 ‘v-sync’라는 옵션이 있습니다. ‘수직동기화’라는 의미입니다. 그래픽카드가 화면을 만들어서 보내는 걸 화면 주사율과 맞추는 기능입니다. 보통 60프레임으로 고정을 합니다. 이보다 성능이 안 나오면 어쩔 수 없지만 만약 이보다 더 많은 프레임을 그려낼 수 있을 때도 60프레임만큼만 만들어냅니다. 


그래픽카드의 성능을 다 쓰지 못하고, 또 이 동기화를 위해 시스템 자원을 쓰기 때문에 대체로 수직동기화는 게임 성능을 떨어뜨리는 편입니다. 대신 보내는 타이밍과 받는 타이밍을 딱 맞춥니다. 화면이 찢어지는 것과 프레임이 떨어지는 것 사이에서 한 가지를 골라야 하는 셈입니다. 간혹 마우스의 움직임을 따르지 못한다는 지적도 있습니다. 수직동기화는 뭔가 뒷맛이 개운치 않다는 얘기지요. 


그래서 그래픽카드 제조사들이 직접 화면 동기화에 팔을 걷어붙였습니다. AMD가 발표한 ‘프리싱크'(freesync)와 엔비디아가 발표한 ‘G싱크’가 바로 그겁니다. 둘의 기본 원리는 비슷합니다. 그래픽카드가 할 수 있는 만큼만 모니터에 보내겠다는 겁니다.

앞서 주사율에 따라 화면이 찢어지는 근본적인 이유는 모니터의 주사율은 고정돼 있고 PC가 화면을 만드는 건 들쑥날쑥하기 때문이라고 말씀드렸습니다. ‘그럼 모니터를 그래픽카드에 맞추면 어떨까?’라는 게 바로 이 프리싱크와 G싱크의 출발입니다.


이 기술이 적용된 그래픽카드와 모니터를 쓰고 있다면 게임을 할 때 모니터의 주사율은 고정되지 않습니다. 물론 최고 주사율에 맞추려고 노력하지만 PC가 화면을 하나 다 만들어서 전송할 때 화면을 바꿉니다. PC의 자원을 쓰지 않습니다. PC가 할 수 있는 만큼만 화면을 만들면, 모니터가 그에 맞춰서 화면을 뿌리는 겁니다. 오차가 0.2% 정도라고 하니 거의 동기화가 맞아 떨어진다고 볼 수 있습니다. 


2가지 기술 중에는 AMD의 프리싱크가 조금 더 빨리 보급되는 것 같습니다. 기술을 공개해버렸기 때문에 따로 라이선스나 복잡한 절차 없이 디스플레이 회사들이 모니터에 프리싱크를 적용할 수 있기 때문으로 보입니다. 기술적인 차이는 없으니, 차라리 둘을 합쳐 표준으로 정했으면 어땠을까 싶은 생각도 있습니다. 어쨌든 AMD 그래픽카드를 쓰시는 분들은 프리싱크 모니터를, 엔비디아 그래픽카드를 쓰시는 분들은 G싱크 모니터를 한번 살펴보시는 것도 좋겠습니다.

(다음편에서 또 만나요!)
이 콘텐츠에 대해 어떻게 생각하시나요?